t113平台tina5.0(openwrt)开发连载-TinaLinux的编译指令的介绍与编译

SBC-T113S产品特性:

  • 采用Allwinner公司Cortex-A7双核T113-S3/S4处理器,运行最高速度为1.2GHZ;
  • 内置64-bit XuanTie C906 RISC-V协处理器(仅T113-S4支持);
  • 支持JPEG/MJPEG视频编码,最大分辨率1080p@60fps;支持多格式1080P@60fps视频解码 (H.265,H.264, MPEG-1/2/4);
  • 支持RGB666/LVDS/MIPI-DSI,分辨率最高1920x1080;
  • 支持128-256M Bytes DDR3 SDRAM,其中T113-S3内置128MB;T113-S4内置256MB;
  • 支持SPI NAND存储和启动(默认:256MB)或者EMMC启动(默认:4GB,最大32GB);
  • 支持一路USB2.0 OTG(设计为TYPE-A接口);支持二路USB2.0 HOST;
  • 支持七路RS232通信或者6路RS232和1路RS485(非隔离);
  • 支持一路CAN BUS通信(非隔离);
  • 支持一路10/100M以太网;
  • 稳定的操作系统的支持,可预装LINUX 5.4(Preempt)或者OpenWRT;
  • 经典尺寸主板,尺寸为120*100MM;

SBC-T113S产品功能评估图:

编译 Tina Linux

 在搭建好编译环境并下载好源码后,即可对源码进行编译,编译打包好后,即可将打包好的固件烧写到设备中去。本文主要介绍编译和烧写的方法。

T113_S4官方适配Tina5.0版本。Tina5.0同时支持openWrtbuildroot双编译环境

本文将分为两个部分,分别介绍 openWrt 编译方法与 buildroot 的编译方法。

注意:两套编译系统并不是完全独立的,在openWrt内修改的kernel menuconfig 会影响到 buildroot的 kernel 配置。

openWrt 编译

openWrt 的编译大致分为以下流程:

(1) source build/envsetup.sh  # 获取 Tina 环境变量
(2) lunch                     # 载入方案列表,选择方案
(3) mp                        # 编译打包

(1)获取 Tina 环境变量

tina@VirtualBox:~/tina-t113_s4$ source build/envsetup.sh
NOTE: The SDK(/home/tina/tina-t113_s4) was successfully loaded
load openwrt... ok
Please run lunch next for openwrt.
load buildroot,sata,dragonboard,bsp...ok
Please run ./build.sh config next for buildroot, bsp.

(2)载入方案列表,选择方案

之后使用 lunch 命令载入方案列表,可以看到方案 1 对应的是 t113_s4-sbc-t113s-tina 板子,也正是 SBC-T113S主板。输入 1 回车即可。看到方案 2 对应的是 t113_i-sbc-t113-tina 板子,这款是我司另外一款以T113i为主控的主板-SBC-T113,如果是其他板子,也可以输入对应板子的序号选择方案。

tina@VirtualBox:~/tina-t113_s4$ lunch

You're building on Linux

Lunch menu... pick a combo:
1	t113_s4-sbc-t113s_nand-tina
2	t113_i-sbc-t113-tina

Which would you like? []: 1

第一次 lunch 需要阅读使用协议,同意表示同意全志科技相关用户协议与SDK的使用协议。如果同意,输入y即可。

...上略...

You can read /home/tina/tina-t113_s4/build/disclaimer/Allwinnertech_Disclaimer(Cn_En)_20181122.md for detailed information.

You read time left 8 seconds....
I have already read, understood and accepted the above terms? [Y/N]

之后 SDK 会自动根据你所选择的方案解压编译工具链,创建环境,耐心等待下即可。输出如下:

Jump to longan autoconfig
/home/tina/tina-t113_s4/build.sh autoconfig -o openwrt -i t113_s4 -b vision          -n default
========ACTION List: mk_autoconfig -o openwrt -i t113_s4 -b sbc-t113s_nand -n default;========
options :
INFO: Prepare toolchain ...
INFO: kernel defconfig: generate /home/tina/tina-t113_s4/kernel/linux-4.9/.config by /home/tina/tina-t113_s4/device/config/chips/t113_s4/configs/sbc-t113s_nand/linux-5.4/config-5.4
INFO: Prepare toolchain ...
make: Entering directory `/home/tina/tina-t113_s4/kernel/linux-5.4'
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
*** Default configuration is based on '../../../../../device/config/chips/t113_s4/configs/vision/linux-5.4/config-5.4'
#
# configuration written to .config
#
make: Leaving directory `/home/tina/tina-t113_s4/kernel/linux-5.4'
INFO: clean buildserver
INFO: prepare_buildserver
看到 INFO: prepare_buildserver 并且没有报错就说明编译环境准备完毕了。

(3)编译打包

Tina Linux 里可以使用 make 命令进行编译,pack 命令打包。

tina@VirtualBox:~/tina-t113_s4$ make

当然,也可以在 make 命令后面增加参数,支持多线程编译、选择是否输出日志的选项,例如:

make -j128       # 以 128 线程编译 SDK
make V=s         # 开启全部日志输出
make V=s -j128   # 以 128 线程编译SDK并开启全部日志输出

编译完成之后,使用 pack 命令打包。

tina@VirtualBox:~/tina-t113_s4$ pack

最后,如果编译完成,则会输出以下内容,代表编译打包完成,可以在/home/tina/tina-t113_s4/out/t113_s4/sbc-t113s_nand/openwrt 目录下找到打包完成的固件。

