- Настройка Wi-Fi во FreeBSD
- I just want my WiFi working!
- 1. Getting started
- 2. FAQ
- 2.1. Drivers
- 2.1.1. ifconfig doesn’t show my wireless card
- 2.1.2. My wireless card does not show up in sysctl -n net.wlan.devices
- 2.1.3. I’ve added the driver-related lines to /boot/loader.conf but it still doesn’t work
- 2.1.4. Where is the urtwn driver? It is mentioned on many websites
- 2.1.5. I’ve got some problems with the iwm(4) driver
- 2.2. wpa_supplicant
- 2.2.1. How to configure Eduroam?
- 2.2.2. I am sure I put correct password into /etc/wpa_supplicant.conf but it still doesn’t work
- 2.3. Tools that you wish you knew existed
- 3. Community support
- 3.1. Mailing lists
- 3.2. IRC
- 4. See also
- Wi fi and freebsd
- Supported Features
- Under Current Development
- Chipset Support
- Regulatory Domain Support
- TODO / Wishlist
- Developer Corner
- Further Information
- Configure a Wi-Fi Client on FreeBSD
Настройка Wi-Fi во FreeBSD
Поставив правильную ось на свой ноут, озаботился выходом в интернет. Интернет у меня раздает точка славной компании TP-Link, имеющая на борту ADSL-модем, коммутатор на 4 порта, и точку доступа по Wi-Fi. Поскольку прокладывать провода мне претило, да и терялся смысл мобильности ноута, было решено настроить Wi-Fi во FreeBSD.
Итак, перво-наперво, необходимо проверить, определился ли беспроводной сетевой адаптер. У меня это выглядело так:
ath0: mem 0xb1000000-0xb100ffff irq 26 at device 2.0 on pci0
Если же физически устройство имеется, но не определяется, имеет смысл проверить конфигурацию ядра, так как умолчанию поддержка wireless там включена. Если же вы пересобирали ядро и отключили ее — пересобирайте еще раз с включенным опциями.
Если же и пересобирать неохота — можно подгрузить модули ядра, прописав в /boot/loader.conf
if_ath_load="YES" wlan_wep_load="YES" wlan_ccmp_load="YES" wlan_tkip_load="YES"
После успешного определения беспроводной сетевой карты, название которой можно определить командой
# ifconfig ath0: flags=8843 ether xx:xx:xx:xx:xx:xx media: IEEE 802.11 Wireless Ethernet autoselect mode 11g status: associated
просканируем сети вокруг себя
В данном случае, видна только одна сеть — моя 🙂
SSID BSSID CHAN RATE S:N INT CAPS SYNERNET 00:21:27:e8:8a:f0 11 54M -75:-95 100 EP RSN WPA
Поскольку сеть с шифрованием, необходимо добавить ключ шифрования сети. Это можно сделать с помощью команды
wpa_passphrase SYNERNET mykey >> /etc/wpa_supplicant.conf
где mykey — ключ шифрования.
В результате должно получится
# cat /etc/wpa_supplicant.conf network={ ssid="SYNERNET" #psk="mykey" psk= >
Полное описание wpa_supplicant.conf вы получите введя man wpa_supplicant.conf.
Теперь нам нужно внести изменения в файле /etc/rc.conf. Открываем его в редакторе ee (если умеете пользоваться vi, то открывайте в нем):
wlans_ath0="wlan0" ifconfig_wlan0="WPA DHCP"
Сохраняем. Создали wlan0. Затем указали wlan0, что используется шифрование WPA, и что настройки (IP и netmask) будем получать по DHCP. Теперь поднимем интерфейс:
Если же у вас отключен DHCP на точке доступа, прописываем адрес и маску вручную.
В /etc/rc.conf меняем ifconfig_wlan0=»WPA DHCP» на ifconfig_wlan0=»WPA inet my_ipadress netmask my_netmask».
Проверив доступ в сеть, идем пить пиво и обновлять сырцы системы 😉
I just want my WiFi working!
The chapter about wireless networking in the FreeBSD Handbook is a wonderful source of information. Sometimes, however, bits go crazy and you simply cannot diagnose a simple networking issue. Don’t be afraid to ask the community if you’re stuck. System configuration in a console happens to be intimidating to newcomers.
1. Getting started
- Read the chapter related to wireless networking in the FreeBSD Handbook. It should be enough to set up a wireless connection on a FreeBSD machine.
2. FAQ
2.1. Drivers
- It might be a good idea to check out Laptops. Maybe someone with a similar machine described how to set up a wireless device.
2.1.1. ifconfig doesn’t show my wireless card
You’re probably looking for sysctl -n net.wlan.devices.
Also, make sure you’ve actually read the wireless networking chapter.
2.1.2. My wireless card does not show up in sysctl -n net.wlan.devices
A driver might be missing. Check out the output of pciconf -lv and look for devices with the network class.
2.1.3. I’ve added the driver-related lines to /boot/loader.conf but it still doesn’t work
- Some drivers require the user to explicitly acknowledge the firmware license. Check out the manual page of the driver you’re using for details.
- Remember to load required firmware if needed. Consult your manual.
2.1.4. Where is the urtwn driver? It is mentioned on many websites
2.1.5. I’ve got some problems with the iwm(4) driver
- As of 2018.04.25 some people report that iwm(4) causes a kernel panic when configured via loader.conf(5). So, although the manual says to add
if_iwm_load="YES" iwm3160fw_load="YES"
Works for phpdave11 (#freebsd, Freenode, 2018.05.09)
- iwm(4) devices do not start automatically for some users when system boots so they add the following command to crontab(1):
@reboot ifconfig wlan0 create wlandev iwm0
2.2. wpa_supplicant
2.2.1. How to configure Eduroam?
An example configuration has been added to the wpa_supplicant.conf(5) manual page in FreeBSD 12-CURRENT.
2.2.2. I am sure I put correct password into /etc/wpa_supplicant.conf but it still doesn’t work
- The value of psk should be either a "-quoted passphrase (e.g. "password") or a 256-bit pre-shared WPA key (e.g. c4c5b44ebb507f6c8b10ea42eb30521465c1cc000e432748fa9f87eb68b63cc1). Also, check out wpa_passphrase(8).
2.3. Tools that you wish you knew existed
- Intimidating at first, it is not actually that bad.
- This is utility is why you put ctrl_interface=/var/run/wpa_supplicant in wpa_supplicant.conf(5).
3. Community support
You may seek help on the following communication channels.
3.1. Mailing lists
3.2. IRC
See IRC/Channels for a list of all the FreeBSD IRC channels.
4. See also
WiFi/FAQ (last edited 2023-01-29T14:06:38+0000 by GrahamPerrin )
Wi fi and freebsd
Welcome to the FreeBSD 802.11 wireless protocol and driver overview.
If you need help setting up a wireless connection, check out the Wireless FAQ.
Other pages in this section
Supported Features
This section outlines Wireless (IEEE 802.11) Standards and Protocol support in FreeBSD. Whether specific features are supported on particular hardware is chipset and driver specific.
- 11a, 11b, 11g, 11n operating modes
- Half (10MHz) and Quarter (5MHz) Rate Support
- See also: Atheros Half & Quarter Rate Support
- WEP, WPA, AES-CCMP, TKIP
- Hardware Encryption Offload
Under Current Development
- 802.11s /Mesh — initial support, under development
- ath/ath_hal 802.11n TX aggregation/blockack support
- Radar detection / TPC support
- Ralink 802.11n chipset support
- /LockIssues — stack and driver locking and locking issues
Chipset Support
Please see dev for further information. Please note, this isn’t (yet) an exhaustive list.
Regulatory Domain Support
TODO / Wishlist
These may have some funding available to implement. Please contact freebsd-wireless@freebsd.org if you think you’re able to code up one of these!
- /80211ac — initial 802.11ac support
- Flesh out more 802.11n extensions to net80211
- Migrate the software A-MPDU management from various drivers (notably iwn(4), ath(4)) into net80211
- Migrate out the atheros sample rate module into net80211
- Teach if_ath and other drivers about the net80211 TX rate control code
- 802.11n DFS support
- 802.11h TPC support (driver support, related IEs)
- 802.11h channel survey support (RX signal strength histogram, related IEs)
- Channel steering support — ie, steering 2/5ghz capable clients to 5ghz SSIDs
- 802.11n IBSS support
- 802.11n mesh (11s) support
- 802.11 wireless access in vehicular environments support (802.11p)
- /FixUpThings Fix up known things that we need for 802.11-2012 / 802.11ac-2013
Developer Corner
- /BringUp — Bringing up an 802.11 driver (currently only covers bringing up 11n support)
- /TxNotes — net80211 transmit and receive path related notes, mostly to look at concurrency issues
- RTylerCroy/WifiNotes — Collection of notes from discussions with AdrianChadd on the FreeBSD wireless networking stack and how to work effectively with the stack
Further Information
Please contact freebsd-wireless@freebsd.org for any further information.
WiFi (last edited 2022-05-17T03:34:20+0000 by KubilayKocak )
Configure a Wi-Fi Client on FreeBSD
If you need a GUI-based Wi-Fi manager for a FreeBSD desktop environment, consider using networkmgr or wifimgr. For console-based servers or IOT devices, the bsdconfig wireless command should allow one to configure a supported wireless device on FreeBSD after installation, but I have never been able to get it to work properly on my devices. Fortunately, it’s easy to set up Wi-Fi by hand for supported devices following the instructions in the handbook. First, use sysctl and pciconf to see if the system has detected a wireless device.
$ su Password: # uname -a FreeBSD laptop.ccammack.com 13.0-RELEASE-p4 FreeBSD 13.0-RELEASE-p4 # sysctl net.wlan.devices net.wlan.devices: iwn0 # pciconf -lv | grep -B3 network [. ] iwn0@pci0:3:0:0: class=0x028000 rev=0x34 hdr=0x00 vendor=0x8086 device=0x0085 subvendor=0x8086 subdevice=0x1311 vendor = 'Intel Corporation' device = 'Centrino Advanced-N 6205 [Taylor Peak]' In this case, the system detected an Intel Centrino Advanced-N 6205 Wi-Fi card as wireless device iwn0. To find out more about available drivers for your wireless hardware, use the apropos and man commands.
# apropos intel | grep wireless iwm, if_iwm(4) - Intel IEEE 802.11ac wireless network driver iwn, if_iwn(4) - Intel IEEE 802.11n wireless network driver # man iwn [. ]
Support for new wireless devices often takes a while on FreeBSD, so if your hardware is not recognized, the easiest solution is to just buy an inexpensive USB Wi-Fi dongle that is already supported. Search the FreeBSD Release Notes for the word wireless to see a list of supported hardware. Once the system recognizes a wireless device, use either ee or echo >> to add two lines to the bottom of /etc/rc.conf to configure it. Replace iwn0 in the example below with the appropriate driver name given by the sysctl command.
# ee /etc/rc.conf [. ] # echo 'wlans_iwn0="wlan0"' >> /etc/rc.conf # echo 'ifconfig_wlan0="WPA SYNCDHCP"' >> /etc/rc.conf # cat /etc/rc.conf [. ] wlans_iwn0="wlan0" ifconfig_wlan0="WPA SYNCDHCP"
Next, use ee or wpa_passphrase >> to add a properly-formatted network configuration block to the file /etc/wpa_supplicant.conf for each Wi-Fi hotspot.
# ee /etc/wpa_supplicant.conf [. ] # wpa_passphrase "SSID" "WPA2passphrase" >> /etc/wpa_supplicant.conf # cat /etc/wpa_supplicant.conf network= ssid="SSID" #psk="WPA2passphrase" psk=8f0022337a28144c1ee2ae9b7f570d978c9c014b9e3b6e7ad3bfaf816d272f60 >
The wpa_supplicant.conf file can contain as many hotspots as needed. The longer psk value (without double-quotes) is just a hash of the commented-out #psk value that contains the raw passphrase. If you need to change the passphrase for an existing hotspot, you can delete the line with the longer psk hash, uncomment the line with the shorter psk value and change it to the new raw passphrase. The system will recognize either psk format. Finally, restart the network service and ping to check the connection.
# service netif restart [. ] # ifconfig [. ] wlan0: flags=8843 metric 0 mtu 1500 ether 8c:70:5a:bd:39:3c inet 192.168.0.101 netmask 0xffffff00 broadcast 192.168.0.255 groups: wlan ssid SSID channel 2 (2417 MHz 11g ht/20) bssid 1c:af:f7:dd:9c:3b regdomain FCC country US authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 3:128-bit txpower 30 bmiss 10 scanvalid 60 protmode CTS ampdulimit 64k ampdudensity 8 -amsdutx amsdurx shortgi -stbc -ldpc -uapsd wme roaming MANUAL parent interface: iwn0 media: IEEE 802.11 Wireless Ethernet MCS mode 11ng status: associated nd6 options=29 # ping google.com PING google.com (142.250.191.78): 56 data bytes 64 bytes from 142.250.191.78: icmp_seq=0 ttl=117 time=9.805 ms 64 bytes from 142.250.191.78: icmp_seq=1 ttl=117 time=10.081 ms 64 bytes from 142.250.191.78: icmp_seq=2 ttl=117 time=10.059 ms ^C --- google.com ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 9.805/9.982/10.081/0.125 ms
To connect to a different hotspot in a new location, use ifconfig scan to scan for nearby hotspots and then add the desired SSID to /etc/wpa_supplicant.conf using either ee or wpa_passphrase >> as before.
# ifconfig wlan0 list scan | more SSID/MESH ID BSSID CHAN RATE S:N INT CAPS [. ] GuestWiFi 1c:af:f7:dd:9c:3b 2 54M -66:-95 100 EPS RSN WPA WME HTCAP ATH WPS [. ] # wpa_passphrase "GuestWiFi" "WPA2passphrase" >> /etc/wpa_supplicant.conf # cat /etc/wpa_supplicant.conf [. ] network= ssid="GuestWiFi" #psk="WPA2passphrase" psk=8f0022337a28144c1ee2ae9b7f570d978c9c014b9e3b6e7ad3bfaf816d272f60 > # service netif restart [. ] # ping google.com [. ]