基于U盘构建嵌入式Linux
@紫鹰王 你好,想跟你请教个问题:
打算基于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 !
搞不懂这是怎么回事?
求解!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
这样子只是做个启动U盘啊,不是我想要做的东西。 我想要的嵌入式Linux的开发。
ultraiso烧录到u盘吧,基本都是全自动的,别折腾了。
不是这个意思。我意思是我用ARM做嵌入式开发的时候,感觉只要用jtag烧写了u-boot,以后就可以利用u-boot下载上位机提供的bzImage、rootfs。 而我现在是想把一个小Linux烧到U盘或是CF卡,然后把U盘或CF卡接在PC104核心板上(奔腾M处理器,x86结构),pc104开机就运行U盘或CF卡里的Linux系统。
应该是引导问题吧,有没有进引导系统?还是引导后的系统初始化问题?
回复
通过GRLDR直接加载bzImage引导内核
GRUB可以烧到U盘里。 我疑惑的是怎么把bzImage,rootfs烧尽U盘里,如果直接复制是不可行的,但是应该怎么做?
ubutnu 本身就支持从u盘启动。。。处理一下引导记录就行
回复
可以参考一下CDLinux
我是这么想的。 就是做一个小型的Linux系统。 如何用ARM做,利用JTAG或JLINK烧写就可以了。但是如果只是单纯的把小Linux烧写进U盘,感觉不行啊。 你觉得我的步骤对不对? 问题出在哪里?
你是想 从电脑从U盘启动,就进入你烧录进u盘的linux系统?
我不是在arm上使用的,是把U盘接在PC104(奔腾M处理器,x86)上,这样pc104开机启动Linux。 arm用的是u-boot,感觉这个更简单啊,只要用jtag或jlink烧u-boot到ARM的nand或nor中,就可以利用u-boot下载其他的了。 而我这个不是啊,就是把U盘接在上位机上,然后利用虚拟机ubuntu做一个嵌入式Linux。
grub也是分平台的,x86的grub不能在arm上运行起来吧