10. fire-config工具简介

注意:该工具专用于野火新发布的Debian系统镜像,不适合用于野火旧版本镜像和其他任何的Linux系统上,望知悉! (新版Debian镜像的下载和烧录方法详见《SD卡烧录Debian镜像》章节)。

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

10.1. 使用方法

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

1
2
3
sudo fire-config

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

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

fire-config工具

串口终端界面

fire-config工具

ssh远程终端界面

10.2. 菜单选择和移动

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

10.3. fire-config机制

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

10.4. Device Tree Overlays

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

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

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

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

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

设备树示意图

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

10.5. fire-config功能项

10.5.1. IIC_1

使能或者禁止IIC 1接口

10.5.2. IIC_2

使能或者禁止IIC 2接口

10.5.3. 74HC595

使能或者禁止74HC595位移缓存器接口

10.5.4. LED

使能或者禁止LED灯

10.5.5. KEY

使能或者禁止独立按键

10.5.6. 18b20

使能或者禁止18b20温度传感器

10.5.7. HDMI

使能或者禁止HDMI显示器

10.5.8. CAMERA

使能或者禁止摄像头模块

10.5.9. SOUND

使能或者禁止声卡模块

10.5.10. LCD5

使能或者禁止5寸触摸屏

10.5.11. LCD4.3

使能或者禁止4.3寸触摸屏

10.5.12. 485r1

使能或者禁止第一路485串口

10.5.13. 485r2

使能或者禁止第二路485串口

10.5.14. ADC1

使能或者禁止第一路ADC采样

10.5.15. CAN1

使能或者禁止第一路CAN通信

10.5.16. CAN2

使能或者禁止第二路CAN通信

10.5.17. dht11

使能或者禁止dht11温湿度传感器

10.5.18. ecspi3

使能或者禁止spi通信

10.5.19. uart3

使能或者禁止第三路串口通信

10.5.20. wifi

使能wifi接口。wifi与sd卡共用一个sdio接口,两者不能同时使用

10.5.21. wifi_scan

扫描并显示当前存在的wifi网络

10.5.22. wifi_setting

设置目标wifi的账号与密码

10.5.23. SSH_connect

使能和禁止远程登录会话

10.5.24. flasher

使能或者禁止SD卡刷机,用于将SD卡的系统固件烧录到eMMC或者nandflash

10.5.25. Expand Filesystem

扩展SD卡容量,解决SD卡镜像烧录完毕后,出现储存容量大幅减小的问题

10.6. fire-config使能硬件模块

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

如下图:

使能LED

2、系统提示: “Would you like the led to be enabled?”,选择<Yes>项。

如下图:

使能LED

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

如下图:

使能LED

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

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

10.7. fire-config刷机

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

fire-config刷机操作是当开发板从制作好的SD卡镜像启动后,可以这样方式将镜像重新刷至eMMC或者nandflash, 因为开发板出厂在eMMC或者nandflash本身已经有镜像可运行,所以此步骤可以先跳过或者按自己需求做。

1、开发板正常启动后,在串口终端登录debian系统。

1
2
账户:debian
密码:temppwd

系统正常登录界面如下所示:

登录debian系统

2、执行sudo fire-config,选择“flasher”项。

如下图所示:

fire-config刷机

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

如下图所示:

fire-config刷机

3、系统提示: “The flasher is enabled”,选择<OK>。

如下图所示:

fire-config刷机

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

如下图所示:

fire-config刷机

5、系统提示:“Would you like to reboot now?”,选择<Yes>。

如下图所示:

fire-config刷机

6、系统自动重启。

如下图所示:

fire-config刷机

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

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

fire-config刷机

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

如下图所示

fire-config刷机

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

注意:使用读卡器将SD卡接入到电脑,打开sd卡boot分区,修改该分区的uEnv.txt文件,修改内容见下图,使能自动烧录之后,将不需要再重复配置,可以持续给内部flash烧录,非常适合给产线的工人使用,专门为产线工人量产而生。 对于学习者也可以通过该方式关闭自动烧录。

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

10.8. fire-config连接wifi

