Luckfox Lyra Zero W,一块基于RK3506B的Linux开发板,3×Cortex-A7+1×Cortex-M0,512MB DDR3,还带了Wi-Fi 6和蓝牙。板子非常迷你,但接口该有的都有,MIPI DSI、USB OTG、USB Host和40Pin扩展排针一个不少。我平时做硬件比较多,这次准备从开箱、串口登录、Wi-Fi连接和iperf3测速,到DDR读写、SSH远程操作,最后上热成像和功耗表,跑一轮满载看看这块小板的温升和实际功耗到底什么水平,顺带把官方SDK编译烧录也走一遍。
1、板子正面如下,从左到右分别是USBC电源/OTG接口,LED指示灯,USBC HOST接口,RST按键和BOOT按键,IPEX天线接口与板载陶瓷天线,1.25mm的USB HOST接口;
第二排分别是MIPI DSI接口,256M DDR3L,RK3506B芯片,WB800D 2.4G WIFI6模块个MicroSD卡座;
最下面是40P排针,还用不同颜***分了信号,电源;
2、板子背面有一颗CH334F HUB扩展芯片,EA3036C三路DCDC芯片,一颗华邦的2Gbit NAND FLASH,以及若干的阻容;这边板子默认没有配螺柱,直接放不平,贴上一个橡胶垫脚,完美;
3、开发板的规格参数如下:

