前言
請先按照Linux開發環境搭建文檔進行開發環境搭建,由于系統編譯過程需下載相關工具軟件包,請確保Ubuntu可正常訪問互聯網。本說明文檔適用開發環境如下:
Windows開發環境:Windows 7 64bit、Windows 10 64bit
Linux開發環境:Ubuntu20.04.6 64bit
虛擬機:VMware16.2.5
U-Boot:U-Boot-2023.04
Kernel:Linux-5.10.198
Buildroot文件系統版本:Buildroot-2022.05
LinuxSDK:T536_Tina5.0_AIOT V1.1(Linux)
交叉編譯工具鏈:
U-Boot開發使用:gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi
Buildroot、內核開發使用:gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu
Linux系統相關軟件包位于產品資料“4-軟件資料Linux”目錄下,具體如下表所示。其中,我司已提供SPL、U-Boot、Kernel、Filesystem和Linux系統鏡像文件,SPL、U-Boot、Kernel、Filesystem源碼位于LinuxSDK開發包內,同時亦提供了Kernel、Filesystem以及LinuxSDK開發包內其他模塊的源碼壓縮包。
備注:我司推薦使用最新版本的LinuxSDK,亦可根據“4-軟件資料LinuxLinuxSDKLinuxSDK-feature-support.pdf”的變更說明,自行替換對應模塊(如device/config/chips/t536)至舊版本LinuxSDK進行使用。
LinuxSDK安裝
安裝依賴軟件
打開Ubuntu,執行如下命令,新建T536工作目錄。
Host# mkdir -p /home/tronlong/T536
圖 1
將產品資料“4-軟件資料LinuxTools”目錄下的工具包腳本文件install_tools.sh拷貝至T536工作目錄下,執行腳本文件安裝LinuxSDK開發包依賴軟件。
備注:安裝過程中,請保證Ubuntu可正常上網,若提示"*** is already the newest version ***"表示該軟件已安裝,請忽略。
Host# ./install_tools.sh
圖 2
安裝過程中會彈出如下界面,請選擇"No"。
圖 3
Host# sudo ln -s /usr/bin/python3 /usr/bin/python
圖 4
執行如下命令,安裝ncurses庫和g++-aarch64-linux-gnu。
Host# sudo apt install libncurses5-dev libncursesw5-dev
Host# sudo apt-get install -y g++-aarch64-linux-gnu
圖 5
圖 6
解壓LinuxSDK
由我司提供的LinuxSDK-[版本號].tar.gz開發包基于全志科技的T536_Tina5.0_AIOT V1.1,其位于產品資料“4-軟件資料LinuxLinuxSDK”目錄下,LinuxSDK版本號以實際情況為準。
將LinuxSDK開發包拷貝至Windows下的SharedFolders共享目錄。
圖 7
此時可在Ubuntu的共享目錄"/mnt/hgfs/SharedFolders/"下看到此開發包。
圖 8
執行如下命令,將LinuxSDK開發包解壓至T536工作目錄,耗時約10min后解壓完成,生成T536_Tina5.0_AIOT_V1.1文件夾,即為LinuxSDK源碼目錄。
Host# tar -zxf /mnt/hgfs/SharedFolders/LinuxSDK-v1.0.tar.gz -C /home/tronlong/T536/
圖 9
執行如下命令,查看已解壓的LinuxSDK源碼目錄。
Host# cd /home/tronlong/T536/T536_Tina5.0_AIOT_V1.1/
Host# ls -al
圖 10
解壓Buildrootdl
請將產品資料“4-軟件資料LinuxLinuxSDK”目錄下的dl.tar.gz壓縮包拷貝至T536工作目錄。dl.tar.gz為Buildroot dl目錄壓縮包,用于存放從官網下載的開源軟件包,LinuxSDK編譯時可從該目錄獲取開源包,以節約下載時間,提高編譯效率,且能避免因網絡環境差異導致編譯Buildroot失敗的問題。
Host# cp /mnt/hgfs/SharedFolders/dl.tar.gz ./
Host# tar -zxf dl.tar.gz -C buildroot/buildroot-202205/
圖 11
至此,LinuxSDK開發包解壓安裝完成。
Linux系統鏡像編譯、生成
配置編譯環境
進入LinuxSDK源碼目錄執行如下命令,加載環境變量,配置Linux內核、內核版本、處理器型號、評估板型號、顯示方式、編譯器等信息。
Host# cd T536/T536_Tina5.0_AIOT_V1.1/
Host# ./build.sh config
備注:首次執行上述命令會出現官方閱讀說明,在等待倒計時結束后輸入"Y",按回車確認即可。
圖 12
圖 13
Config具體配置如下:
========ACTION List: mk_config ;========
All available platform:
0. android
1. linux
Choice [android]: 1
All available linux_dev:
0. bsp
1. buildroot
Choice [bsp]: 1
All available ic:
0. t536
Choice [t536]: 0
All available board:
0. demo
1. demo_amp
2. demo_kylo
3. demo_nand
4. demo_nor
5. demo_raw_nand
6. tlt536-evm
Choice [demo]: 6
All available output_configs:
0. hdmi
1. lvds-lcd
2. dual-lvds-lcd
3. mipi-lcd
Choice [hdmi]: 0
All available flash:
0. default
1. nor
Choice [default]: 0
All available kern_name:
0. linux-5.10-euler
1. linux-5.10-origin
2. linux-5.10-rt
3. linux-5.10-xenomai
4. linux-5.15-origin
Choice [linux-5.10-euler]: 1
圖 14
編譯LinuxSDK
配置內核選項
我司默認配置的是Linux內核(推薦使用)。如對系統實時性要求較高,則需配置編譯為Linux-RT內核,或需修改內核編譯選項配置,請繼續執行"make xxxmenuconfig"命令打開圖形配置界面。此命令通過讀取當前目錄的.config文件,以圖形界面的方式提供內核編譯配置查看和修改方法。如無需修改內核編譯選項配置,可跳過此步驟。
menuconfig是一套圖形化的配置工具,需要ncurses庫支持。ncurses庫提供了一系列的API函數供調用者生成基于文本的圖形界面,因此需要先參考“安裝依賴環境”章節安裝ncurses庫。
ncurses庫安裝完成后,執行如下命令打開圖形配置界面。
Host# cd /home/tronlong/T536/T536_Tina5.0_AIOT_V1.1/
Host# ./build.sh menuconfig
圖 15
圖 16
可通過鍵盤的方向鍵選中對應菜單欄。在被選中的情況下,可按Enter鍵進入子菜單。菜單選項中藍色高亮的字母代表此菜單選項的快捷鍵,可在鍵盤上按下對應的字母快速選中對應的菜單選項。每個菜單選項前的括號內容表示當前菜單選項的配置狀態。選中對應的菜單選項后,按下Y鍵,會將相應的選項配置編譯到內核中,同時菜單選項前面變為< * >。按下N鍵,不會將相應的選項配置編譯到內核中。按下M鍵,會將相應的選項配置編譯為內核模塊,菜單選項前面變為< M >。如需搜索,可按下/鍵打開搜索框,然后輸入要搜索的內容。
圖 17?
執行如下命令,保存配置的選項。配置保存在"configs/tlt536-evm/linux-5.10-origin/buildroot_linux_defconfig"。Host# ./build.sh saveconfig
圖 18?
配置Buildroot
如需修改Buildroot配置,請執行如下命令打開Buildroot配置界面,通過讀取"out/t536/tlt536-evm/buildroot/buildroot/"目錄下的.config文件,以圖形界面的方式提供文件系統編譯配置查看和修改。如無需修改Buildroot配置,可跳過此步驟。Host# cd /home/tronlong/T536/T536_Tina5.0_AIOT_V1.1/Host# ./build.sh buildroot_menuconfig
圖 19
?圖 20?
可通過鍵盤的方向鍵選中對應菜單欄。在被選中的情況下,可按Enter鍵進入子菜單。菜單選項中藍色高亮的字母代表此菜單選項的快捷鍵,可在鍵盤上按下對應的字母快速選中對應的菜單選項。
每個菜單選項前的括號內容表示當前菜單選項的配置狀態。選中對應的菜單選項后,按下Y鍵,會將相應的選項配置編譯到Buildroot中,同時菜單選項前面變為< * >。按下N鍵,不會將相應的選項配置編譯到Buildroot中。如需搜索,可按下/鍵打開搜索框,然后輸入要搜索的內容。
配置完成后,選中,按Enter鍵保存配置選項。然后選中,按Enter鍵退出。執行如下命令,保存配置選項。配置選項將自動保存至"/home/tronlong/T536/T536_Tina5.0_AIOT_V1.1/buildroot/buildroot-202205/configs/sun55iw6p1_t536_defconfig"。
Host# ./build.sh buildroot_saveconfig
圖 21
配置Qt模塊
如需增添或刪除Qt模塊,請進入LinuxSDK源碼目錄下執行如下命令,打開Buildroot配置界面,通過圖形界面的方式提供文件系統編譯配置查看和修改。
備注:當前LinuxSDK默認已支持Qt功能,若無需增加或刪減Qt模塊,可跳過此步驟。
Host# ./build.sh buildroot_menuconfig
圖 22
圖 23
在圖形配置界面中,進入"Target packages---> Graphic libraries and applications (graphic/text)---> Qt5 --->"路徑,選中需增加或刪除的配置選項。
每個菜單選項前的括號內容表示當前菜單選項的配置狀態。選中對應的菜單選項后,按下Y鍵,會將相應的選項配置編譯到Buildroot中,同時菜單選項前面變為< * >。按下N鍵,不會將相應的選項配置編譯到Buildroot中。如需搜索,可按下/鍵打開搜索框,然后輸入要搜索的內容。
配置完成后,選中,按Enter鍵保存配置選項。然后選中,按Enter鍵退出。
圖 24
圖 25
圖 26
執行如下命令,保存配置選項。配置選項將自動保存至"/home/tronlong/T536/T536_Tina5.0_AIOT_V1.1/buildroot/buildroot-202205/configs/sun55iw6p1_t536_defconfig"。
Host# ./build.sh buildroot_saveconfig
圖 27
編譯LinuxSDK
在LinuxSDK源碼目錄下執行如下命令,一鍵編譯SPL、U-Boot、Linux內核和Buildroot文件系統。
備注:若修改內核、Buildroot、Qt模塊等配置,需重新執行"./build.sh"命令,再打包生成Linux系統鏡像文件。
Host# ./build.sh
圖 28
預計耗時約30min編譯完成后,生成SPL、U-Boot、Linux內核和Buildroot文件系統鏡像文件,鏡像文件需轉化為.fex格式后使用。
圖 29
生成SPL鏡像文件為"out/t536/tlt536-evm/buildroot/"目錄下的boot0_nand_sun55iw6p1.bin、boot0_sdcard_sun55iw6p1.bin和boot0_spinor_sun55iw6p1.bin。
圖 30
生成U-Boot鏡像文件為"out/t536/tlt536-evm/buildroot/u-boot-sun55iw6p1.bin"。
圖 31
生成Linux內核鏡像文件為"out/t536/tlt536-evm/buildroot/boot.img"。
圖 32
生成文件系統鏡像文件"out/t536/tlt536-evm/buildroot/rootfs.ubifs"和"out/t536/tlt536-evm/buildroot/buildroot/images/rootfs.ext4"。
圖 33
編譯生成Linux系統鏡像
執行如下命令,打包生成Linux系統鏡像文件。
Host# ./build.sh pack
圖 34
圖 35
本次操作會將SPL鏡像(boot0_nand_sun55iw6p1.bin、boot0_sdcard_sun55iw6p1.bin和boot0_spinor_sun55iw6p1.bin)轉化為boot0_sdcard.fex、boot0_nand.fex、boot0_spinor.fex文件;將U-Boot鏡像(u-boot-sun55iw6p1.bin)、U-Boot設備樹鏡像、sys_config配置文件合并生成boot_package.fex文件;將Linux內核鏡像(boot.img)、Linux內核設備樹鏡像轉化為boot.fex文件;將文件系統鏡像文件轉化為rootfs-ubifs.fex文件和rootfs-sdboot.fex文件。
最后將boot0_sdcard.fex、boot0_nand.fex、boot0_spinor.fex、boot_package.fex、boot.fex、rootfs.fex等文件,打包生成"out/t536_linux_tlt536-evm_uart0.img"Linux系統鏡像文件。
圖 36
圖 37
請參考Linux系統啟動卡制作及系統固化文檔,將Linux系統鏡像文件固化至Micro SD卡、eMMC即可。
局部編譯
如需單獨編譯SPL、U-Boot、Linux內核、設備樹或文件系統,可參照本章節內容進行局部編譯。
SPL和U-Boot編譯
在LinuxSDK源碼目錄下執行如下命令,單獨編譯SPL和U-Boot。
Host# ./build.sh bootloader
圖 38
圖 39
編譯完成后,生成SPL鏡像文件為"out/t536/tlt536-evm/buildroot/"目錄下的boot0_nand_sun55iw6p1.bin、boot0_sdcard_sun55iw6p1.bin和boot0_spinor_sun55iw6p1.bin。生成U-Boot鏡像文件為"out/t536/tlt536-evm/buildroot/u-boot-sun55iw6p1.bin"。
執行如下命令,將鏡像文件轉化為.fex格式,并打包生成新的Linux系統鏡像。
Host# ./build.sh pack
圖 40
圖 41
圖 42
內核編譯
在LinuxSDK源碼目錄下執行如下命令,單獨編譯Linux內核。
Host# ./build.sh kernel
圖 43
圖 44
編譯完成后,生成Linux內核鏡像文件為"out/pack_out/boot.fex"。
執行如下命令,將鏡像文件轉化為.fex格式,并打包生成新的Linux系統鏡像。
Host# ./build.sh pack
圖 45
圖 46
文件系統編譯
在Linux源碼目錄下執行如下命令,單獨編譯文件系統。
Host# ./build.shbuildroot_rootfs
圖 47
圖 48
編譯完成后,在"out/t536/tlt536-evm/buildroot/buildroot/images/"目錄生成文件系統鏡像文件rootfs.ext2和rootfs.ext4。
執行如下命令,將鏡像文件轉化為.fex格式,并打包生成新的Linux系統鏡像。
Host# ./build.sh pack
圖 49
圖 50
Linux系統文件替換說明
本章節提供了固化Linux系統文件至Linux系統啟動卡和eMMC的方法。Linux系統啟動卡和eMMC的設備節點由注冊順序決定,請參考《Linux系統啟動卡制作及系統固化》系統啟動卡和eMMC分區說明章節確定Linux系統啟動卡和eMMC設備節點。
替換SPL
我司已提供SPL鏡像boot0_sdcard.fex文件,位于產品資料“4-軟件資料LinuxSPLimagespl-pub-[版本號]-[Git系列號]”目錄下。
請將SPL鏡像boot0_sdcard.fex文件拷貝至評估板文件系統root目錄下,執行如下命令固化至Linux系統啟動卡或eMMC。
Target# dd if=boot0_sdcard.fexof=/dev/mmcblk0seek=16 conv=fsync
Target# dd if=boot0_sdcard.fexof=/dev/mmcblk0seek=256 conv=fsync
圖 51
替換U-Boot鏡像、boot_package.fex
boot_package.fex文件由U-Boot鏡像、設備樹鏡像和sys_config配置文件合并生成。我司提供多個boot_package_xxx.fex文件,位于產品資料“4-軟件資料LinuxU-Bootimageu-boot-2023-[版本號]-[Git系列號]_u-boot-bsp-[版本號]-[Git系列號]”目錄下。如需替換boot_package_xxx.fex,請將目標boot_package_xxx.fex文件拷貝至評估板文件系統root目錄下。以HDMI顯示固件(boot_package_hdmi.fex)為例,執行如下命令固化至Linux系統啟動卡或eMMC。
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
圖 52
備注:如需更換顯示輸出接口,須同時更換U-Boot和內核鏡像。
替換內核、內核模塊
我司同時提供了Linux內核鏡像(boot_xxx.fex)、Linux內核模塊壓縮包(modules文件夾),位于產品資料“4-軟件資料LinuxKernelimagelinux-5.10.198-[版本號]-[Git系列號]_bsp-[版本號]-[Git系列號]”目錄下。如需替換新的內核鏡像,請參考如下方法同時替換對應的內核鏡像和內核模塊至Linux系統啟動卡或eMMC。
備注:我司提供了不同顯示方式的Linux內核鏡像boot_xxx.fex文件。如需更換不同的顯示方式,請替換相應的內核鏡像。
替換內核鏡像
請將內核鏡像文件拷貝至評估板文件系統root目錄下,執行如下命令固化至Linux系統啟動卡,以HDMI顯示的內核鏡像為例。
Target# dd if=boot_hdmi.fex of=/dev/mmcblk0p3 conv=fsync
圖 53
替換內核模塊
內核模塊需與內核版本保持一致,否則會因版本不一致而導致內核模塊無法加載。因此替換內核鏡像后,請按如下方法替換對應版本的內核模塊。
將內核模塊壓縮包解壓后拷貝至評估板文件系統root目錄下,執行如下命令,替換Linux系統啟動卡或eMMC原有的內核模塊。
Target# rm -rf /lib/modules/*
Target# cp -r $(uname -r) /lib/modules/
Target# sync
Target# reboot
圖 54
替換環境變量
請將編譯生成的env.fex文件從LinuxSDK源碼目錄"/home/tronlong/T536/T536_Tina5.0_AIOT_V1.1/out/pack_out/env.fex"拷貝至評估板文件系統root目錄下,執行如下命令將其固化至Linux系統啟動卡或eMMC。
Target# dd if=env.fex of=/dev/mmcblk0p2conv=fsync
圖 55
由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注創龍科技微信公眾號或官網,或者評論區留言,感謝您的支持!
審核編輯 黃宇
-
開發板
+關注
關注
25文章
5584瀏覽量
103063 -
Ubuntu
+關注
關注
5文章
589瀏覽量
30942
發布評論請先 登錄
【米爾-全志T536開發板試用體驗】測試心得
【米爾-全志T536開發板試用體驗】- 連接電腦通訊與操作測試
米爾全志T536核心板國產首發!17串口4CAN口、四核A55

全志T536系列處理器特性概述 集成RISC-V E907協處理器

米爾全志T536核心板正式發售,賦能電力與工業市場
全志T536 4核A55 ARM+RISC-V+NPU 17路UART 工業開發板—評估板測試手冊

評論