
本文档主要演示单板机/工控机配套Linux系统开发流程。包括LinuxSDK的配置与编译,U-Boot、Kernel及Rootfs的开发,以及系统镜像的替换方法。同时介绍关键计算单元(CPU)和内存子系统(DDR)性能策略配置与管理的详细步骤,旨在帮助开发者完成系统开发。
Windows开发环境:Windows10 64bit
Linux开发环境:VMware16.2.5、Ubuntu22.04.4 64bit
LinuxSDK开发包:LinuxSDK-[版本号](基于aiot-t153-linux-v1.0)
系统版本:Tronlong-Desktop 22.04(类Ubuntu)、U-Boot-2023.04-rc4、Linux-5.10.198
交叉编译工具链:
Rootfs开发、应用开发:arm-linux-gnueabihf-gcc(版本为11.4.0)
U-Boot开发:gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi
内核开发:gcc-linaro-11.3.1-2022.06-x86_64_arm-linux-gnueabihf
为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

(1)单板机默认镜像(已包含对应的设备树文件)支持创龙科技EX-TLBaseUART扩展板、EX-TLMultiUART扩展板、EX-TLMultiETH扩展板的外设,更换不同扩展板无需手动切换设备树文件。
(2)Linux系统部分镜像可支持通过命令行方式进行替换,具体如下表所示。

(3)系统相关软件包位于产品资料“4-软件资料\Linux\”目录下,具体如下表。
备注:我司推荐使用最新版本的LinuxSDK,亦可根据“4-软件资料\Linux\LinuxSDK\LinuxSDK-feature-support.pdf”的变更说明,自行替换对应模块至旧版本LinuxSDK进行更新。


将产品资料“4-软件资料\Linux\Tools\”目录下的工具包脚本文件install_tools.sh拷贝至工作目录下,执行脚本文件安装LinuxSDK开发包依赖软件。
备注:安装过程中,请保证Ubuntu可正常上网,若提示"*** is already the newest version ***"表示该软件已安装,请忽略。

安装过程中会弹出如下界面,请选择"No"。

打开Ubuntu,执行如下命令,创建T153工作目录。

请将产品资料“4-软件资料\Linux\LinuxSDK\”目录下的LinuxSDK-[版本号].tar.gz开发包拷贝至Windows下的SharedFolders共享目录。

此时可在Ubuntu的共享目录"/mnt/hgfs/SharedFolders/"下看到此开发包。

执行如下命令,将LinuxSDK开发包解压至T153工作目录,耗时约10min后解压完成,生成aiot-t153-linux-[版本号]文件夹,即为LinuxSDK源码目录。

执行如下命令,查看已解压的LinuxSDK源码目录。


请先参考“LinuxSDK安装”章节正确安装LinuxSDK和依赖软件,再执行以下步骤。
请将产品资料“4-软件资料\Linux\Filesystem\src\”目录下的Tronlong-Desktop-22.04-[版本号]-[Git系列号]-xxxx.tar.gz压缩包(版本号、Git系列号请以实际情况为准)拷贝至Windows下的SharedFolders共享目录。

执行如下命令,进入LinuxSDK源码的buildroot目录,创建ubuntu目录,并将文件系统解压至创建的ubuntu目录。


至此,LinuxSDK开发包已包含文件系统。
执行如下命令,进入LinuxSDK源码目录并配置Linux内核、内核版本、处理器型号、单板机型号、显示方式、编译器等信息。
本次以NAND FLASH配置单板机进行演示,若使用eMMC配置单板机,请将config配置选项"All available board"设置为"sbc-tlt153-emmc"。
备注:首次执行上述命令会出现官方阅读说明,在等待倒计时结束后输入"Y",按回车确认即可。



Config具体配置如下:
========ACTION List: mk_config ;========
All available platform:
0. android
1. linux
Choice [linux]: 1
All available linux_dev:
0. bsp
1. buildroot
2. ubuntu
Choice [bsp]: 2
All available ic:
0. t153
Choice [t153]: 0
All available ddr_type:
0. ddr3
1. ddr4
Choice [ddr3]: 0
All available board:
0. bga_demo
1. bga_demo_amp_nand
2. bga_demo_nand
3. bga_demo_nor
4. demo
5. demo2_nand
6. demo_amp_nand
7. demo_nand
8. demo_nor
9. demo_qa
10. sbc-tlt153-emmc
11. sbc-tlt153-nand
12. tlt153-evm-emmc
13. tlt153-evm-nand
14. tlt153-minievm-emmc
15. tlt153-minievm-nand
Choice [sbc-tlt153-nand]: 11
All available nand_capacity:
0. 256MB
1. 512MB
Choice [256MB]: 1
All available output_configs:
0. hdmi
1. lvds-lcd
2. mipi-lcd
3. eth3-rgmii
4. localbus
Choice [hdmi]: 1
All available flash:
0. default
1. nor
Choice [default]: 0
All available kern_name:
0. linux-5.10-origin
1. linux-5.10-rt
2. linux-5.10-xenomai
Choice [linux-5.10-origin]: 0

