首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—Linux系统使用手册(三)

国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—Linux系统使用手册(三)

原创
作者头像
创龙科技Tronlong
发布2025-09-04 15:54:06
发布2025-09-04 15:54:06
1290
举报

Linux系统文件替换说明

本章节基于NAND FLASH配置评估板,提供固化Linux系统文件至Linux系统启动卡和NAND FLASH的方法。若使用eMMC配置评估板,替换方法请参考eMMC版本核心板使用说明文档。

替换SPL

我司已提供SPL镜像boot0_sdcard.fex和boot0_nand.fex文件,位于产品资料“4-软件资料\Linux\SPL\image\spl-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.fex of=/dev/mmcblk0 seek=16

Target# dd if=boot0_sdcard.fex of=/dev/mmcblk0 seek=256

图 58
图 58

替换U-Boot镜像、boot_package.fex

boot_package.fex文件由U-Boot镜像、设备树镜像和sys_config配置文件合并生成。我司提供多个boot_package_xxx.fex文件,位于产品资料“4-软件资料\Linux\Boot_package\boot_package-AA_BB\nand\”目录下。如需替换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/mmcblk0 seek=32800 conv=fsync

Target# dd if=boot_package_hdmi.fex of=/dev/mmcblk0 seek=24576 conv=fsync

图 59
图 59

替换内核、内核模块

我司同时提供了Linux内核镜像(boot_xxx.fex)、Linux内核模块压缩包(modules文件夹)、Linux-RT内核镜像(boot-rt.fex)、Linux-RT内核模块压缩包(modules-rt文件夹),位于产品资料“4-软件资料\Linux\Kernel\image\linux-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
图 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
图 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
图 62

请将env.fex文件拷贝至评估板文件系统root目录下,执行如下命令将其固化至Linux系统启动卡。

备注:如需固化至NAND FLASH,请将设备节点修改为"/dev/mtdblock7"。

Target# dd if=env.fex of=/dev/mmcblk0p3

图 63
图 63

U-Boot命令和环境变量说明

评估板上电启动后,在U-Boot倒计时结束之前按下空格键进入U-Boot命令行模式,执行help或者?命令,可查看当前U-Boot所支持的命令。

U-Boot# help

图 64
图 64
图 65
图 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
图 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

由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux系统文件替换说明
    • 替换SPL
    • 替换U-Boot镜像、boot_package.fex
    • 替换内核、内核模块
      • 替换内核镜像
      • 替换内核模块
    • 替换环境变量
  • U-Boot命令和环境变量说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档