让linux开发板联网

来源:互联网 发布:掃描sql 编辑:程序博客网 时间:2024/05/06 07:22

连接路由器的方式可以有iwconfig或者通过wpa_supplicant,因为大部分路由器的加密方式是WPA,所以因为加密方式为 WPA-PSK 所以得用 wpa_supplicant 而不能使用 iwconfig wlan0 key xxx 形式,iwconfig key方式适用于WEP和不加密的方式。

iwconfig发现wlp1s0 no wireless extensions

root@imx8mqevk:~# iwconfigwlp1s0 no wireless extensions

解决办法是在内核中添加相应的支持,如下:

Networking Support    Wireless        cfg80211 wireless extensions compatibility

之后就好了

root@imx8mqevk:~# iwconfigwlp1s0    IEEE 802.11  ESSID:off/any          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm          Retry short limit:7   RTS thr:off   Fragment thr:off          Encryption key:off          Power Management:on

wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={        ssid="External-Internet"        #psk="xxxx"        psk=992194d7a6158009bfa25773108291642f28a0c32a31ab2556a15dee97ef0dbb}

ctrl_interface指定一个目录,在这个目录下wap_supplicant会生成一个wlan0类似的socket文件,这个socket文件wpa_cli需要使用到,wpa_cli通过”-p 这个目录”来找到这个socket文件
network=是无线接入点的具体配置,这部分内容可以通过wpa_passphrase <ssid> [passphrase]生成,例如:

$ wpa_passphrase TPLINK 12345678  network={      ssid="TPLINK"      #psk="12345678"    psk=992194d7a6158009bfa25773108291642f28a0c32a31ab2556a15dee97ef0dbb  } 

ssid,接入点名称
scan_ssid=1,如果无线接入点是隐藏的,这个就必须要
psk,是加密后的密码


wpa_supplicant连接无线网

wpa_supplicant -B -i wlp1s0 -c wpa_supplicant.conf -D nl80211,wext
会出现错误”rfkill: Cannot open RFKILL control device”
因为大多数时候内核中没有配置rfkill,所以就没有/dev/rfkill设备节点,解决办法就是内核中选上CONFIG_RFKILL

更新内核后重启再次执行发现wpa_suplicant已经好了

root@imx8mqevk:~# wpa_supplicant -B -i wlp1s0 -c wpa_supplicant.conf -D nl80211,wextSuccessfully initialized wpa_supplicant[ 2172.902427] wlp1s0: authenticate with a4:6c:2a:46:cb:9b[ 2172.976340] wlp1s0: send auth to a4:6c:2a:46:cb:9b (try 1/3)[ 2172.983279] wlp1s0: authenticated[ 2172.992765] wlp1s0: associate with a4:6c:2a:46:cb:9b (try 1/3)[ 2173.070361] wlp1s0: RX AssocResp from a4:6c:2a:46:cb:9b (capab=0x11 status=0 aid=159)[ 2173.081233] wlp1s0: associated

udhcpc

wpa_supplicant执行成功之后,还需要通过DHCP服务器来分配ip地址udhcpc -i wlp1s0,udhcpc运行时使用默认的脚本”/usr/share/udhcpc/default.script”,然后通过ifconfig就可以看到wlp1s0的ip地址已经配置好了,由于之前通过wpa_supplicant连接的External-internet是可以上外网的,那么现在开发板也可以上外网了。ping www.baidu.com是可以ping通的。