LV01-02-IMX6ULL-ALPHA开发板体验-04-基本功能测试

本文主要是体验正点原子I.MX6U-ALPHA开发板出厂系统——基本功能测试的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
Windows版本 windows11
Ubuntu版本 Ubuntu16.04的64位版本
VMware® Workstation 16 Pro 16.2.3 build-19376536
终端软件 MobaXterm(Professional Edition v23.0 Build 5042 (license))
Linux开发板 正点原子 i.MX6ULL Linux 阿尔法开发板
uboot NXP官方提供的uboot,NXP提供的版本为uboot-imx-rel_imx_4.1.15_2.1.0_ga(使用的uboot版本为U-Boot 2016.03)
linux内核 linux-4.15(NXP官方提供)
Win32DiskImager Win32DiskImager v1.0
点击查看本文参考资料
分类 网址 说明
官方网站 https://www.arm.com/ ARM官方网站,在这里我们可以找到Cotex-Mx以及ARMVx的一些文档
https://www.nxp.com.cn/ NXP官方网站
https://www.nxpic.org.cn/NXP 官方社区
https://u-boot.readthedocs.io/en/latest/u-boot官网
https://www.kernel.org/linux内核官网
点击查看相关文件下载
分类 网址 说明
NXP https://github.com/nxp-imx NXP imx开发资源GitHub组织,里边会有u-boot和linux内核的仓库
https://elixir.bootlin.com/linux/latest/source 在线阅读linux kernel源码
nxp-imx/linux-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga NXP linux内核仓库tags中的rel_imx_4.1.15_2.1.0_ga
nxp-imx/uboot-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga NXP u-boot仓库tags中的rel_imx_4.1.15_2.1.0_ga
I.MX6ULL i.MX 6ULL Applications Processors for Industrial Products I.MX6ULL 芯片手册(datasheet,可以在线查看)
i.MX 6ULL Applications ProcessorReference Manual I.MX6ULL 参考手册(下载后才能查看,需要登录NXP官网)

一、GPIO测试

1. LED灯

开发板启动时, DS0 作为心跳灯,用于指示系统的运行,开发板与 LED 对应的管脚关系如下:

开发板 GPIO03
ALPHA DS0

进入开发板系统,在串口终端执行指令控制对应的 IO 来控制对应的器件:开发板上启动后 DS0 默认是[heartbeat]模式,执行如下指令改变当前触发模式,改成[none]模式就可以通过指令来控制 LED 的亮灭了。

1
2
3
echo none > /sys/class/leds/sys-led/trigger # 改变 LED 的触发模式
echo 1 > /sys/class/leds/sys-led/brightness # 点亮 LED
echo 0 > /sys/class/leds/sys-led/brightness # 熄灭 LED

2. 蜂鸣器

开发板底板上有一个蜂鸣器,它对应的管脚为:

开发板 SNVS_TAMPER1
ALPHA BEEP

板的蜂鸣器用配置成了 gpio-leds 模式, 同理蜂鸣器也可以用这样的指令来控制,默认 BEEP 的触发模式为[none],相关的命令如下:

1
2
echo 1 > /sys/class/leds/beep/brightness # 鸣叫
echo 0 > /sys/class/leds/beep/brightness # 关闭

3. 按键测试

底板上按键对应的管脚关系如下:

开发板 GPIO18
ALPHA KEY0

进入开发板系统,在串口终端执行如下指令查看按键所对应的输入事件 :

1
lsinput

然后便可以看到有以下信息输出:

image-20230715170423681

可以从上图看出按键事件号为 event2,触摸屏占用了 event1,所以当触摸屏没有插上时按键事件号为不一定为 event2!执行下面的指令,进行按键测试

hexdump 或者 od -x 指令都是以十六进制的形式打印出输入事件信息。 由于文件系统没提供 hexpdump 指令,所以只测试 od 指令。

1
od -x /dev/input/event2

按下底板上的 KEY0,打印出按键输入事件的信息如下:

image-20230715170717110

按“Ctrl + c”可以终止上边的指令。

二、系统相关测试

1. 系统主频

1.1 查看系统主频

查看可用主频,使用如下指令:

1
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

可以看到有 198MHz、 396MHz、 528MHz 和 792MHz 的主频可用:

image-20230715171345705

然后我们输入 cpufreq-info 查看 cpu 运行的频率:

1
cpufreq-info

可以看到有如下信息:

image-20230715171456787

由于出厂内核配置了 CPU 主频为“Performance”(此模式不考虑耗电,最高性能) ,直接运行在最高主频上。所以看到 792MHz 处是 100%。

1.2 修改系统主频

是否可以无需重新编译 Linux 源码来修改 CPU 的主频呢,答案是可以的。输入下面的指令,申请用户空间控制 CPU 主频:

