基于U盘构建嵌入式Linux

张艺熠 发布于 2015/06/11 12:57
阅读 1K+
收藏 1

@紫鹰王 你好,想跟你请教个问题:

打算基于U盘构建一个嵌入式Linux,但是遇到了一些问题。如下:

虚拟机VM10装ubuntu12.04 OS
手里有8G u盘。

流程:
1.在ubuntu中用df -h 命令查看挂载情况,然后用fdisk 进行分区, 我的u盘显示sdb1,整个u盘就分为1个区.
2.利用mkfs -t  ext4  /dev/sdb1 格式化u盘成ext4格式,然后再mount /dev/sdb1 /mnt 使之挂载到/mnt.
3.利用grub-install --root-directory=/mnt /dev/sdb,安装grub到u盘里. 复制menu.lst到u盘里.
4.下载kernel源文件包,解压,进入目录内,进行编译生成bzImage文件.
5.下载busybox源文件包,解压,进入目录内,进行编译生成_install文件,里面含有sbin,bin文件.
6.在/home下mkdir rootfs. 进入rootfs,创建/dev,/usr,/etc...基本目录和设备文件.
   并将第5步生成的sbin.bin复制到/home/rootfs中.
   在/home/rootfs/etc中vim inittab,rcS,fstab文件.

那么问题来了!
如何将上述步骤生成的bzImage 和 rootfs 弄入到u盘里?
我尝试过利用cp -a bzImage /mnt/boot,
                 cp -a rootfs /mnt
但是开机从u盘启动的时候,会出现 random:nonblocking pool is initialized !
搞不懂这是怎么回事?
求解!

加载中
1
无量神通
无量神通
grub也是分平台的,x86的grub不能在arm上运行起来吧
张艺熠
张艺熠
我不是在arm上使用的,是把U盘接在PC104(奔腾M处理器,x86)上,这样pc104开机启动Linux。 arm用的是u-boot,感觉这个更简单啊,只要用jtag或jlink烧u-boot到ARM的nand或nor中,就可以利用u-boot下载其他的了。 而我这个不是啊,就是把U盘接在上位机上,然后利用虚拟机ubuntu做一个嵌入式Linux。
0
紫鹰王
紫鹰王
你是想  从电脑从U盘启动,就进入你烧录进u盘的linux系统?
张艺熠
张艺熠
我是这么想的。 就是做一个小型的Linux系统。 如何用ARM做,利用JTAG或JLINK烧写就可以了。但是如果只是单纯的把小Linux烧写进U盘,感觉不行啊。 你觉得我的步骤对不对? 问题出在哪里?
0
狂飙的小蜗牛
狂飙的小蜗牛
ubutnu 本身就支持从u盘启动。。。处理一下引导记录就行
狂飙的小蜗牛
狂飙的小蜗牛
回复 @张艺熠 : 可以参考一下CDLinux
狂飙的小蜗牛
狂飙的小蜗牛
回复 @张艺熠 : 通过GRLDR直接加载bzImage引导内核
张艺熠
张艺熠
GRUB可以烧到U盘里。 我疑惑的是怎么把bzImage,rootfs烧尽U盘里,如果直接复制是不可行的,但是应该怎么做?
0
ihuotui
ihuotui
我觉得楼主想把x86 linux 拷进u盘,然后用arm启动,是不能的,编译不同,只能用arm 编译器生成的。
ihuotui
ihuotui
应该是引导问题吧,有没有进引导系统?还是引导后的系统初始化问题?
张艺熠
张艺熠
不是这个意思。我意思是我用ARM做嵌入式开发的时候,感觉只要用jtag烧写了u-boot,以后就可以利用u-boot下载上位机提供的bzImage、rootfs。 而我现在是想把一个小Linux烧到U盘或是CF卡,然后把U盘或CF卡接在PC104核心板上(奔腾M处理器,x86结构),pc104开机就运行U盘或CF卡里的Linux系统。
0
zabcd117
zabcd117

ultraiso烧录到u盘吧,基本都是全自动的,别折腾了。

张艺熠
张艺熠
这样子只是做个启动U盘啊,不是我想要做的东西。 我想要的嵌入式Linux的开发。
返回顶部
顶部