Linux系统文件替换说明
本章节基于NAND FLASH配置评估板,提供固化Linux系统文件至Linux系统启动卡和NAND FLASH的方法。若使用eMMC配置评估板,替换方法请参考eMMC版本核心板使用说明文档。
替换SPL
我司已提供SPL镜像boot0_sdcard.fex和boot0_nand.fex文件,位于产品资料“4-软件资料LinuxSPLimagespl-pub-[版本号]-[Git系列号]nand”目录下。其中boot0_sdcard.fex文件仅支持Micro SD启动,可通过评估板文件系统固化至Linux系统启动卡;boot0_nand.fex文件仅支持NAND FLASH启动,请参考本文相关章节,并将其替换至LinuxSDK开发包,重新打包生成新的Linux系统镜像,再将Linux系统镜像固化至NAND FLASH。
请将SPL镜像boot0_sdcard.fex文件拷贝至评估板文件系统root目录下,执行如下命令固化至Linux系统启动卡。
Target# dd if=boot0_sdcard.fexof=/dev/mmcblk0seek=16
Target# dd if=boot0_sdcard.fexof=/dev/mmcblk0seek=256
图 58
替换U-Boot镜像、boot_package.fex
boot_package.fex文件由U-Boot镜像、设备树镜像和sys_config配置文件合并生成。我司提供多个boot_package_xxx.fex文件,位于产品资料“4-软件资料LinuxBoot_packageboot_package-AA_BBnand”目录下。如需替换boot_package_xxx.fex,请将目标boot_package_xxx.fex文件拷贝至评估板文件系统root目录下。以HDMI显示固件(boot_package_hdmi.fex)为例,执行如下命令固化至Linux系统启动卡。
备注:如需单独替换U-Boot、设备树或boot_package.fex至NAND FLASH,请参考《Linux系统启动卡制作及系统固化》“Linux系统OTA升级说明”章节。
Target# dd if=boot_package_hdmi.fex of=/dev/mmcblk0seek=32800 conv=fsync
Target# dd if=boot_package_hdmi.fex of=/dev/mmcblk0seek=24576 conv=fsync
图 59
替换内核、内核模块
我司同时提供了Linux内核镜像(boot_xxx.fex)、Linux内核模块压缩包(modules文件夹)、Linux-RT内核镜像(boot-rt.fex)、Linux-RT内核模块压缩包(modules-rt文件夹),位于产品资料“4-软件资料LinuxKernelimagelinux-5.4-[版本号]-[Git系列号]nand”目录下。如需替换为Linux-RT系统,或替换新的内核镜像,请参考如下方法同时替换对应的内核镜像和内核模块至Linux系统启动卡或NAND FLASH。
备注:我司提供了不同显示方式的Linux内核镜像boot_xxx.fex文件。如需更换不同的显示方式,请替换相应的内核镜像。
替换内核镜像
请将内核镜像文件拷贝至评估板文件系统root目录下,执行如下命令固化至Linux系统启动卡,以HDMI显示的内核镜像为例。
备注:如需固化至NAND FLASH,请将设备节点修改为"/dev/mtdblock8"。
Target# dd if=boot_hdmi.fex of=/dev/mmcblk0p4 conv=fsync
图 60
替换内核模块
内核模块需与内核版本保持一致,否则会因版本不一致而导致内核模块无法加载。因此替换内核镜像后,请按如下方法替换对应版本的内核模块。
将内核模块压缩包解压后拷贝至评估板文件系统root目录下,执行如下命令,替换Linux系统启动卡或NAND FLASH原有的内核模块。
Target# rm -rf /lib/modules/*
Target# cp -r 5.4.61-rt37-gb1bd4aa/ /lib/modules/
Target# sync
Target# reboot
图 61
替换环境变量
如需修改环境变量,请修改LinuxSDK开发包"tina5.0_v1.0/device/config/chips/t113_i/configs/tlt113-evm-nand/buildroot/env.cfg"文件。修改完成后,请重新执行"./build.sh pack"命令生成新的系统镜像文件,同时将会在"tina5.0_v1.0/out/pack_out/"目录下生成env.fex文件。
图 62
请将env.fex文件拷贝至评估板文件系统root目录下,执行如下命令将其固化至Linux系统启动卡。
备注:如需固化至NAND FLASH,请将设备节点修改为"/dev/mtdblock7"。
Target# dd if=env.fex of=/dev/mmcblk0p3
图 63
U-Boot命令和环境变量说明
评估板上电启动后,在U-Boot倒计时结束之前按下空格键进入U-Boot命令行模式,执行help或者?命令,可查看当前U-Boot所支持的命令。
U-Boot# help
图 64
图 65
执行命令setenv或"env default -f -a"修改的是运行空间中的环境变量值,须使用saveenv命令将修改后的环境变量保存起来。否则U-Boot重启后,将会使用修改前的环境变量值。环境变量修改完成后,执行reset命令,即可使用修改后的U-Boot环境变量启动。
U-Boot# env default -f -a
U-Boot# saveenv
U-Boot# reset
图 66
在U-Boot命令行执行printenv命令可查看环境变量,以下提供评估板从NAND FLASH启动时主要U-Boot环境变量的解析说明。不同启动方式(如Micro SD、eMMC启动)、不同版本的U-Boot,环境变量会有所不同,内容仅供参考。
/*dsp0启动参数,sunxi_flash会根据当前启动介质(如eMMC、Micro SD等)读取对应的文件。例如,评估板从eMMC启动,boot_dsp0环境变量指定读取eMMC dsp0分区的数据至DDR的43000000*/
boot_dsp0=sunxi_flash read 43000000 ${dsp0_partition};bootr 43000000 0 0
/*网络启动参数,板卡从TFTP服务端获取boot.fex文件。至DDR的43000000*/
boot_net=tftpboot 43000000 boot.fex;run setargs_netboot;bootm 43000000
/*fastboot模式*/
boot_fastboot=fastboot
/*normal模式启动参数,sunxi_flash会根据当前启动介质(如eMMC、Micro SD等)读取对应的文件。例如,评估板从eMMC启动,boot_normal环境变量指定读取eMMC boot分区的数据至DDR的0x43000000*/
boot_normal=sunxi_flash read 43000000 boot;bootm 43000000
/*recovery模式启动参数,sunxi_flash会根据当前启动介质(如eMMC、Micro SD等)读取对应的文件。例如,评估板从eMMC启动,boot_recovery环境变量指定读取eMMC recovery分区的数据至DDR的0x43000000*/
boot_recovery=sunxi_flash read 43000000 recovery;bootm 43000000
/*启动命令*/
bootcmd=run boottestcount;run setargs_nand_ubi boot_normal
/*启动次数*/
bootcount=0
/*是否启用计数功能*/
boottest=0
/*启动延时为1秒*/
bootdelay=1
/*调试串口为UART0,波特率为115200*/
console=ttyS0,115200
/*dsp0模式启动镜像分区名*/
dsp0_partition=dsp0
/*初始化串口控制台之前,使用uart8250,mmio32,0x02500000打印启动信息*/
earlycon=uart8250,mmio32,0x02500000
/*从nand的ubi0_5分区挂载根文件系统*/
nand_root=ubi0_5 rootwait rw
/*分区表参数*/
partitions=mbr@ubi0_0:boot-resource@ubi0_1:env@ubi0_2:env-redund@ubi0_3:boot@ubi0_4:rootfs@ubi0_5:userdata@ubi0_6:dsp0@ubi0_7:private@ubi0_8:UDISK@ubi0_9
/*从Linux系统启动卡的第5个分区挂载根文件系统*/
sd_root=/dev/mmcblk0p5 rootwait rw
/*NAND启动参数*/
setargs_nand=setenv bootargs ubi.mtd=${mtd_name} clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${nand_root} rootfstype=${rootfstype} init=${init} partitions=${partitions} cma=${cma} snum=${snum} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} gpt=1
/*nand ubi启动参数*/
setargs_nand_ubi=setenv bootargs ubi.mtd=${mtd_name} clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${nand_root} rootfstype=${rootfstype} init=${init} partitions=${partitions} cma=${cma} snum=${snum} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} gpt=1
/*网络启动参数*/
setargs_netboot=setenv bootargs clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=/dev/nfs rootwait ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}::eth0:off nfsroot=${serverip}:${nfsroot},nolock,v3,tcp init=${init} partitions=${partitions} cma=${cma} snum=${snum} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} gpt=1
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!
审核编辑 黄宇
-
Linux
+关注
关注
88文章
11558浏览量
215404 -
开发板
+关注
关注
25文章
5868浏览量
107851
发布评论请先 登录
国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—Linux系统使用手册(二)

国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—ARM + DSP、RISC-V核间通信开发案例

国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—RISC-V案例开发手册(上)

国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—DSP案例开发手册

国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—Linux-RT应用开发案例

评论