9. fire-config工具简介

注意:该工具专用于野火新发布的Debian系统镜像,不适合用于野火旧版本镜像和其他任何的Linux系统上,望知悉!

fire-config是野火IMX-6ULL开发板自带的一个系统配置工具, 通过串口终端或远程终端可以方便地使用它来进行系统功能的使能或禁止。

9.1. 使用方法

在登录系统以后,如果要使用fire-config工具,只需要运行以下命令

1
2
3
sudo fire-config

注意:由于该工具会改变一系列不属于当前用户的文件,sudo是必须要加的。

执行指令后,在终端的显示界面如下:

fire-config工具

串口终端界面

fire-config工具

ssh远程终端界面

9.2. 菜单选择和移动

在该菜单中,使用up和down箭头键可以在不同的选项中切换,被选中的一项将会高亮显示, 使用right箭头键将跳出“选项”,并跳转到<Select>和<Finish>按钮。按下left将使您返回选项。 <Select>按钮表示该项被选中,<Finish>按钮表示已完成全部配置项。

9.3. fire-config机制

一般而言,fire-config旨在提供一些常见的系统功能配置服务,在进行配置过程中, 这可能会导致/boot/uEnv.txt或者是其他各种标准的linux配置文件被自动更改了, 某些选项需要重启才能生效,如果您修改了其中一个,fire-config 会在<Finish> 按钮被选择时,询问您是否要立即重启,如果您希望配置马上生效,确定重启系统即可。

9.4. Device Tree Overlays

fire-config工具集成了Device Tree Overlays机制,用来管理一些硬件资源的分配和模块的加载, 从而缓解多个驱动程序争用系统资源的问题。

在传统开发模式中,这个机制通常是由设备树来完成的:在开发之前根据项目需求, 提前确定系统中所有用到的硬件设备。在设备树中把所有的外围设备信息以设备树特定的语法进行描述, 在设备树被编译为dtb文件后,被linux内核加载使用。

可以看到,在传统开发过程,一旦硬件资源发生变化,就要重新修改、编译、下载设备树。比较极端的情况是: 当项目中要支持多种的硬件模块,而不同模块间往往会共用某些系统资源(如IO引脚)。 一旦系统要兼容模块任意组合使用,那么随着模块数量增加,需要编译的设备树数量将爆炸增长。

因此,使用传统设备树是不利于项目的维护和扩展的。内核为了解决这个提出了一套新的解决方案, 那就是Device Tree Overlays,中文上可理解为“设备树插件”。 它的核心原理是,通过扩展传统的设备树语法,使得各个硬件模块的信息可以独立地用新的设备树语法来描述。 这样一来,传统的主设备树中只需要保留最基础的硬件信息(主要是cpu和内存),其他模块单独编译成“设备树插件”。 在系统实际使用时,根据实际应用情景,需要用到哪些硬件模块就把对应的设备树插件加入到主设备树即可。

如下为实际内存中设备树的示意图:

设备树示意图

“设备树插件”无疑提高了系统的可维护性和减少了大量的重复工作,目前, 我们已经把常见的硬件模块都编译成了“设备树插件”,比如LCD、HDMI、WiFi等等。 用户可以通过fire-config工具轻松地实现对硬件模块的便捷管理。

9.5. fire-config功能项

9.5.1. Change User Password

修改用户密码

9.5.2. Network

配置网络相关的选项,选择回车后界面如下

图片未找到

9.5.3. Boot

配置启动相关的选项,选择回车后界面如下

图片未找到

9.5.4. Localisation

配置系统使用的语言,选择回车后界面如下(第一次配置系统使用的语言时开发板需要联网)

图片未找到

9.5.5. Bus

配置系统使用的总线,选择回车后界面如下

图片未找到

9.5.6. Device

配置外围设备,选择回车后界面如下

图片未找到

9.5.7. Advanced

配置高级选项,选择回车后界面如下

图片未找到

9.5.8. shell

