1. SD卡分区规划与实战操作
刚开始玩F1C100s开发板时,SD卡分区是我遇到的第一个坑。很多人以为随便分个区就能启动系统,其实这里有很多细节需要注意。我最初就因为没有正确规划分区,导致系统无法正常启动,折腾了好几天。
分区方案的核心思路其实很简单:SD卡需要两个分区,第一个是FAT32格式的启动分区,用来存放内核镜像、设备树文件和启动脚本;第二个是ext4格式的根文件系统分区,用于存放操作系统和应用程序。但关键就在于这两个分区的起始位置和大小要设置得当。
实际操作时,我推荐使用fdisk工具进行分区。先执行sudo fdisk -l查看SD卡设备号(通常是/dev/mmcblk0或/dev/sdb),然后使用sudo fdisk /dev/mmcblk0进入分区界面。这里有个重要细节:第一个分区应该从第2048个扇区开始,大约相当于1MB的位置。这样做的目的是为U-Boot预留足够的空间,避免覆盖重要的启动代码。
分区创建完成后,还需要正确格式化。第一个分区用sudo mkfs.vfat /dev/mmcblk0p1格式化为FAT32,第二个分区用sudo mkfs.ext4 /dev/mmcblk0p2格式化为ext4。我建议给第一个分区分配8-32MB的空间就足够了,毕竟只是存放启动文件,剩下的空间全部分给根文件系统分区。
记得有一次我忘了格式化就直接写入文件,结果系统当然启动不了。所以一定要确保分区和格式化都正确完成,这是后续步骤的基础。
2. U-Boot烧录的精准操作
U-Boot烧录是整个流程中最关键也最容易出错的一步。很多人在这里踩坑,包括我自己。最初我尝试把U-Boot镜像直接拷贝到FAT分区,结果发现根本启动不了——原来U-Boot是裸机程序,不能像普通文件那样存放。
正确的烧录方法是用dd命令将U-Boot二进制文件写入SD卡的特定位置。全志芯片的启动流程是从SD卡前8KB之后开始读取代码,所以我们需要跳过前8KB进行写入。命令是这


339

被折叠的 条评论
为什么被折叠?



