《君正T31》7.制作根文件系统

制作根文件系统

因为busybox上集成了我们很多需要使用的工具,所以直接使用busybox来制作根文件系统把。

也是从开源的资料里找到busybox,然后make distclean清除之前的配置

busybox配置

make menuconfig 进行重新配置

配置交叉编译链

其他的我也不熟悉,不配置了,先用着吧,保存配置退出。

busybox配置补录

这里补录一些东西,再最后验证的调整rootfs后,发现怎么也加载不了驱动insmod: no gzip/bzip2/xz magic,然后发现网上刚好看到有解决办法,补录一下。(这也是为什么我愿意把一些自己踩过的坑记录下来原因,很感谢其他朋友分享自己踩过的坑,让我能解决我的问题,在自己有一定能力的时候,也想共享一点自己的能力帮助更多的朋友)

异常如下:

insmod: no gzip/bzip2/xz magic

insmod: no gzip/bzip2/xz magic

insmod: no gzip/bzip2/xz magic

参考网上的办法把simplified modutils关掉,把命令全部手动设置上,然后就修复了。因为目前是制作rootfs,暂不拓展更多,其他的一些分析思路我会在后面的编译驱动里具体讲解。

busybox编译

然后make;make install安装

真实的文件只有busybox,其他命令都是软连接,链接到busybox

集成文件系统

然后工具制作完成了以后,制作设备上真实使用的根文件系统把。

把busybox和提供资料里的etc文件拷贝过来,主要是rcS文件,以及还有依赖的Lib库,直接拷贝过来即可

然后再把ko文件拷贝过来,这个没有也没关系,后面制作,不影响启动。

制作文件系统

制作squashfs格式的文件系统

mksquashfs rootfs/ ./rootfs.squashfs.img -b 64K -comp xz

打出来有点大了,之前预分配的2M不太够

暂时先不了解裁剪了,反正没啥东西,先给他调整成3Mflash吧

setenv bootargs 'console=ttyS1,115200n8 mem=42M@0x0 rmem=22M@0x2a00000 init=/linuxrc rootfstype=squashfs root=/dev/mtdblock2 rw mtdparts=jz_sfc:256k(boot),2560k(kernel),3072k(root),-(appfs)';sa

重新烧写rootfs重启

结果还是起不来,难办。

提示 Failed to execute /linuxrc

[    0.564886] Freeing unused kernel memory: 228K (804b7000 - 804f0000)
[    0.593893] Failed to execute /linuxrc.  Attempting defaults...
[    0.600505] Kernel panic - not syncing: No init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[    0.613370] Rebooting in 3 seconds..Restarting after 4 ms

检查了下文件格式,发现文件格式不对,这个是x86-64系统运行的,这个可能是和东山的编译链冲突了,后面显示的指定架构解决了

调整后文件格式如下

重启,发现还是存在问题

其实上面这些,都是因为Linux在运行时需要创建很多文件,而又不能递归创建,所以就要求我们在制作的时候把一些文件准备好,大家可以对比看下,缺的就创建下空文件夹就行。

zyz@DESKTOP-3E070L6:~/Zyz/t31--gc2053/rootfs$ ls
bin  dev  etc  ko  lib  linuxrc  proc  run  sbin  sys  tmp  usr

大概结构如下,很多都是空文件夹:

不过在制作的时候,发现经常会出现重复的文件,这个是mksquashfs工具自己做的覆盖处理

在网上看了下,编译追加-no-duplicates参数即可

mksquashfs  rootfs ./rootfsZyz3.img -b 64K -comp xz -no-duplicates

然后烧写,重新进入

久违了,终于回来了。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值