全志T536 4核A55 ARM+RISC-V+NPU 17路UART 工业开发板—Linux系统使用手册

前言

请先按照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-软件资料\Linux\LinuxSDK\LinuxSDK-feature-support.pdf”的变更说明,自行替换对应模块(如device/config/chips/t536)至旧版本LinuxSDK进行使用。

 

LinuxSDK安装

安装依赖软件

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

Host# mkdir -p /home/tronlong/T536

 

图 1

 

将产品资料“4-软件资料\Linux\Tools\”目录下的工具包脚本文件install_tools.sh拷贝至T536工作目录下,执行脚本文件安装LinuxSDK开发包依赖软件。

备注:安装过程中,请保证Ubuntu可正常上网,若提示"*** is already the newest version ***"表示该软件已安装,请忽略。

Host# ./install_tools.sh

图 2

 

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

图 3

 

执行如下命令,将Python3链接为Python。

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-软件资料\Linux\LinuxSDK\”目录下,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

 

 

 

解压Buildroot dl

请将产品资料“4-软件资料\Linux\LinuxSDK\”目录下的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 xxx menuconfig"命令打开图形配置界面。此命令通过读取当前目录的.config文件,以图形界面的方式提供内核编译配置查看和修改方法。如无需修改内核编译选项配置,可跳过此步骤。

menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先参考“安装依赖环境”章节安装ncurses库。

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

Host# cd /home/tronlong/T536/T536_Tina5.0_AIOT_V1.1/

Host# ./build.sh menuconfig

图 15
 
图 16

 

可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按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

 

可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。

每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到Buildroot中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到Buildroot中。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。

配置完成后,选中<Save>,按Enter键保存配置选项。然后选中<Exit>,按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.sh buildroot_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-软件资料\Linux\SPL\image\spl-pub-[版本号]-[Git系列号]\”目录下。

请将SPL镜像boot0_sdcard.fex文件拷贝至评估板文件系统root目录下,执行如下命令固化至Linux系统启动卡或eMMC。

Target# dd if=boot0_sdcard.fex of=/dev/mmcblk0 seek=16 conv=fsync

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

图 51

 

替换U-Boot镜像、boot_package.fex

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

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

图 52

备注:如需更换显示输出接口,须同时更换U-Boot和内核镜像。

替换内核、内核模块

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

图 55

 

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

 

posted @ 2025-06-12 17:21  创龙科技-黄工  阅读(22)  评论(0)    收藏  举报