4、板子做工非常小巧,但是内部一点也不将就,开发板可以通过板载的SWITCH芯片进行板载天线与外置天线的切换,这点用心了;
5、通过查看官方的引脚定义,可以看到一共有28个可用GPIO,电源域都是3.3V;
1、将开发板的3.3V、UART0_TX、UART0_RX、GND与USB-UART小板进行连接;
2、连接到电脑USB端口后,在电脑设备管理器可以看到对应的COM端口,串口工具上面设置好1.5M的波特率后,给开发板通电;可以看到单板正常启动,用户LED在间歇闪烁;
3、这边通过log看到开发板上的DDR3是750MHz,16bit,512MB容量;因为单板没有MicroSD卡,引导失败后直接从SPI NAND FLASH处开始启动,SPL阶段大概耗时73ms;
4、等系统起来,登录提示符出来,输入默认账号root、密码luckfox,就正式进系统了。
系统是Buildroot 2024.02,内核Linux 6.1.99,根文件系统是UBIFS,挂载在SPI NAND上,总容量约193MB,剩余114.9MB。内存方面系统识别到468MB,空闲392MB,另外看了一眼温度,启动后默认状态下,温度是46.98℃;
1、手头没有外置天线,可以先用指令切换成板载天线测试;通过原理图可以看到开发板上使用了一颗AW13412信号开关,V1=0,RF1=ON;V1=1,RF2=ON;
2、这边只要将对应的WIFI_ANT_CTRL 即GPIO1_C7,通过RK官方的引脚编号公式可以计算得到为55;将其拉高就是切换成RF2通路,即板载天线;
3、直接使用wifi-connect.sh "SSID" "PASSWORD"命令进行WIFI连接,脚本提示Successfully initialized wpa_supplicant,但wpa_cli status 显示wpa_state=SCANNING,ifconfig wlan0 无 IP,/proc/net/wireless信号强度-100 dBm,判定未连上。
4、后面发现我的WiFi信号是设置默认隐藏的,也是因为这个扫描不到,直接去修改一下conf配置文件,添加一个scan_ssid=1属性就可以探测隐藏网络;说明官方脚本没有为隐藏SSID做适配,这在工业现场很常见——设备往往连的是看不见的SSID,需要手动补配置
cat > /etc/wpa_supplicant.conf << 'EOF'
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1
network={
ssid="SSID"
psk="PASSWORD"
key_mgmt=WPA-PSK
scan_ssid=1
}
EOF
5、然后重新执行wifi-connect.sh "SSID" "PASSWORD"命令,wpa_supplicant 启动后状态转为COMPLETED,自动获取IP 192.168.0.4。wpa_cli status 显示连接在2.4GHz(freq=2417)、WPA2-PSK/CCMP,wifi_generation=4 表明实际协商为802.11n。模组支持Wi-Fi 6,但受限于路由器,本次测速实际跑在11n模式。
6、最后ping一下路由器的网关,这边可以看到链路稳定;设备距离路由器大概50cm,通过指令看了一下信号强度,-18dBm,信号非常好;
7、实际测试中发现上述方式配置只要设备重启,就需要重新配置,太过于麻烦,这边改一下配置,让单板每次上电都可以自动连接WIFI;
root@luckfox:~# mount -o remount,rw /
root@luckfox:~# cat > /etc/wpa_supplicant.conf << 'EOF'
}
EOF> ctrl_interface=/var/run/wpa_supplicant
> ap_scan=1
> update_config=1
>
> network={
> ssid="SSID"
> psk="PASSWORD"
> key_mgmt=WPA-PSK
> scan_ssid=1
> }
> EOF
root@luckfox:~#
root@luckfox:~#
root@luckfox:~# cat > /etc/init.d/S99wlan0 << 'EOF'
PATH="/sys/class/gpio/gpio${GPI> #!/bin/sh
切换板载>
-d "$GPI> GPIO_NUM=55
/class/gpio/export
> GPIO_PATH="/sys/class/gpio/gpio${GPIO_NUM}"
/value"
# 等>
节点出现(> case "$1" in
$(seq 1 30); do> start)
net/wlan0 ] && br> # 切换板载天线
启动 wpa_supp> [ ! -d "$GPIO_PATH" ] && echo "$GPIO_NUM" > /sys/class/gpio/export
icant.conf
# > echo out > "${GPIO_PATH}/direction"
wpa_cli -i wlan0 stat> echo 1 > "${GPIO_PATH}/value"
# 主动触>
pa_cli -i wlan0> # 等 wlan0 设备节点出现(驱动就绪)
a_cli -i wlan0 sta> for i in $(seq 1 30); do
ETED" && break
s> [ -d /sys/class/net/wlan0 ] && break
;;
esac
EOF> sleep 1
> done
> sleep 1
>
> # 启动 wpa_supplicant
> killall -9 wpa_supplicant 2>/dev/null
> wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
>
> # 等控制接口就绪
> for i in $(seq 1 10); do
> wpa_cli -i wlan0 status >/dev/null 2>&1 && break
> sleep 1
> done
>
> # 主动触发连接
> wpa_cli -i wlan0 reconfigure
>
> # 等 COMPLETED
> for i in $(seq 1 20); do
break wpa_cli -i wlan0 status 2>/dev/null | grep -q "wpa_state=COMPLETED" &&
> sleep 1
> done
>
> # 拿 IP
> udhcpc -i wlan0 -b -q -n
> ;;
> esac
> EOF
root@luckfox:~#
root@luckfox:~#
root@luckfox:~# chmod +x /etc/init.d/S99wlan0
root@luckfox:~#
root@luckfox:~#
root@luckfox:~# ls -l /etc/init.d/S99wlan0
-rwxr-xr-x 1 root root 833 Jan 1 00:17 /etc/init.d/S99wlan0
root@luckfox:~#
root@luckfox:~# sync
root@luckfox:~#
root@luckfox:~# reboot
8、重启后,单板就可以直接获取到指定的路由器,并获取到IP;
1、先通过which iperf3测试一下单板是否存在iperf组件,然后测试一下ping电脑主机网络是否正常。
2、下载一个iperf 3.22进行测试,主机端执行 iperf3.exe -s进入监听状态,设备端执行iperf3 -c 192.168.0.3 -t 30进行30秒的测试;
数据如下:上行:板子→Windows,平均37.8Mbps,重传11次。下行:Windows→板子,平均37.7Mbps,收发一致(135MBytes)。双向基本对称,稳定在37~38Mbps,受限于802.11n。
3、设备端执行iperf3 -c 192.168.0.3 -t 30 -R进行30秒的反向测试;下行(反向模式 -R,Windows→板子):平均48.8Mbps,无重传,收发一致(174MBytes)。
4、上行平均37.8Mbps,出现11次重传;下行(反向)平均48.8Mbps,无重传。上行速率明显低于下行且伴随重传,初步判断板载陶瓷天线的发射效率偏低,叠加2.4GHz频段干扰和可能的蓝牙共存,导致发射侧重传增加。受限于未做外接天线对比,暂不能完全归因,后续有条件可补测。
1、先通过几个常规指令判断一下memtester是否存在,另外看到devfreq不存在,主要是因为这个固件的DDR频率是固定的,没有支持动态调频;
2、先做一轮32M的测试,首轮32MB测试全部17项PASS,0失败。
3、第二轮128M的测试,全部17项PASS,0失败。
4、最初直接用dd测内存写速度,发现BusyBox的精简版dd只输出records in/out,不打印耗时和速率,无法直接读速度。改用time包一层,通过real时间换算,才拿到实际带宽数据。
内存带宽估算:写200MB耗时0.897s,约223MB/s;读200MB耗时0.412s,约485MB/s。读明显快于写,符合DDR读写的固有特性,也受tmpfs缓存命中影响。DDR3-750MHz/16bit 理论带宽约1.5GB/s,应用层实测在此量级下属正常水平。
1、原先板子需要使用串口连接,实际操作会有一定限制,前面讲板子连接上WIFI之后,就可以设置一下,使用SSH登录控制终端;先通过ps | grep sshd看一下是否存在对应的进程;
2、之后使用pc端软件MobaXterm,直接使用设备端的IP以及账户:root,密码:luckfox就可以登录操控设备了,这也算是多了一个控制通道;SSH更实用的是支持scp文件传输——之前往板子里放文件要么拔SD卡、要么用读卡器在PC和板子之间倒腾,现在直接一条命令就能传;
1、这边顺手拿了一张4GB SD卡测试一下存储,发现一个比较奇怪的现象,卡只要一插上,就会重启,然后重启后可以正常访问数据;然后使用自动挂载的分区进行速度的测试;
这边测试写入(dd耗时2.200s+sync落盘4.026s):
dd写进缓存:100÷2.2≈45.5MB/s
sync刷到卡:100÷4.026≈24.8MB/s
真实写入速度接近24.8MB/s
读取(清缓存后,4.611s): 100÷4.611≈21.7MB/s
读和写基本对称,合理
2、关于这边“测试中发现一个异常:运行中插入Micro SD卡会导致设备瞬间重启,拔出则不会。查阅 Luckfox官方论坛确认,Lyra 系列未对SD卡热插拔做适配,SD卡检测和电源控制引脚仅配置为固定状态。初步判断该重启与热插拔事件处理不当有关,可能叠加了插入瞬间的供电波动。
3、后面使用SDK编译,还是发现会重启,等待排查中;
1、计划用stress-ng让三核A7满载,但测试发现固件未预装该工具;直接改用循环脚本for i in 1 2 3; do while true; do :; done&done 构造满载,之后使用top查看,CPU占用率100%,此时看温度大概在55.89℃。
2、设备的运行功耗大约为5.06V 0.181A,约0.92W;
3、实际运行10分钟后,读取内部温度,大约为56.48摄氏度;
root@luckfox:~# cat /sys/class/thermal/thermal_zone0/temp
56485
使用热成像仪测试温升,主芯片外壳温度约51.3度,手感温热;
本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。