1
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

输入下面指令将 CPU 主频修改为 198MHz,注意不是任意主频都支持,必须是上面支持的那几种频率:

1
echo 198000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

再查看当前的 CPU 主频,修改成了低主频,明显的是 Qt 桌面滑动变卡了,说明此主频生效,相关命令如下:

1
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

可以看到有如下信息:

image-20230715171847389

2. 查看系统信息

2.1 查看内核版本号

我们可以使用下边的命令查看内核版本号:

1
uname -a
image-20230715172233536

2.2 查看系统主机名

1
cat /etc/hostname
image-20230715172258095

2.3 查看系统登录开机信息

1
cat /etc/issue
image-20230715172339688

2.4 查看 CPU 相关信息

1
cat /proc/cpuinfo
image-20230715172447315

2.5 查看内存相关信息

1
cat /proc/meminfo
image-20230715172534538

三、USB WiFi测试

1. USB WiFi说明

正点原子 ALPHA 开发板购买时赠送了一个 USB WIFI 模块,型号是USB WIFI RTL8188EUS/RTL8188CUS,该模块可直接插到电脑上联网测试好坏。插到电脑上的话,是这样的:

image-20230715212420550

在开发板上使用的话是使用 USB 2.0 HOST 接口, ALPHA 底板 4 个 USB 接口都可以。正点原子提供了一个 USB WIFI 测试脚本 alientek_usb_wifi_setup.sh用于参考。它默认放在开发板根文件系统的 /home/root/shell/wifi 目录下:

image-20230715212639828

一般 USB 设备都是可带电插拔的,RTL8188EUS/RTL8188CUS 模块也是支持热插拔的,可在系统起来后再插上USB WIFI 模块。 使用前可以插上12V电源,防止串口供电的电压不足。

2. 连接USB WiFi模块

我们按下图,将USB WiFi模块接入开发板:

image-20230715212738778

插上模块后,串口会有如下打印信息:

image-20230715213053307

然后我们查看一下 USB WIFI 的网卡信息,使用 ifconfig 指令即可查看相关信息,如下图示:

1
2
ifconfig wlan0 up # 若默认没打开 wlan0 则需要执行此项。
ifconfig

然后便会看到如下信息显示:

image-20230715213205492

其中wlan0 是 USB WIFI 的节点。

3. Station(上网)模式

这一部分测试是使用 USB WIFI 连接无线网络并测试网络是否能上网。

3.1 WiFi扫描

我们使用下边的命令扫描附近无线网络信息并打印相关信息:

1
wpa_cli -i wlan0 scan_result # 此指令需要启动进入后再插 WIFI 才生效,需要 wpa_supplicant 在运行。

然后可以看到如下信息打印:

image-20230715213638096

还可以用其他指令来扫描无线网络信息,例如:

1
iwlist wlan0 scan

该命令会显示更为详细的信息:

image-20230715213822964

3.2 连接WiFi

我们需要通过脚本来连接WiFi,可以执行如下命令:

1
source ./alientek_usb_wifi_setup.sh -m station -i 15-1-601 -p ****** -d wlan0

(1)-m station :设置成 station 模式

(2)-i 15-1-601 :无线网络名称(ssid)

(3)-p ****** :无线网络密码(psk)

(4)-d wlan0 : USB WIFI 节点

执行该脚本连接WiFi后会有如下打印提示:

image-20230715214352527

看到其中有这一行,就表示开发板已经成功获取到了ip地址:

image-20230715214506175

若未能正常获取 ip,等待 RTL871X: set group key camid:5 这句话出现后输入 udhcpc -iwlan0 指令重新获取 ip。若没有这句话,需要检查无线网络信息是否正确。我们可以看一下现在的ifconfig信息:

image-20230715214655849

3.3 是否可以上网?

我们来ping一下百度,测试一下是不是可以上网了:

1
ping www.baidu.com -I wlan0

然后若是可以上网,则可以看到有以下信息打印:

image-20230715214830306

4. SoftAP(热点)模式

这一部分是测试 USB WIFI 开启热点,与手机连接 。

4.1 开启AP热点

我们执行以下命令:

1
source ./alientek_usb_wifi_setup.sh -m softap -d wlan0

然后便会看到如下打印信息:

image-20230715215440531

4.2 手机连接AP热点

打开手机设置,可以看到 USB WIFI 发出的热点,名称为“alientek_softap”,密码默认为12345678。输入密码后点击连接,即可连接到无线热点。

image-20230715220046706

可以看到手机已经连接了热点,这样手机与开发板的 WIFI 构成了一个无线局域网。 我们也可以按照正点原子的文档配置一下静态ip:

image-20230715220543189

4.3 修改AP热点信息

