SBC-T113产品特性:
• 采用Allwinner公司Cortex-A7双核T113-i处理器,运行最高速度为1.2GHZ;
• 内置64位玄铁C906 RISC-V CPU和 DSP,提供高效的计算能力;
• 支持1080P 视频编码,多格式1080P 60fps视频解码 (H.265,H.264, MPEG-1/2/4)
• 支持LVDS/MIPI-DSI,分辨率最高1920x1080;
• 支持512-1G Bytes DDR3 SDRAM;
• 支持SPI NAND启动和存储(256MB默认;512MB可选);可选EMMC启动和存储( 4G默认;8GB可选);
• 支持4路USB2.0 HOST和1路OTG,1路I2C,6路UART(RS232), 1路PWM(应用于背光)
• 支持双路CAN BUS通信
• 支持双路以太网,一路10/100M;一路10/100/1000M;
• 标准3.5寸主板, 尺寸为:146*102MM
SBC-T113功能评估图:
配置内核代码及保存当前内核配置为默认配置:
执行./build.shconfig命令配置SDK后,编译内核生成的相关配置文件会存放在SDK目录下"out/kernel/build/"目录,这里含.config内核配置文件,此时才能配置内核选项。如需定制内核,可以在"out/kernel/build/"目录下执行"make ARCH=armmenuconfig"命令或在SDK目录下执行./build.shmenuconfig打开图形配置界面进行内核的配置。这些命令通过读取当前目录的.config文件,以图形界面的方式提供内核编译配置查看和修改。如无需修改内核编译选项配置,可跳过此步骤。
menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先执行如下命令通过网络安装ncurses库,如果执行
Host$sudo apt-get installlibncurses5-dev
Host$sudo apt-get installlibncursesw5-dev
ncurses库安装完成后,执行如下命令打开图形配置界面。
Host$ cd /home/embfly/T113/T113-i_v1.0/out/kernel/build/
Host$ make ARCH=arm menuconfig
embfly@embfly-virtual-machine:~$cd /home/embfly/T113/T113-i_v1.0/out/ker
nel/build/
embfly@embfly-virtual-machine:~/T113/T113-i_v1.0/out/kernel/build$
make ARCH=arm menuconfig
可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。
每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到内核中,同时菜单选项前面变为<*>。按下N键,不会将相应的选项配置编译到内核中。按下M键,会将相应的选项配置编译为内核模块,菜单选项前面变为<M>。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。
配置完成后,如何把这个配置保存下来后续再使用呢?内核默认的配置文件都来自于SDK/kernel/linux-5.4/arch/arm/configs目录,对于NAND启动的产品来说,内核的配置文件是sun8iw20p1smp_auto_nand_defconfig。可以通过如下两条指令把当前使用的配置文件保存下来。指令如下(以下指令任选其一):
(1)在SDK目录下执行如下指令:
Host$./build.sh saveconfig
(2)在SDK目录下"out/kernel/build/"执行如下指令
Host$ make ARCH=arm savedefconfig
内核代码及设备树的编译:
在T113-i_v1.0目录下执行如下命令,单独编译Linux内核。
Host$ ./build.sh kernel
embfly@embfly-virtual-machine:~/T113/T113-i_v1.0$./build.sh kernel
ACTIONList:mkkernel;==
Executecommand: mkkernel
INFO:build kernel
INFO:prepare_buildserver
INFO:Prepare toolchain .
buildserverstart already!
toolchain_archivedir=/home/embfly/T113/T113-i_v1.0/build/toolchain/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi.tar.xz
(cd/home/embfly/T113/T113-t_v1.o/butld && [ -x mkkernel.sh ] &&./mkkernel.sh)
Buildingkernel
……
GPU]:Build done
-builddts for sun8iw20p1 sbc-t113_nand
/home/embfly/T113/T113-i_v1.0/out/kernel/build/arch/arm/boot/dts//board.dtb
'/home/embfly/T113/T113-i_v1.0/out/kernel/staging/sunxi.dtb
Copymodules to target
16149blocks
18550blocks
buildramfs
Copyboot.img to output directory
sun8iw20p1compile Kernel successful
INFO:Prepare toolchain
toolchatn_archivedtr=/home/embfly/T113/T113-i_v1.0/build/toolchain/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi.tar.xz
--builddts for sun8iw20p1 sbc-t113_nand
make[1]:Entering directory '/home/embfly/T113/T113-i_v1.0/out/kernel/build'
DTCarch/arm/boot/dts/board.dtb
make[1]:Leaving directory '/home/embfly/T113/T113-i_v1.0/out/kernel/build'
'/home/embfly/T113/T113-t_v1.0/out/kernel/build/arch/arm/boot/dts//board.dtb
>'/home/embfly/T113/T113-i_v1.0/out/kernel/staging/sunxt.dtb'
cp:cannot stat '/home/embfly/T113/T113-i_v1.0/kernel/linux-5.4/scripts/dtc/dtc
Nosuch file or directory
/home/embfly/T113/T113-i_v1.0/out/kernel/staging/sunxi.dtb''/home/embfly
/T113/T113-i_v1.0/out/t113_i/sbc-t113_nand/longan/sunxi.dtb
INFO:build kernel OK.
embfly@embfly-virtual-machine:~/T113/T113-i_v1.0$
编译完成后,生成Linux内核镜像文件为"out/t113_i/sbc-t113_nand/longan/boot.img "。
通常来说,编译了内核,设备树也会一并进行编译。为了快速适配不同的板卡,有些时候也会单独编译dts,根据显示设备的不同,我司已提供分别支持HDMI OUT、TFT LCD、MIPI LCD、LVDS
LCD、CVBS显示的设备树文件,如下表所示。其中“device/config/chips/t113_i/configs/sbc-t113_nand/linux-5.4/”目录下存放Linux设备树源文件,“device/config/chips/t113_i/configs/sbc-t113_nand/”目录下存放U-Boot设备树源文件(uboot-board-xxx.dts)。
对于EMMC启动的产品,设备树保存的目录分别是:“device/config/chips/t113_i/configs/sbc-t113_emmc/linux-5.4/”目录下存放Linux设备树源文件,“device/config/chips/t113_i/configs/sbc-t113_emmc/”目录下存放U-Boot设备树源文件(uboot-board-xxx.dts)。
表 8 设备树文件
步骤如下:
在T113-i_v1.0目录(SDK所在目录)下执行如下命令,单独编译dts。
Host$ ./build.sh dts
在T113-i_v1.0目录(SDK所在目录)执行如下命令,将镜像文件转化为.fex格式,并打包生成新的Linux系统镜像。
Host$ ./build.shpack