TS-4900 yocto wifi
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.