Linux系統(tǒng)文件替換說(shuō)明
本章節(jié)基于NAND FLASH配置評(píng)估板,提供固化Linux系統(tǒng)文件至Linux系統(tǒng)啟動(dòng)卡和NAND FLASH的方法。若使用eMMC配置評(píng)估板,替換方法請(qǐng)參考eMMC版本核心板使用說(shuō)明文檔。
替換SPL
我司已提供SPL鏡像boot0_sdcard.fex和boot0_nand.fex文件,位于產(chǎn)品資料“4-軟件資料LinuxSPLimagespl-pub-[版本號(hào)]-[Git系列號(hào)]nand”目錄下。其中boot0_sdcard.fex文件僅支持Micro SD啟動(dòng),可通過(guò)評(píng)估板文件系統(tǒng)固化至Linux系統(tǒng)啟動(dòng)卡;boot0_nand.fex文件僅支持NAND FLASH啟動(dòng),請(qǐng)參考本文相關(guān)章節(jié),并將其替換至LinuxSDK開發(fā)包,重新打包生成新的Linux系統(tǒng)鏡像,再將Linux系統(tǒng)鏡像固化至NAND FLASH。
請(qǐng)將SPL鏡像boot0_sdcard.fex文件拷貝至評(píng)估板文件系統(tǒng)root目錄下,執(zhí)行如下命令固化至Linux系統(tǒng)啟動(dòng)卡。
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鏡像、設(shè)備樹鏡像和sys_config配置文件合并生成。我司提供多個(gè)boot_package_xxx.fex文件,位于產(chǎn)品資料“4-軟件資料LinuxBoot_packageboot_package-AA_BBnand”目錄下。如需替換boot_package_xxx.fex,請(qǐng)將目標(biāo)boot_package_xxx.fex文件拷貝至評(píng)估板文件系統(tǒng)root目錄下。以HDMI顯示固件(boot_package_hdmi.fex)為例,執(zhí)行如下命令固化至Linux系統(tǒng)啟動(dòng)卡。
備注:如需單獨(dú)替換U-Boot、設(shè)備樹或boot_package.fex至NAND FLASH,請(qǐng)參考《Linux系統(tǒng)啟動(dòng)卡制作及系統(tǒng)固化》“Linux系統(tǒng)OTA升級(jí)說(shuō)明”章節(jié)。
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
替換內(nèi)核、內(nèi)核模塊
我司同時(shí)提供了Linux內(nèi)核鏡像(boot_xxx.fex)、Linux內(nèi)核模塊壓縮包(modules文件夾)、Linux-RT內(nèi)核鏡像(boot-rt.fex)、Linux-RT內(nèi)核模塊壓縮包(modules-rt文件夾),位于產(chǎn)品資料“4-軟件資料LinuxKernelimagelinux-5.4-[版本號(hào)]-[Git系列號(hào)]nand”目錄下。如需替換為L(zhǎng)inux-RT系統(tǒng),或替換新的內(nèi)核鏡像,請(qǐng)參考如下方法同時(shí)替換對(duì)應(yīng)的內(nèi)核鏡像和內(nèi)核模塊至Linux系統(tǒng)啟動(dòng)卡或NAND FLASH。
備注:我司提供了不同顯示方式的Linux內(nèi)核鏡像boot_xxx.fex文件。如需更換不同的顯示方式,請(qǐng)?zhí)鎿Q相應(yīng)的內(nèi)核鏡像。
替換內(nèi)核鏡像
請(qǐng)將內(nèi)核鏡像文件拷貝至評(píng)估板文件系統(tǒng)root目錄下,執(zhí)行如下命令固化至Linux系統(tǒng)啟動(dòng)卡,以HDMI顯示的內(nèi)核鏡像為例。
備注:如需固化至NAND FLASH,請(qǐng)將設(shè)備節(jié)點(diǎn)修改為"/dev/mtdblock8"。
Target# dd if=boot_hdmi.fex of=/dev/mmcblk0p4 conv=fsync
圖 60
替換內(nèi)核模塊
內(nèi)核模塊需與內(nèi)核版本保持一致,否則會(huì)因版本不一致而導(dǎo)致內(nèi)核模塊無(wú)法加載。因此替換內(nèi)核鏡像后,請(qǐng)按如下方法替換對(duì)應(yīng)版本的內(nèi)核模塊。
將內(nèi)核模塊壓縮包解壓后拷貝至評(píng)估板文件系統(tǒng)root目錄下,執(zhí)行如下命令,替換Linux系統(tǒng)啟動(dòng)卡或NAND FLASH原有的內(nèi)核模塊。
Target# rm -rf /lib/modules/*
Target# cp -r 5.4.61-rt37-gb1bd4aa/ /lib/modules/
Target# sync
Target# reboot
圖 61
替換環(huán)境變量
如需修改環(huán)境變量,請(qǐng)修改LinuxSDK開發(fā)包"tina5.0_v1.0/device/config/chips/t113_i/configs/tlt113-evm-nand/buildroot/env.cfg"文件。修改完成后,請(qǐng)重新執(zhí)行"./build.sh pack"命令生成新的系統(tǒng)鏡像文件,同時(shí)將會(huì)在"tina5.0_v1.0/out/pack_out/"目錄下生成env.fex文件。
圖 62
請(qǐng)將env.fex文件拷貝至評(píng)估板文件系統(tǒng)root目錄下,執(zhí)行如下命令將其固化至Linux系統(tǒng)啟動(dòng)卡。
備注:如需固化至NAND FLASH,請(qǐng)將設(shè)備節(jié)點(diǎn)修改為"/dev/mtdblock7"。
Target# dd if=env.fex of=/dev/mmcblk0p3
圖 63
U-Boot命令和環(huán)境變量說(shuō)明
評(píng)估板上電啟動(dòng)后,在U-Boot倒計(jì)時(shí)結(jié)束之前按下空格鍵進(jìn)入U(xiǎn)-Boot命令行模式,執(zhí)行help或者?命令,可查看當(dāng)前U-Boot所支持的命令。
U-Boot# help
圖 64
圖 65

