Tina系统配置
本章节将介绍 Tina Linux 系统中配置文件及其配置方法。
Kconfig 管理配置
Tina Linux采用 Kconfig 机制对 SDK 和内核进行配置。
Kconfig 是一种固定格式的配置文件。Linux 编译环境中的 menuconfig 程序可以识别这种格式的配置文件,并提取出有效信息生成可视化的配置菜单。
Tina Linux 包含两个 menuconfig,一个是对内核进行管理和配置的 kernel_menuconfig
,一个是对软件包进行管理和配置的 Tina menuconfig
。
kernel menuconfig
在 Tina Linux
的配置环境中配置好环境变量进入可编译状态后,输入
make kernel_menuconfig
即可进入 kernel menuconfig
配置菜单。
配置菜单源文件为:
tina/device/config/chips/v853/configs/vision/linux #v853和vison分别为芯片名和实际方案名,根据当前选择的编译方案决定
输出 cconfig
可快速转跳到该目录。
Tina menuconfig
在 Tina Linux
的配置环境中配置好环境变量进入可编译状态后,输入
make menuconfig
即可进入Tina menuconfig配置菜单。
配置菜单源文件为:
tina/openwrt/target/allwinner/v853-vision/defconfig #v853-vision为芯片名和实际方案名,根据当前选择的编译方案决定
输出 cdevice
可快速转跳到该目录。
Kconfig 配置方法
这里以 kernel menuconfig
作为例子,讲解如何使用、配置各选项,并以配置 Wi-Fi,蓝牙驱动为例说明 Kconfig 基础配置方法。
首先我们进入 kernel menuconfig
make kernel_menuconfig
这里就是 kernel menuconfig
的主目录。其具体的操作方法如下图所示。
我们再进入较为常用的 Device Driver
,看一下各个符号的含义。
其中,可以使用 空格键
选中各个选项,这里以 Multimedia support
选项为例:
也可以使用 Y
M
N
键来修改选项:
遇到被其他依赖选择的选项,可以查看 Help 页面检查被什么选项所依赖。
进入 Help 页面后,便可以查看这个选项的依赖情况。需要注意的是,有些选项是作为底层依赖无法随意取消,例如这里示例的 Hardware Monitoring support
选项。
Kconfig 所创建的界面还有一个功能,就是搜索功能,方便快速的找到目标选项。这里以搜索 LCD 屏幕 icn6202
驱动为例。
在 Kconfig 的界面中按 /
键,进入搜索页面。
Device Tree
Device Tree(设备树)是标准Linux下定义的一种硬件板级描述机制,通过.dts文件,对硬件进行配置。
.dts文件
Tina Linux下有两份.dts文件,分别位于内核和方案目录下。
内核dts文件路径:
tina/lichee/linux-4.9/arch/arm/boot/dts/
属于V853的的.dts文件包括:
sun8iw21p1.dtsi #V853主DTS配置文件
sun8iw21p1-clk.dtsi #V853时钟配置文件
sun8iw21p1-pinctrl.dtsi #V853引脚配置文件
方案dts文件路径:
tina/device/config/chips/v853/configs/vision/board.dts
方案dts优先级高于内核dts方案,遇到冲突时方案dts会覆盖内核dts中的配置。
方案开发时一般建议只修改方案目录下的dts文件 board.dts
,以免影响其它方案。
分区表
在全志平台中,通过 sys_partition.fex
文件配置分区。
分区配置文件路径:
tina/device/config/chips/v853/configs/vision/linux/sys_partition.fex
配置格式示例
以rootfs分区为例:
[partition]
name = rootfs
size = 20480
downloadfile = "rootfs.fex"
user_type = 0x8000
每个分区以 [partition] 标识,分区属性及其意义如下表。
Table: 分区属性
属性 | 含义 | 必选 | 备注 |
---|---|---|---|
name | 分区名 | Y | |
size | 分区大小 | Y | 单位:扇区(512B), |
downloadfile | 分区烧入的镜像文件 | N | 注2 |
verify | 量产后校验标识 | N | (默认)1:使能; 0:禁用 |
user_type | 分区属性 | N | 注4 |
keydata | 量产时是否擦除本分区 | N | 0x8000:使能; 其他无效 |
更多请参考《Tina Linux 存储开发指南》
env.cfg
env用于配置一些系统级参数,如启动等待时间、内核会用到的环境变量、系统加载状态、串口及打印等级、安全校验参数等。
芯片默认env配置文件路径:
device/config/chips/v853/configs/default/env.cfg
具体方案env配置文件路径:
device/config/chips/v853/configs/vision/linux/env-4.9.cfg
具体方案的配置文件优先级大于芯片默认配置文件。
sys_config.fex
sysconfig是全志平台定义的一种GPIO配置的方法。适用于 BOOT0 与 Uboot 环境
配置文件路径为:
tina/device/config/chips/v853/configs/vision/sys_config.fex
GPIO配置格式:
Port:端口+组内序号<功能分配><内部电阻状态><驱动能力><输出电平状态>
sys_config.fex 的配置优先级高于 u-boot 设备树的优先级,当配置冲突时会以 sys_config.fex 配置为准。