跳转至

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 的主目录。其具体的操作方法如下图所示。

image-20220711114825681

我们再进入较为常用的 Device Driver ,看一下各个符号的含义。

image-20220711115616754

其中,可以使用 空格键 选中各个选项,这里以 Multimedia support 选项为例:

image-20220711120726186

也可以使用 Y M N 键来修改选项:

image-20220711120802522

遇到被其他依赖选择的选项,可以查看 Help 页面检查被什么选项所依赖。

image-20220711125703598

进入 Help 页面后,便可以查看这个选项的依赖情况。需要注意的是,有些选项是作为底层依赖无法随意取消,例如这里示例的 Hardware Monitoring support 选项。

image-20220711125333193

Kconfig 所创建的界面还有一个功能,就是搜索功能,方便快速的找到目标选项。这里以搜索 LCD 屏幕 icn6202 驱动为例。

在 Kconfig 的界面中按 / 键,进入搜索页面。

image-20220711130647390

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 配置为准。