如需要修改热点名称与热点密码,用户可以编辑 alientek_usb_wifi_setup.sh 脚本内容设置个人的热点信息。

image-20230715220845607

5. Bridge(桥接)模式

测试 USB WIFI 开启热点,并桥接到有线网络,让手机连接到热点并上网,这个我就没做了,离路由器太远了。

5.1 有线网络连接

将网线插上ALPHA 开发板的网口其中一个或者两个,并且确保有线网络能上网。用 ifconfig 查看有线网络 eth0 或者 eth1 能否获取 ip,并测试 eth0 是否能上网。下图是将网线插到开发板底板 ENET2 接口处,节点是 eth0,如果插到 ENET1 接口,节点是 eth1。 MINI 底板只有一个网口,节点是 eth0。

image-20230715221110671

5.2 开启桥接模式

我们执行以下命令开启USB WiFi的桥接模式:

1
source ./alientek_usb_wifi_setup.sh -m bridge -d wlan0 -e eth0

其中 -e eth0 :桥接的有线网络节点,根据实际情况桥接到对应的网络节点 eth0/eth1。 执行完毕后我们可能会看到如下信息:

image-20230715221231481

5.3 连接桥接模式下的热点

打开手机设置,可以看到 USB WIFI 发出的热点,名称为“alientek_bridge”,密码默认为12345678。输入密码后点击连接,即可连接到无线热点。并测试能否上网,打开手机的浏览器测试即可。

5.4 修改桥接模式下的热点信息

如需要修改热点名称与热点密码 ,可以修改 alientek_usb_wifi_setup.sh 脚本:

image-20230715221452613

四、网口测试

1. 网口说明

ALPHA 开发板有 eth0 和 eth1 两路百兆网卡。 eth0 对应底板上 ENET2, eth1 对应底板上的 ENET1如下图所示:

image-20230717191343771

2. 网口的使用

下边的测试我自己没做,直接照搬正点原子教程的,应该是开发板直连路由器进行上网测试。

2.1 查看网络信息

1
ifconfig
image-20230717191516785

插上网线到 ENET2 (对应eth0)处可以看到如下信息,系统自动获取了 ip, eth1 同理。

image-20230717191550618

2.2 获取ip

如果对应网卡没有自动获取到 IP,请使用下面的指令获取。“-i”是指定网卡名称,如不指定,会使用默认会使用 eth0。

1
udhcpc -i eth0
image-20230717191627534

2.3 网口的打开与关闭

1
2
ifconfig eth0 down # 关闭网口,网卡名字请根据实际情况修改, down 表示关闭
ifconfig eth0 up # 打开网口,网卡名字请根据实际情况修改, up 表示打开

2.4 测试联网效果

测试网口是否能上网,以访问 www.baidu.com 为例,执行如下命令,“-I”(大写的 i )代表指定网口。不加“-I”则使用默认网卡(默认网卡指的是有网络接入的一端,如果两个网口都有网络接入,则使用 eth0 作为默认网卡)。按“Ctrl+c”终止 ping 指令。百度的实际地址根据网络运营商不同,访问的地址会不同。

  • eth0 联网测试
1
ping www.baidu.com -I eth0
image-20230717191927248
  • eth1 联网测试
1
ping www.baidu.com -I eth1
image-20230717192002165
  • 与网关的联通测试

可以使用如下命令查看网关:

1
route
image-20230717192059876

由上可知网关为 192.168.1.1,根据路由器不同,网关可能不同。 ping 网关可测试内网与开发板连接是否正常。下面指令不加“-I”参数,使用默认网卡。

1
ping 192.168.1.1
image-20230717192131313

3. 网络通信速度测试

iperf3 是一个网络性能测试工具。 iperf 可以测试最大 TCP 和 UDP 带宽性能,具有多种参数和 UDP 特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。测试 Ubuntu 与开发板通信速度。如果ubuntu 未安装 iperf3,可以在 ubuntu 终端中执行以下命令安装:

1
sudo apt-get install iperf3

查看 ubuntu 的 ip 地址,备用。 (这里要确保开发板的 ip 地址要与 ubuntu 的 ip 地址是同一局域网内)。本次测试 ubuntu 作服务端,开发板作客户端,执行下面指令:

1
ifconfig
image-20230717192333475

然后在ubuntu执行下边的命令启动iperf3:

1
iperf3 -s # ubuntu 作为服务端
image-20230717192422314

然后开发板作为客户端连接 ubuntu 服务端,在开发板中执行以下命令:

1
iperf3 -c 192.168.1.84 -i 1 # -i 1 指通信周期,单位秒。
image-20230717192522320

ubuntu 服务端将会打印如下信息:

image-20230717192543245

反过来 ubuntu 作客户端,开发板作服务端是一样的步骤。