基于U盘构建嵌入式Linux

基于U盘构建嵌入式Linux

德意的啸 发布于 2021-11-26 字数 1251 浏览 668 回复 12

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

打算基于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 !
搞不懂这是怎么回事?
求解!

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

泪冰清 2021-12-01 12 楼

这样子只是做个启动U盘啊,不是我想要做的东西。 我想要的嵌入式Linux的开发。

甜柠檬 2021-12-01 11 楼

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

孤檠 2021-12-01 10 楼

不是这个意思。我意思是我用ARM做嵌入式开发的时候,感觉只要用jtag烧写了u-boot,以后就可以利用u-boot下载上位机提供的bzImage、rootfs。 而我现在是想把一个小Linux烧到U盘或是CF卡,然后把U盘或CF卡接在PC104核心板上(奔腾M处理器,x86结构),pc104开机就运行U盘或CF卡里的Linux系统。

刘备忘录 2021-12-01 9 楼

应该是引导问题吧,有没有进引导系统?还是引导后的系统初始化问题?

勿忘初心 2021-12-01 8 楼

GRUB可以烧到U盘里。 我疑惑的是怎么把bzImage,rootfs烧尽U盘里,如果直接复制是不可行的,但是应该怎么做?

情栀口红 2021-12-01 7 楼

回复
通过GRLDR直接加载bzImage引导内核

累赘 2021-12-01 6 楼

回复
可以参考一下CDLinux

丢了幸福的猪 2021-12-01 5 楼

ubutnu 本身就支持从u盘启动。。。处理一下引导记录就行

倚栏听风 2021-12-01 4 楼

我是这么想的。 就是做一个小型的Linux系统。 如何用ARM做,利用JTAG或JLINK烧写就可以了。但是如果只是单纯的把小Linux烧写进U盘,感觉不行啊。 你觉得我的步骤对不对? 问题出在哪里?

多彩岁月 2021-12-01 3 楼

你是想  从电脑从U盘启动,就进入你烧录进u盘的linux系统?

瀞厅☆埖开 2021-12-01 2 楼

我不是在arm上使用的,是把U盘接在PC104(奔腾M处理器,x86)上,这样pc104开机启动Linux。 arm用的是u-boot,感觉这个更简单啊,只要用jtag或jlink烧u-boot到ARM的nand或nor中,就可以利用u-boot下载其他的了。 而我这个不是啊,就是把U盘接在上位机上,然后利用虚拟机ubuntu做一个嵌入式Linux。

韬韬不绝 2021-12-01 1 楼

grub也是分平台的,x86的grub不能在arm上运行起来吧