執(zhí)行命令setenv或"env default -f -a"修改的是運(yùn)行空間中的環(huán)境變量值,須使用saveenv命令將修改后的環(huán)境變量保存起來(lái)。否則U-Boot重啟后,將會(huì)使用修改前的環(huán)境變量值。環(huán)境變量修改完成后,執(zhí)行reset命令,即可使用修改后的U-Boot環(huán)境變量啟動(dòng)。
U-Boot# env default -f -a
U-Boot# saveenv
U-Boot# reset
圖 66
在U-Boot命令行執(zhí)行printenv命令可查看環(huán)境變量,以下提供評(píng)估板從NAND FLASH啟動(dòng)時(shí)主要U-Boot環(huán)境變量的解析說(shuō)明。不同啟動(dòng)方式(如Micro SD、eMMC啟動(dòng))、不同版本的U-Boot,環(huán)境變量會(huì)有所不同,內(nèi)容僅供參考。
/*dsp0啟動(dòng)參數(shù),sunxi_flash會(huì)根據(jù)當(dāng)前啟動(dòng)介質(zhì)(如eMMC、Micro SD等)讀取對(duì)應(yīng)的文件。例如,評(píng)估板從eMMC啟動(dòng),boot_dsp0環(huán)境變量指定讀取eMMC dsp0分區(qū)的數(shù)據(jù)至DDR的43000000*/
boot_dsp0=sunxi_flash read 43000000 ${dsp0_partition};bootr 43000000 0 0
/*網(wǎng)絡(luò)啟動(dòng)參數(shù),板卡從TFTP服務(wù)端獲取boot.fex文件。至DDR的43000000*/
boot_net=tftpboot 43000000 boot.fex;run setargs_netboot;bootm 43000000
/*fastboot模式*/
boot_fastboot=fastboot
/*normal模式啟動(dòng)參數(shù),sunxi_flash會(huì)根據(jù)當(dāng)前啟動(dòng)介質(zhì)(如eMMC、Micro SD等)讀取對(duì)應(yīng)的文件。例如,評(píng)估板從eMMC啟動(dòng),boot_normal環(huán)境變量指定讀取eMMC boot分區(qū)的數(shù)據(jù)至DDR的0x43000000*/
boot_normal=sunxi_flash read 43000000 boot;bootm 43000000
/*recovery模式啟動(dòng)參數(shù),sunxi_flash會(huì)根據(jù)當(dāng)前啟動(dòng)介質(zhì)(如eMMC、Micro SD等)讀取對(duì)應(yīng)的文件。例如,評(píng)估板從eMMC啟動(dòng),boot_recovery環(huán)境變量指定讀取eMMC recovery分區(qū)的數(shù)據(jù)至DDR的0x43000000*/
boot_recovery=sunxi_flash read 43000000 recovery;bootm 43000000
/*啟動(dòng)命令*/
bootcmd=run boottestcount;run setargs_nand_ubi boot_normal
/*啟動(dòng)次數(shù)*/
bootcount=0
/*是否啟用計(jì)數(shù)功能*/
boottest=0
/*啟動(dòng)延時(shí)為1秒*/
bootdelay=1
/*調(diào)試串口為UART0,波特率為115200*/
console=ttyS0,115200
/*dsp0模式啟動(dòng)鏡像分區(qū)名*/
dsp0_partition=dsp0
/*初始化串口控制臺(tái)之前,使用uart8250,mmio32,0x02500000打印啟動(dòng)信息*/
earlycon=uart8250,mmio32,0x02500000
/*從nand的ubi0_5分區(qū)掛載根文件系統(tǒng)*/
nand_root=ubi0_5 rootwait rw
/*分區(qū)表參數(shù)*/
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系統(tǒng)啟動(dòng)卡的第5個(gè)分區(qū)掛載根文件系統(tǒng)*/
sd_root=/dev/mmcblk0p5 rootwait rw
/*NAND啟動(dòng)參數(shù)*/
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啟動(dòng)參數(shù)*/
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
/*網(wǎng)絡(luò)啟動(dòng)參數(shù)*/
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
由于篇幅過(guò)長(zhǎng)等原因,部分內(nèi)容均不逐一展示,如需獲取完整版詳細(xì)資料,請(qǐng)關(guān)注創(chuàng)龍科技微信公眾號(hào)或官網(wǎng),或者評(píng)論區(qū)留言,感謝您的支持!
審核編輯 黃宇
-
Linux
+關(guān)注
關(guān)注
88文章
11759瀏覽量
219014 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6290瀏覽量
118074
發(fā)布評(píng)論請(qǐng)先 登錄
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—Linux系統(tǒng)使用手冊(cè)(二)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—視頻開發(fā)案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—ARM + FPGA通信案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—ARM + DSP、RISC-V核間通信開發(fā)案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—RISC-V案例開發(fā)手冊(cè)(上)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—DSP案例開發(fā)手冊(cè)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—物聯(lián)網(wǎng)模塊開發(fā)案例(上)
【創(chuàng)龍TLT113-MiniEVM開發(fā)板試用體驗(yàn)】開箱評(píng)測(cè)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—GDB程序調(diào)試方法說(shuō)明
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—MQTT通信協(xié)議案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—Linux-RT應(yīng)用開發(fā)案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—LVGL應(yīng)用開發(fā)案例
國(guó)產(chǎn)開發(fā)板—米爾全志T113-i如何實(shí)現(xiàn)ARM+RISC-V+DSP協(xié)同計(jì)算?
一篇文章玩轉(zhuǎn)T113的ARM+RSIC V+DSP三核異構(gòu)!
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—Linux系統(tǒng)使用手冊(cè)(三)
評(píng)論