瑞米派WiFi上网配置
笔者使用的是米尔电子基于RZ/G2L瑞米派开发板,使用的系统是基于yocto构建的myir-image-full版本,在使用瑞米派进行WIFI上网过程中遇到的问题和过程进行记录。本次使用的是mobaxterm进行串口调试瑞米派。
注:
(1)由于这是yocto构建的Linux系统,所以是没有下载包文件的apt命令的,如果想使用apt-get命令,需要使用官方提供的Ubuntun系统。
(2)在yocto命令可以使用的wget命令从互联网上下载文件
使用wget:
wget http://example.com/program.tar.gz
使用which命令查看是否包含命令:
which wdget
1、uboot阶段加载WIFI模块驱动
Remi Pi 板载 WIFI 模块在默认启动的设备树中未包含,需要在 uboot 阶段下修改设备树名称,操作如下:
(1)提示Hit any key to stop autoboot时,在倒计时前进入uboot
(2)在uboot阶段执行此命令:
= > ls mmc 0:1
23665152 Image
39850 mys-rzg2l-sdcard.dtb
39703 mys-rzg2l-wifi.dtb
3 file(s), 0 dir(s)
= > setenv fdt_file mys-rzg2l-wifi.dtb
= > setenv sdhi_sw "if test MYS-RZG2L = MYS-RZG2L ; then switch_sdhi1 wifi;fi"
= > saveenv
Saving Environment to MMC... Writing to MMC(0)... OK
按下复位键重启后生成 Wi-Fi 设备的网络节点 wlan0,如下:
root@myir-remi-1g:/# ifconfig wlan0
wlan0: flags=4098
ether 68:4e:05:b3:fe:d1 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2、STA模式手动连接WIFI热点
下面尝试手动连接附近的 Wi-Fi 热点“K70”,这是一个采用WPA2加密方式的WIFI热点,密码为12345678。
·确保wlan0网络设备处于激活状态
执行如下命令:
rfkill unblock wlan
ifconfig wlan0 up
·扫描附近WIFI热点
iw dev wlan0 scan | grep SSID
·wpa_passphrase设置wifi名字和密码
wpa_passphrase myir007 12345678 >> /etc/wpa_supplicant.conf
使用cat命令查看是否成功添加WIFI名字和密码:
cat /etc/wpa_supplicant.conf
·关掉wpa_supplicant进程
使用wpa_supplicant连接、配置WIFI之前,看wpa_supplicant进程是否打开,然后关闭该进程。
killall wpa_supplicant
·初始化wpa_supplicant
wpa_supplicant是一个连接、配置WIFI的工具,它的主要工作是通过socket与驱动交互并上报数据给用户层,而用户层也可以通过socket发送命令给wpa_supplicant 调动驱动来对WiFi芯片操作。它通常在后台运行,如下所示:
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
root@myir-remi-1g:~# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Successfully initialized wpa_supplicant
nl80211: kernel reports: Authentication algorithm number required
[ 882.780005] start_addr=(0x20000), end_addr=(0x40000), buffer_size=(0x20000), smp_number_max=(16384)
wlan0: Trying to associate with 7e:9a:66:89:ee:a7 (SSID='K70' freq=2412 MHz)
nl80211: kernel reports: Authentication algorithm number required
wlan0: CTRL-EVENT-STARTED-CHANNEL-SWITCH freq=2412 ht_enabled=1 ch_offset=0 ch_width=20 MHz cf1=2412 cf2=0
wlan0: Associated with 7e:9a:66:89:ee:a7
wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
wlan0: WPA: Key [ 887.478564] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
negotiation completed with 7e:9a:66:89:ee:a7 [PTK=CCMP GTK=CCMP]
wlan0: CTRL-EVENT-CONNECTED - Connection to 7e:9a:66:89:ee:a7 completed [id=2 id_str=]
注:
(1)注意程序会在这里卡住,因为一直分配不到IP,所以还需要使用另外一个命令。此时我们需要使用两个终端窗口,假如你的瑞米派是有屏幕和键盘,那你只需要再打开一个终端窗口就行。
①假如你只有一个串口线,那你可以再使用一根网口线,连接电脑和开发板,目的是为了使用ssh再打开一个终端窗口。
此处参考链接:
参考此博客进行SSH连接,打开第二终端即可
②如果你有屏幕和键盘,即只需要打开两个终端即可
由于执行完此命令后,相当于此终端进程一直挂着此命令,如果你使用CTRL+C之后,就中断了此驱动配置,由于后续还需要进行DHCP获取IP地址,所以有两个解决办法.即此命令wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf需要占着一个终端
输入获取IP的指令:
udhcpc -i wlan0
检测是否连上网,
ping baidu.com
有数据返回,说明连接成功。
检测WIFI连接效果
如果无法 ping 通外网,则在/etc/resolv.conf 文件里加入
\# Generated by Connection Manager
nameserver 8.8.8.8
nameserver 8.8.4.4
yocto下载命令
(1)查看下载命令
就算有了网络,但是仍然需要下载指令才能下载包文件等,比如ubuntun下,使用apt-get指令下载资源包。我们在终端下可以使用which命令,查看yocto有哪些下载命令
经过测试发现,可用wget、ssh、scp、opkg常见指令进行文件的下载和获取
(2)测试:使用wget指令上网下载软件包
本次测试选择贝锐蒲公英客户端下载贝锐蒲公英软件客户端最新版官方下载,蒲公英联机组网平台软件下载 - 贝锐蒲公英官网
使用lscpu指令查看开发板架构,可以看到开发板是Arm架构,64bit:
故选择arm64版本进行下载:
复制上述命令
首次执行后,会报错如下:
错误: 无法打开软件包的 info 文件 /var/lib/dpkg/status 读取: status没有那个文件或目录
针对此问题,只需要在/var/lib.dpkg文件夹下,新建一个status文件即可(注意不是文件夹):
vi status
然后等待下载完成即可,ls目录下可见文件成功下载:
查看日志信息:
cd /var/log/oray/
3、STA模式开机自动连接WIFI热点
前面讲述了手动连接 wifi 热点,每次启动都要手动连接或者手动执行脚本非常不方便,这里将介绍如何开机自动连接 wifi 热点
通过使用 ifup_wifi_sta 连接 wifi 后,会在/etc/wpa_supplicant/目录下生成一 个新文件,如下:
ifup_wifi_sta -ssid K70 -passwd 12345678
只要使能对应的服务即可开机连接 WIFI
执行上述命令重启后可以查看到 WIFI 已经连接上,但是没有 ip 地址:
root@myir-remi-1g:~# wpa_cli -i wlan0 -p /var/run/wpa_supplicant status
bssid=3c:06:a7:7b:59:bd
freq=5785
ssid=myir007
id=0
mode=station
wifi_generation=4
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
address=68:4e:05:b3:fe:d1
uuid=b979bff3-1d2a-53f5-82d4-6ef67e178b30
将WIFI设置动态获取ip,就能达到开机自动获取 ip 目的, 创建 11- wlan0. network。
再次重启开发板,可以看到 WIFI 已经获取到 IP 了。
后续如果想添加新的WIFI,使用ifup_wifi_sta -ssid K70 -passwd 12345678命令添加即可,注意连接顺序即是添加顺序,顺上往下依次连接的。