(1)内核设备树文件
我司提供的内核设备树文件位于LinuxSDK源码"device/config/chips/t153/configs/sbc-tlt153-xxxx/"目录下。
备注:NAND FLASH配置单板机的内核设备树文件位于sbc-tlt153-nand目录,eMMC配置单板机的内核设备树文件位于sbc-tlt153-emmc目录。

单板机使用的内核设备树文件存在多级的依赖关系,具体如下表所示。表中的下一级内核设备树文件,被上一级内核设备树文件所引用。

(2)U-Boot设备树文件
我司提供的U-Boot设备树文件位于LinuxSDK源码"device/config/chips/t153/configs/sbc-tlt153-xxxx/linux-5.10-xx/"目录下。
备注:NAND FLASH配置单板机的U-Boot设备树文件位于sbc-tlt153-nand目录,eMMC配置单板机的U-Boot设备树文件位于sbc-tlt153-emmc目录。

单板机使用的U-Boot设备树文件存在多级的依赖关系,具体如下表所示。表中的下一级U-Boot设备树文件,被上一级U-Boot设备树文件所引用。

为便于测试,我司已提供支持以上功能的多个boot_package_xxx.fex、boot_xxx.fex文件,位于产品资料“4-软件资料\Linux\U-Boot\image\u-boot-2023-[版本号]-[Git系列号]_u-boot-bsp-[版本号]-[Git系列号]\”和“4-软件资料\Linux\Kernel\image\linux-5.10.198-[版本号]-[Git系列号]_bsp-[版本号]-[Git系列号]\”目录下,可直接使用。
我司提供的系统默认使用支持LVDS OUT显示的U-Boot设备树文件,如需替换为支持其他功能的U-Boot设备树,请进入LinuxSDK源码目录,执行如下命令,重新配置信息。

我司默认配置的是Linux内核(推荐使用)。如需修改内核编译选项配置,请继续执行"./build.sh menuconfig"命令打开图形配置界面。此命令通过读取当前目录的.config文件,以图形界面的方式提供内核编译配置查看和修改方法。如无需修改内核编译选项配置,可跳过此步骤。
menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先执行如下命令通过网络安装ncurses库。

ncurses库安装完成后,执行如下命令打开图形配置界面。


可通过键盘的方向键选中对应菜单栏。在被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。
每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到内核中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译为内核模块。按下M键,会将相应的选项配置编译为内核模块,菜单选项前面变为< M >。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。

执行如下命令,保存配置选项。NAND FLASH配置单板机将保存在"device/config/chips/t153/configs/sbc-tlt153-nand/linux-5.10-origin/buildroot_linux_defconfig"目录;eMMC配置单板机将保存在"device/config/chips/t153/configs/sbc-tlt153-emmc/linux-5.10-origin/buildroot_linux_defconfig"目录。

请确保已参照“配置编译选项”章节配置LinuxSDK编译选项,然后在LinuxSDK的源码目录下执行如下命令,一键编译生成U-Boot、Kernel、文件系统等镜像,并打包生成系统镜像。
备注:若修改U-Boot、内核等配置,需重新执行"./build.sh"命令,再打包生成系统镜像文件。

预计耗时约10min编译完成后,生成U-Boot、Linux内核和文件系统镜像文件,镜像文件需转化为.fex格式后使用。

(1)生成U-Boot镜像文件为"out/t153/sbc-tlt153-xxxx/ubuntu/u-boot-sun8iw22p1.bin"。

(2)生成内核镜像文件为"out/t153/sbc-tlt153-xxxx/ubuntu/boot.img"。

(3)生成文件系统镜像文件"out/t153/sbc-tlt153-xxxx/ubuntu/rootfs.ubifs"和"out/t153/sbc-tlt153-xxxx/ubuntu/rootfs.ext4"。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。