10.8.1. wifi配置前提

  • wifi与sd卡共用同一个sdio接口,进行配置wifi之前,要确认开发板是从eMMC或者nandflash启动,不能在从SD卡启动时用wifi。

  • 修改两个跳线帽①与②为下图中连接方式,确保wifi模块连接在该sdio接口上。(第一款底板只需要盖①)

fire-config刷机

10.8.2. wifi连接步骤

1、在终端执行sudo fire-config命令,选择“wifi”项。 如下图:

fire-config配置wifi

2、系统提示:“Would you like the wifi interface to be enabled?”,选择<yes>项,表示使能wifi模块。

fire-config配置wifi

3、系统提示:“The wifi interface is enabled”,选择<ok>项返回主菜单。

fire-config配置wifi

4、在主菜单选择<Finish>项,系统会提示重启: “Would you like to reboot now?”,选择<Yes>项,等待系统重启。 此时wifi模块驱动和wifi自动连接服务已经配置完成。

fire-config配置wifi

5、系统重启后,继续在系统中执行sudo fire-config命令,选择“wifi_scan”项, 系统会扫描搜索所有周围的无线网络,并在界面显示wifi的名字和信号强弱.如果暂时没有识别到wifi,多尝试几次扫描。 如下图:

fire-config配置wifi

6、确保系统搜索到目标wifi后,选择<ok>项返回主菜单,选择“wifi_setting”项。 如下图:

fire-config配置wifi

7、输入目标wifi的账号,输入完成后选择<oK>项。

fire-config配置wifi

8、继续输入目标wifi的密码,输入完成后选择<ok>项返回主菜单。

fire-config配置wifi

9、选择主菜单<Finsh>项,退出fire-config工具。 执行ifconfig命令,可以看到开发板wifi的ip地址已经分配成功。

fire-config配置wifi

10.8.3. wifi常用操作命令

  • sudo ifconfig wlan0 down 关闭wifi使用

  • sudo ifconfig wlan0 up 启动wifi使用

  • wpa_cli -i wlan0 status 查看当前连接状态

  • wpa_cli -i wlan0 list_networks 列出输入过的网络

  • wpa_cli -i wlan0 disconnect AAAA 断开当前连接AAAA名wifi(CURRENT)

  • wpa_cli -i wlan0 resconnect AAAA 重新连接AAAA或其他

  • wpa_cli -i wlan0 select_network BBBB 切换连接list_networks里面的BBBB wifi

  • wpa_cli -i wlan0 remove_network AAAA 删除不用的AAAA(删除前断开)

10.9. fire-config修改液晶参数

使用fire-config配置时钟时,需要参考对应屏幕的数据手册,在手册中,通常可以找到和图片类似的表格。

屏幕参数

在终端执行sudo fire-config命令,选择“LCD Config”项,如下图:

lcd_config

注意:如果没有出现上图中的选项时,说明的fire-config工具out了,请执以下命令apt update,apt install fire-config, 来更新工具。

按下回车之后,会出现下图所示的界面,

lcd_timing_config

有以下十个选项,这些选项均按照屏幕手册进行命名,因此,可以通过手册提供的典型值进行设置:

  • clock-frequency:像素时钟的频率,以Hz为单位,比如像素时钟为27MHz,则输入27000000;

  • Horizontal display area:对应屏幕的长度;

  • Vertical display area:对应屏幕的宽度;

  • HSD front porch:表示一行的有效数据结束到下一个水平同步信号开始之间的CLK 的个数;

  • HSD back porch:表示从水平同步信号开始到一行的有效数据开始之间的CLK的个数;

  • HSD pulse width:表示水平同步信号的宽度, 单位为同步时钟 CLK 的个数;

  • VSD back porch:表示在一帧图像开始时,垂直同步信号以后的无效的行数;

  • VSD front porch:表示在一帧图像结束后,垂直同步信号以前的无效的行数;

  • VSD pulse width:表示垂直同步信号的宽度;

  • Display Format:支持RGB565和RGB888,输入16,则选择RGB565;输入24,则选择RGB888;