SOM-TL138Linux SD系统启动卡制作及系统固化
发布时间:2019-8-2 14:11
发布者:Tronlong818
1 SD系统启动卡说明 SD卡启动是开发板系统启动方式的一种。SD系统启动卡共有boot分区、rootfs分区和rootfs-backup分区三个分区,其中boot分区为FAT32格式、rootfs分区和rootfs-backup分区为EXT4格式。FAT32格式分区在Windows系统下可见,EXT4格式分区在Windows系统下不可见,三个分区在Linux系统下均可见。boot分区存放U-Boot、内核、设备树等;rootfs分区存放文件系统;rootfs-backup分区用于备份文件系统,系统固化时将其拷贝并固化到eMMC。 开发板出厂时已经提供一个正常使用的Linux SD系统启动卡。以下步骤是Linux SD系统启动卡的制作过程。 l 操作环境: Ubuntu 14.04.3 64bit l 制作文件说明 制作文件为光盘“Shell\Linux-4.4.19-mksdboot.tar.gz”压缩包,基于Linux-4.4.19内核,适用于TL5728-EasyEVM、TL5728-IDK。 根据制作文件制作的SD卡默认支持TL5728-EasyEVM开发板,若要支持其它型号开发板,需要设置系统启动的U-Boot环境变量。 2 SD系统启动卡制作步骤2.1 拷贝启动卡制作文件到Ubuntu打开Ubuntu,执行如下命令创建“/home/tronlong/AM57xx/Linux-4.4.19-mksdboot”目录,将光盘“Shell\Linux-4.4.19-mksdboot.tar.gz”压缩包复制到该目录下,进入制卡压缩包所在路径执行如下指令将其解压到当前目录: Host# mkdir -p /home/tronlong/AM57xx/Linux-4.4.19-mksdboot Host# cd /home/tronlong/AM57xx/Linux-4.4.19-mksdboot Host# tar -xvf Linux-4.4.19-mksdboot.tar.gz -C . 解压后的Linux-4.4.19-mksdboot文件夹内容结构大致如下图: boot目录: 该目录下的MLO、u-boot.img和uEnv.txt文件会复制到SD卡的boot分区,该目录下的zImage文件和dtb目录下的全部文件会复制到SD卡rootfs分区的boot目录下。 Ø MLO:U-Boot一级启动镜像; Ø u-boot.img:U-Boot二级启动镜像; Ø zImage:Linux内核镜像; Ø dtb目录:存放.dtb设备树文件,由内核编译步骤产生。 filesystem目录: 该目录存放了将要复制到SD卡rootfs分区的文件系统。 Ø modules目录:内核驱动压缩包,和内核版本对应; Ø product-test目录:生产测试压缩包,会解压到rootfs分区的opt目录下; Ø rootfs目录:存放根文件系统压缩包; Ø tools目录:tools目录里存放着部分shell脚本,会被复制到SD启动卡的boot分区; Ø mksdboot.sh:Linux SD系统启动卡制作脚本。 以上文件如需替换,务必保证命名、格式与原文件保持一致。 2.2 识别SD卡将Micro SD卡通过读卡器连接到计算机,虚拟机Ubuntu系统识别后会自动识别SD卡分区,如下图所示: 如果没有自动识别,请右击右下角的USB大容量存储设备图标,再点击“Connect (Disconnect from Host)”。 如果没有以上图标或者连接不成功,请尝试如下方法: l 请将Micro SD卡通过读卡器插到USB 2.0接口,而不是USB 3.0接口,部分版本VMware可能不支持USB 3.0。 l 请将Micro SD卡插在PC上,然后重启Ubuntu,在Ubuntu重启过程中不要拨出来,开机后图标会重新出现。 2.3 确认SD卡设备节点名执行如下命令,确认SD卡设备节点名: Host# sudo fdisk -l 可以看到SD卡设备节点是sdb,其中有1个分区,分区名字是sdb1。SD卡设备节点名字是可变的,一般插拔多次或者不同的卡插拔后,可能会显示sdc或者sdd甚至sde。 2.4 运行SD系统启动卡制作脚本系统启动卡制作脚本mksdboot.sh主要有如下作用: l 将SD卡格式化为boot分区、rootfs分区和rootfs-backup分区。 l 将rootfs文件夹中的文件系统压缩包解压安装到rootfs分区,同时还将文件系统压缩包解压备份到rootfs-backup分区。 l 将boot目录下的U-Boot镜像文件MLO、u-boot.img拷贝到boot分区。SD卡模式启动时,系统会使用boot分区U-Boot镜像文件。 l 将“boot/dtb”目录下的所有dtb设备树文件,拷贝到rootfs分区“/boot”目录。在U-Boot命令行下,通过修改环境变量board_name的参数值,系统会根据修改加载rootfs分区“/boot”目录下不同型号开发板对应的设备树文件。 l 将boot目录下的内核镜像文件zImage拷贝到rootfs分区“/boot”目录。SD卡模式启动时,系统会使用rootfs分区“/boot”目录下的内核镜像文件。 使用SD系统启动卡启动系统时,如需替换U-Boot镜像、设备树、内核镜像、文件系统,有如下方法: (1) 使用新的U-Boot镜像文件,保持文件名与原文件一致,替换SD系统启动卡boot分区下的对应文件;使用新的设备树文件,替换SD系统启动卡rootfs分区“/boot”目录下的对应文件;使用新的内核镜像文件,保持文件名与原文件一致,替换SD系统启动卡rootfs分区“/boot”目录下的对应文件,同时还需替换与新内核版本对应的内核驱动压缩包;先删除SD系统启动卡rootfs分区所有内容,再使用新的文件系统压缩包,将其解压到SD系统启动卡rootfs分区,并将设备树文件、内核镜像文件拷贝到SD系统启动卡rootfs分区“/boot”目录。 (2) 使用新的U-Boot镜像文件、设备树文件、内核镜像文件、文件系统压缩包,保持文件名与原文件一致,替换SD系统启动卡制作文件目录下的对应文件,然后重新制作SD系统启动卡。 进入Linux-4.4.19-mksdboot目录下的mksdboot文件夹,执行如下命令,运行SD系统启动卡制作脚本。 Host# cd /home/tronlong/AM57xx/Linux-4.4.19-mksdboot/mksdboot/ Host# sudo ./mksdboot.sh --device /dev/sdb “/dev/sdb”为SD卡设备节点。请再次确认SD卡设备节点一致,如错误输入其他存储介质设备节点,将会造成存储介质数据损坏。 按回车键,进行SD系统启动卡制作,耗时约30 min,制卡耗时跟SD卡容量和接口性能有关。SD系统启动卡制作完成,如下图所示: 根据以上步骤制作的SD系统启动卡默认支持TL5728-EasyEVM开发板。开发板断电,将开发板的拨码开关拨为01000(1~5),这个档位是Micro SD卡(MMC1)启动模式。 使用Micro USB线连接PC和开发板的USB转串口调试口,然后将开发板上电,串口终端会打印以下启动信息,并可以成功登陆系统,说明SD系统启动卡制作成功,如下图所示: 销售邮箱:www.tronlong.com 技术论坛:www.51ele.net 线上商城:https://tronlong.taobao.com |
网友评论