配置串口终端参数与SSH,选择回车后界面如下

图片未找到

9.5.9. help&Update

关于fire-config工具与更新,选择回车后界面如下

图片未找到

9.6. fire-config使能外围设备

1、开发板正常启动后,执行sudo fire-config,这里以“LED”外设为例,选择“Devise”项。 (其他硬件模块的使能方法与“LED”类似)

如下图:

使能LED

选择“LED”并再次回车

使能LED

2、系统提示: “What state do you want to configure the device led to?”,选择<Enable>项。

如下图:

使能LED

3、系统提示: “The led interface is enabled”,选择<OK>项,返回主界面。

如下图:

使能LED

4、在初始界面,选择<Finish>项。系统默认使能“LED”外设,因此不会提示重启。

注意:如果系统的外设本来已经是使能状态,那么此时会直接退出fire-config工具; 如果系统的外设原本是禁止状态,在设置为使能状态后,系统会提示重启:“Would you like to reboot now?”, 选择<Yes>项,等系统重启后,相关外设已经被使能

9.7. fire-config使能总线设备

1、开发板正常启动后,执行sudo fire-config,这里以“UART”总线为例,选择“BUS”项。 (其他总线设备使能方法与“LED”类似)

使能串口

再次选择“UART”并选择回车

使能串口

2、在当前的fire-config版本中,UART只有一个UART3选项,如下图

使能串口

3、系统提示:“What state do you want to configure the device uart3 to?”,选择<Enable>项。

如下图:

使能串口

4、系统提示:“The uart3 interface is enabled”,如下图

使能串口

5、在初始界面,选择<Finish>项。 系统提示:“Some config will take effect after reboot,would you like to reboot now?” 选择<Yes>选项

如下图:

使能串口

6、重启之后在/dev目录下会增加uart3相关的设备,可使用 ls /dev/ttymxc* 命令查看,如下所示

root@npi:~# ls /dev/ttymxc*
/dev/ttymxc0  /dev/ttymxc1  /dev/ttymxc2
root@npi:~#

9.8. fire-config刷机

注意: 刷机不建议用ssh远程登录来操作,避免开发板重启后, ssh断开连接而不能及时看到相关的刷机信息提示

1、执行sudo fire-config,选择“Advanced”项。

如下图所示:

fire-config刷机

2、在“Advanced”,能够选择从sd烧写镜像到emmc或nand中,也可以选择从emmc或nand烧写系统到sd卡中, 从sd烧写镜像到emmc或nand可选择单次烧录,也可选择持续烧录模式方便量产使用,普通用户选择单次烧录即可。 此处我们选择从sd单次烧录到emmc或nand选项。

如下图所示:

fire-config刷机

3、系统提示: “Would you like the flasher to be enabled”,选择<Enable>。

如下图所示:

fire-config刷机

4、系统提示:“The flasher is enabled”,选择<Ok>.

如下图所示:

fire-config刷机

5、返回fire-config初始界面,选择<Finish>。

如下图所示:

fire-config刷机

6、在初始界面,选择<Finish>项。 系统提示:“Some config will take effect after reboot,would you like to reboot now?” 选择<Yes>选项

如下图所示:

fire-config刷机

7、系统自动重启,重启后的系统将自动进行eMMC或者nandflash刷机。

如下图所示(以eMMC刷机为例):

fire-config刷机

8、耐心等待刷机结束,刷机过程大约持续2分30秒左右。刷机完成后,控制台会重新进入串口登录页面, 此时观察开发板的LED灯,如果LED在持续闪烁,说明刷机成功。

如下图所示

fire-config刷机

9、无论是eMMC,还是nandflash,刷机成功后,调整拨码开关为相应启动方式,重新上电启动系统即可。

注意:如果是选择持续烧录模式,想要停止持续烧录,使用读卡器将SD卡接入到电脑,打开sd卡boot分区, 修改该分区的uEnv.txt文件,修改内容见下图,

SD卡boot分区 fire-config使能自动烧录