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

电子说

1.4w人已加入

描述

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.fex of=/dev/mmcblk0 seek=16

Target# dd if=boot0_sdcard.fex of=/dev/mmcblk0 seek=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/mmcblk0 seek=32800 conv=fsync

Target# dd if=boot_package_hdmi.fex of=/dev/mmcblk0 seek=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

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


审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分