我手头是一块BeagleBone,使用的SDK是TI SDK6.0,启动方式是SD卡。TI SDK6.0自带有个制作SD的脚本,最终将SD卡做成一个FAT分区和一个EXT3分区,这样做卡有点太麻烦了,不知道如何将MLO,u-boot,kernel和rootfs(压缩包形式)放在一个分区下启动?希望有做过类似工作的朋友可以指导一二,多谢了~~~
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我手头是一块BeagleBone,使用的SDK是TI SDK6.0,启动方式是SD卡。TI SDK6.0自带有个制作SD的脚本,最终将SD卡做成一个FAT分区和一个EXT3分区,这样做卡有点太麻烦了,不知道如何将MLO,u-boot,kernel和rootfs(压缩包形式)放在一个分区下启动?希望有做过类似工作的朋友可以指导一二,多谢了~~~
楼上说的是个可以尝试的方案,但是个人觉得,这样你每次启动时候都需要花费这样解压的时间开销,而且一旦你在文件系统中有操作,你需要想一个办法把这些改动同步到你的fat32分区中,这个……真的会方便么?
我们目前SD卡典型的玩法是FAT32+ext3/4,ext3/4存放文件系统,这个是没有疑虑的;需要使用FAT32存储启动使用的MLO,我理解,是因为ROM code无法识别ext3/4,所以需要FAT32存放启动文件。参考:TRM的26.1.7.5 MMC / SD Cards章节:
File system mode (FAT12/16/32 supported with or without Master Boot Record), image data is read from a booting file
你确定你现在的bootcmd,bootargs都设置对了吗?
Uboot只是把相关的参数传递给kernel,在kernel中会进行解压缩等工作,如果参数设置对了,最好查一下你当前的kernel的menuconfig配置,有没有使能相应的配置。
ramdisk可以放在uImage中,然后在ramdisk中加入脚本mount上当前的fat分区,这个是个可行的思路。
你好,我现在在内核中加入了cpio格式的initrd,其中cpio镜像文件是我直接从其它ARM平台的内核中拷贝过来的,编译也没啥问题,就是uImage的大小从3.1M增加至3.7M,但是生成的内核在"Uncommpressing Linux.. done, booting the kernel"后就停了,不知道是什么原因?理论上cpio文件应该没有与平台相关的内容了,再说怎么也得运行到挂载根文件系统的时候才down掉吧?
问题解决了,是我尝试直接修改CPIO镜像文件造成了,现在通过将ramdisk编译进内核,再重新挂载FAT分区中的系统已经OK了,感谢各位的回复。