TS-4900 yocto wifi: Difference between revisions
No edit summary |
No edit summary |
||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
Yocto uses systemd to start wpa_supplicant, and networkd to | Yocto uses systemd to start wpa_supplicant, and systemd-networkd to set an IP address via a static setting or DHCP. | ||
''' Scan for a network ''' | ''' Scan for a network ''' | ||
Line 6: | Line 6: | ||
# Scan for available networks | # Scan for available networks | ||
iw wlan0 scan | |||
</source> | </source> | ||
An example of connecting to an open network with an SSID of "default": | |||
< | <console> | ||
BSS c0:ff:ee:c0:ff:ee(on wlan0) | |||
TSF: 848750528860 usec (9d, 19:45:50) | |||
freq: 2462 | |||
beacon interval: 100 TUs | |||
capability: ESS Privacy ShortPreamble ShortSlotTime RadioMeasure (0x1431) | |||
signal: -69.00 dBm | |||
</ | last seen: 3253 ms ago | ||
Information elements from Probe Response frame: | |||
SSID: default | |||
Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0* 9.0 12.0* 18.0 | |||
DS Parameter set: channel 11 | |||
Country: US Environment: Indoor/Outdoor | |||
Channels [1 - 11] @ 30 dBm | |||
</console> | |||
To connect to this open network manually for just this boot: | To connect to this open network manually for just this boot: | ||
<source lang=bash> | <source lang=bash> | ||
iw wlan0 connect "default" | |||
</source> | </source> | ||
If connecting using WEP, also specify a network key: | |||
If | |||
<source lang=bash> | <source lang=bash> | ||
iw wlan0 connect "default" keys 0:abcde d:1:0011223344 | |||
</source> | </source> | ||
If connecting to a WPA network use wpa_passphrase and wpa_supplicant: | If connecting to a WPA network use <source lang=bash inline>wpa_passphrase</source> and <source lang=bash inline>wpa_supplicant</source>: | ||
<source lang=bash> | <source lang=bash> | ||
mkdir /etc/wpa_supplicant/ | mkdir /etc/wpa_supplicant/ | ||
wpa_passphrase | wpa_passphrase "ssid name" "full passphrase" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf | ||
</source> | </source> | ||
After generating the configuration file the wpa_supplicant daemon can be started. | After generating the configuration file the <source lang=bash inline>wpa_supplicant</source> daemon can be started. | ||
<source lang=bash> | <source lang=bash> | ||
wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -B | wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -B | ||
</source> | </source> | ||
This will | This will return output similar to: | ||
Successfully initialized wpa_supplicant | Successfully initialized wpa_supplicant | ||
root@ts-imx6-q:~# [ 306.924691] wlan0: authenticate with | root@ts-imx6-q:~# dmesg | ||
[ 306.959415] wlan0: send auth to | ... | ||
[ 306.924691] wlan0: authenticate with c0:ff:ee:c0:ff:ee | |||
[ 306.959415] wlan0: send auth to c0:ff:ee:c0:ff:ee (try 1/3) | |||
[ 306.968137] wlan0: authenticated | [ 306.968137] wlan0: authenticated | ||
[ 306.978477] wlan0: associate with | [ 306.978477] wlan0: associate with c0:ff:ee:c0:ff:ee (try 1/3) | ||
[ 306.988577] wlan0: RX AssocResp from | [ 306.988577] wlan0: RX AssocResp from c0:ff:ee:c0:ff:ee (capab=0x1431 status=0 aid=9) | ||
[ 307.009751] wlan0: associated | [ 307.009751] wlan0: associated | ||
[ 307.012768] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready | [ 307.012768] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready | ||
[ 307.047989] wlcore: Association completed. | [ 307.047989] wlcore: Association completed. | ||
Use | Use <source lang=bash inline>iw wlan0 info</source> and <source lang=bash inline>iw wlan0 station dump</source> to verify the connection. This will also report the link quality to the AP. | ||
Wireless may be associated, but this does not get an IP on the network. To connect to the internet or talk to the internal network first configure the interface. See | Wireless may be associated, but this does not get an IP on the network. To connect to the internet or talk to the internal network first configure the interface. See [[#Configuring the Network|configuring the network]], but on many networks only a DHCP client is needed: | ||
<source lang=bash> | <source lang=bash> | ||
udhcpc -i wlan0 | udhcpc -i wlan0 | ||
Line 80: | Line 74: | ||
</source> | </source> | ||
Once this service is started it will bring up the wlan0 link and associate it to the | Once this service is started it will bring up the wlan0 link and associate it to the SSID that is noted in the <source lang=bash inline>wpa_supplicant.conf</source> file. Configure the IP settings the same way as a wired network. | ||
In /etc/systemd/network/wlan0.network | In <source lang=bash inline>/etc/systemd/network/wlan0.network</source> | ||
<source lang=ini> | <source lang=ini> | ||
[Match] | [Match] | ||
Line 91: | Line 85: | ||
</source> | </source> | ||
For a static configuration | For a static configuration of IP, the following format may be used: | ||
<source lang=ini> | <source lang=ini> | ||
[Match] | [Match] |
Latest revision as of 16:37, 7 January 2021
Yocto uses systemd to start wpa_supplicant, and systemd-networkd to set an IP address via a static setting or DHCP.
Scan for a network
ifconfig wlan0 up
# Scan for available networks
iw wlan0 scan
An example of connecting to an open network with an SSID of "default":
BSS c0:ff:ee:c0:ff:ee(on wlan0) TSF: 848750528860 usec (9d, 19:45:50) freq: 2462 beacon interval: 100 TUs capability: ESS Privacy ShortPreamble ShortSlotTime RadioMeasure (0x1431) signal: -69.00 dBm last seen: 3253 ms ago Information elements from Probe Response frame: SSID: default Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0* 9.0 12.0* 18.0 DS Parameter set: channel 11 Country: US Environment: Indoor/Outdoor Channels [1 - 11] @ 30 dBm
To connect to this open network manually for just this boot:
iw wlan0 connect "default"
If connecting using WEP, also specify a network key:
iw wlan0 connect "default" keys 0:abcde d:1:0011223344
If connecting to a WPA network use wpa_passphrase
and wpa_supplicant
:
mkdir /etc/wpa_supplicant/
wpa_passphrase "ssid name" "full passphrase" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
After generating the configuration file the wpa_supplicant
daemon can be started.
wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -B
This will return output similar to:
Successfully initialized wpa_supplicant root@ts-imx6-q:~# dmesg ... [ 306.924691] wlan0: authenticate with c0:ff:ee:c0:ff:ee [ 306.959415] wlan0: send auth to c0:ff:ee:c0:ff:ee (try 1/3) [ 306.968137] wlan0: authenticated [ 306.978477] wlan0: associate with c0:ff:ee:c0:ff:ee (try 1/3) [ 306.988577] wlan0: RX AssocResp from c0:ff:ee:c0:ff:ee (capab=0x1431 status=0 aid=9) [ 307.009751] wlan0: associated [ 307.012768] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 307.047989] wlcore: Association completed.
Use iw wlan0 info
and iw wlan0 station dump
to verify the connection. This will also report the link quality to the AP.
Wireless may be associated, but this does not get an IP on the network. To connect to the internet or talk to the internal network first configure the interface. See configuring the network, but on many networks only a DHCP client is needed:
udhcpc -i wlan0
Systemd can also be configured to start wpa_supplicant on boot up.
# Assuming the same path for the wpa conf file as shown above
systemctl enable wpa_supplicant@wlan0
systemctl start wpa_supplicant@wlan0
Once this service is started it will bring up the wlan0 link and associate it to the SSID that is noted in the wpa_supplicant.conf
file. Configure the IP settings the same way as a wired network.
In /etc/systemd/network/wlan0.network
[Match]
Name=wlan0
[Network]
DHCP=yes
For a static configuration of IP, the following format may be used:
[Match]
Name=wlan0
[Network]
Address=192.168.0.50/24
Gateway=192.168.0.1
DNS=192.168.0.1
For more information on what options are available to configure the network, see the systemd network documentation.