本系列为使用野火IMX6ULL开发的学习笔记,使用的开发板为如下:
具有的硬件资源有如下:
文章目录
- 一、环境搭建
- Win11安装WSL
- 安装串口驱动
- 安装串口工具
- 安装Ubuntu与windows文件互传
- 二、镜像烧录
- 修改串口终端登录前信息
- 三、fire-config工具配置
- EMMC/NAND FLASH刷机
- 四、WIFI连接
一、环境搭建
Win11安装WSL
https://blog.csdn.net/weixin_44301630/article/details/122390018
安装虚拟机也可以,需要安装一个Ubuntu系统。直接在微软商城中搜索ubuntu20.04
。
安装串口驱动
-
CH340(波特率115200)
https://www.wch.cn/products/CH340.html
安装串口工具
在 Windows 下有很多种终端工具,例如 MobaXterm、secureCRT、xShell、Putty 等,但是最推荐的还是MobaXterm:
- MobaXterm:https://mobaxterm.mobatek.net/download.html
安装Ubuntu与windows文件互传
-
FileZilla下载地址:https://www.filezilla.cn/download
-
开启Ubuntu下的FTP服务:
sudo apt-get install vsftpd
-
等待软件自动安装,安装后打开配置文件:
sudo vi /etc/vsftpd.conf
-
打开 vsftpd.conf 文件以后找到如下两行,输入i进行编辑,按下Esc,输入“:和wq”保存:
local_enable=YES write_enable=YES
确保上面两行不能注释,把他打开:
-
使用如下命令重启FTP服务:
sudo /etc/init.d/vsftpd restart
-
使用FileZillla连接到Ubuntu的FTP服务器:
二、镜像烧录
- 准备一张Micro SD卡,容量需要2GB以上。
- 下载
Etcher
软件,用于烧录镜像至 SD 卡,下载地址:https://www.balena.io/etcher ,根据自 己的电脑系统下载对应版本即可。 - 下载野火最新的 Debian 镜像:https://pan.baidu.com/s/1pqVHVIdY97VApz-rVVa8pQ 提取码:uge1
imx6ull-lubancat-carp-console-armhf-2022-02-10.img.xz
: Debian的纯净版固件,没有带桌面环境和野火的QT App。
imx6ull-lubancat-carp-qt-armhf-2022-02-10.img.xz
: 具有QT App功能的Debian固件,系统启动后会进入QT App的界面。
- 把开发板控制启动模式的 BOOT 拨码开关设置成 SD 卡启动模式,即 2-5-8 档位至 ON 档。
- 给开发板接入烧录好的 SD 卡,启动运行。
注意:开发板插入烧录好 Debian 镜像的 SD 卡,调整拨码开关为 SD 卡启动方式,然后注意使用 SD 卡时开发板右下角的 J2 竖排针不要盖有跳帽需断开(此为 WIFI 模块供电,核心板只引出一路 SDIO,SD 卡和 WIFI 不能同时用);开发板第一次从 SD 卡启动时,系统会自动进行 SD 卡扩容,以保证充分利用 SD 卡存储空 间。扩容完毕后,系统自动重启生效。
插入SD卡,烧录完后即可登录:
普通用户(带 sudo 权限):
账户: debian
密码: temppwd
ROOT用户:
账户: root
密码: root
这样即可登录。可以使用passwd
来进行对密码的修改。
使用 SSH 终端登录时,可以通过主机名和 IP 连接板子:
主机名: npi
IP 不固定,默认由路由动态分配,可先通过串口终端连接,使用 ifconfig 命令查看具体 IP
若要修改主机名,修改 /etc/hostname 文件中的内容即可。
修改串口终端登录前信息
希望登录串口终端时不显示账号密码信息,或者显示我们需要的信息:
sudo vim /etc/issue
,如果没有vim工具,可以使用nano。
三、fire-config工具配置
sudo fire-config
可以进行使用,只可以用在野火最新的debian系统上。(这个功能类似于Nuttx操作系统下的那个菜单栏,把很多通讯设备等都注册为可在菜单上选中并且执行的设备)。
fire-config工具集成了Device Tree Overlays
机制,用来管理一些硬件资源的分配和模块的加载, 从而缓解多个驱动程序争用系统资源的问题。
在传统开发模式中,这个机制通常是由设备树来完成的:在开发之前根据项目需求, 提前确定系统中所有用到的硬件设备。在设备树中把所有的外围设备信息以设备树特定的语法进行描述, 在设备树被编译为dtb
文件后,被linux内核加载使用。
可以看到,在传统开发过程,一旦硬件资源发生变化,就要重新修改、编译、下载设备树。比较极端的情况是: 当项目中要支持多种的硬件模块,而不同模块间往往会共用某些系统资源(如IO引脚)。 一旦系统要兼容模块任意组合使用,那么随着模块数量增加,需要编译的设备树数量将爆炸增长。
因此,使用传统设备树是不利于项目的维护和扩展的。内核为了解决这个提出了一套新的解决方案, 那就是Device Tree Overlays
,中文上可理解为“设备树插件”。 它的核心原理是,通过扩展传统的设备树语法,使得各个硬件模块的信息可以独立地用新的设备树语法来描述。 这样一来,传统的主设备树中只需要保留最基础的硬件信息(主要是cpu和内存),其他模块单独编译成“设备树插件”。 在系统实际使用时,根据实际应用情景,需要用到哪些硬件模块就把对应的设备树插件加入到主设备树即可。
EMMC/NAND FLASH刷机
之后重启开发板即可。
等待一段时间即可。登录进去后,需要关闭SD卡刷机选项:
之后执行sudo poweroff
关机。之后更改开发板的启动方式为EMMC启动,拨码到2457位,然后拆卸SD卡,然后长按ON/OFF
键进行开机。
四、WIFI连接
由于SD卡与WIFI共用同一个sdio接口,所以我们需要把跳帽挪动到原来的地方,给WiFi模块供电:
使用fire-config工具来进行配置WiFi:
可以使用命令sudo echo "1 4 1 7" > /proc/sys/kernel/printk
来屏蔽掉一些没有用的打印。之后打开WiFi:
再次重启:
重启后可以看到WiFi设备被打开了:
之后让其识别周围的WiFi:
之后进入查找:
如果遇到查找到的WiFi较少,可以将天线的位置进行调整,不要压着天线。
signal
代表WiFi强度,越靠前数字越小代表信号强度越高。之后进行WiFi连接:
之后输入对应的密码:
之后再次进行重启,会自动连接上WiFi:
使用命令ifconfig
,可以看到我们连接的WiFi信息:
之后ping一下百度的网址:
说明成功联网。