----------image is at----------
27M     /home/tina/tina-t113_s4/out/t113_s4/vision/openwrt/t113_s4_linux_ sbc-t113s_nand_uart0.img
pack finish

buildroot 编译

 buildroot 的编译大致分为以下流程:

(1) ./build.sh config  # 配置编译模式和项目文件
(2) ./build.sh         # 编译
(3) ./build.sh pack    # 打包

(1) 配置编译模式,项目文件

使用 ./build.sh config 配置编译模式与项目文件。

tina@VirtualBox:~/tina-t113_s4$ ./build.sh config
========ACTION List: mk_config ;========
options :
All available platform:          # 选择 linux 平台,T113_S4 不支持安卓平台
   0. android
   1. linux
Choice [linux]:
All available linux_dev:         # 选择 buildroot
   0. bsp
   1. buildroot
   2. tinyos
   3. openwrt
Choice [openwrt]: 1
All available ic:                # 选择 t113_s4 芯片
0.	t113_s4
1.	t113i
Choice [t113]: 0
All available board:             # 选择 t113_s4 主板sbc-t113s_nand
0.	sbc-t113s_nand
1.	sbc-t113_nand
Choice [vision]: 0
All available flash:             # 选择储存介质,默认default
   0. default
   1. nor
Choice [default]: 0
(2)编译固件
使用 ./build.sh 编译固件。
tina@VirtualBox:~/tina-t113_s4$ ./build.sh
========ACTION List: build_linuxdev;========
options :
INFO: ----------------------------------------
INFO: build linuxdev ...
INFO: chip: sun8iw20p1 
INFO: platform: linux
INFO: kernel: linux-5.4
INFO: board: vision
...下略...
编译成功后会显示下列信息。
sun8iw20p1 compile Kernel successful

INFO: ----------------------------------------
INFO: build Tina OK.
INFO: ----------------------------------------
(3)打包固件 使用 ./build.sh pack 编译固件。可以在/home/tina/tina-t113_s4/out/t113_s4/ sbc-t113s_nand/buildroot/ 目录下找到打包完成的固件。
tina@VirtualBox:~/tina-t113_s4$ ./build.sh pack
...上略...
Dragon execute image.cfg SUCCESS !
----------image is at----------

71M     /home/tina/tina-t113_s4/out/t113_s4/vision/buildroot/t113_s4_linux_ sbc-t113s_nand_uart0.img

pack finish

进阶编译操作

单独重编某个应用

重编应用包应用场景一般为:只修改了应用,不想重新烧写固件,只需要安装应用安装包即可。请确保进行过一次固件的编译,确保SDK基础已经编译,才能单独重编应用包。

请确保在编译前已加载tina环境:

$ source build/envsetup.sh
$ lunch

(1)方法一

当在应用包的目录(包括其子目录)中,可执行

$ mm [-B]

    => B参数则先clean此应用临时文件再编译

示例: 假设软件包路径为:openwrt/package/feeds/utils/memtester/,则:

$ cd openwrt/package/feeds/utils/memtester/
$ mm -B

编译出应用安装包保存路径为:

out/IC型号/方案名/openwrt/extra/packages/arm_cortex-a7_neon/base/memtester_4.3.0-1_arm_cortex-a7_neon.ipk

对于t113_s4主板,便是

out/t113_s4/ sbc-t113s_nand/openwrt/extra/packages/arm_cortex-a7_neon/base/memtester_4.3.0-1_arm_cortex-a7_neon.ipk

(2)方法二

任意目录下执行

$ mmo [-B] 软件包名
=> B参数则先clean此应用临时文件再编译

示例:假设软件包路径为:openwrt/package/feeds/utils/memtester/,包名由PKG_NAME决定,即memtester:

$ mmo -B  memtester

其他快捷命令

 

命令

命令有效目录

作用

make

tina根目录

编译整个sdk

make menuconfig

tina根目录

启动软件包配置界面

make kernel_menuconfig

tina根目录

启动内核配置界面

mkernel

tina根目录

编译内核,调试DTS时有用

make clean

tina根目录

清除当前项目的所有编译文件,但是不清除配置

make distclean

tina根目录

清除当前项目的所有编译文件,同时清除配置,一般在更换平台时使用

croot

tina下任意目录

快速切换到tina根目录

cconfigs

tina下任意目录

快速切换到方案的bsp配置目录

cplat

tina下任意目录

快速切换到方案配置目录

ctarget

tina下任意目录

快速切换到openWrt软件包编译产物目录

crootfs

tina下任意目录

快速切换到openWrt rootfs目录

copsrc

tina下任意目录

快速切换到openWrt目录

cout

tina下任意目录

快速切换到方案的输出目录

cboot

tina下任意目录

快速切换到bootloader目录

cgrep

tina下任意目录

在c/c++/h文件中查找字符串

mm [-B]

软件包目录

编译软件包,-B指编译前先clean

mmo [-B] pkg

tina下任意目录

编译指定的软件包,-B指编译前先clean

pack

tina根目录

打包固件

m

tina下任意目录

make的快捷命令,编译整个sdk

p

tina下任意目录

pack的快捷命令,打包固件

 特别说明:执行make时,可以使用make -j32,这个指令的意思是使用32核并行编译,这个视编译主机情况而定。建议第一次编译时用 make -j1 V=s,这个指令的意思是单核并开启日志输出,一般在编译出现问题时排除问题所用。

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值