Подключить Raspberry Pi к Wi-Fi можно с помощью обычного Wi-Fi «свистка». В принципе, подойти должен почти любой Wi-Fi-адаптер, но уточнить
список поддерживаемых донглов можно здесь — RPi USB Wi-Fi Adapters.
Подключаем USB-донгл и смотрим, что видит наша ОС.
$ lsusb Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
соответственно,
$ lsusb -v
покажет подробности:
... Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x148f Ralink Technology, Corp. idProduct 0x5370 RT5370 Wireless Adapter bcdDevice 1.01 iManufacturer 1 iProduct 2 iSerial 3 bNumConfigurations 1 ...
USB ID: 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter. Driver is the RT2800USB module
lsmod действительно показывает подгруженный модуль RT2800USB:
$ lsmod Module Size Used by ... rt2800usb 17425 0 rt2800lib 80340 1 rt2800usb rt2x00usb 11661 1 rt2800usb rt2x00lib 44767 3 rt2x00usb,rt2800lib,rt2800usb ...
Необходимые программы:
ifconfig — включение беспроводного адаптера,
iwlist — список доступных беспроводных сетей,
iwconfig — конфигурация беспроводного соединения,
dhclient — получения IP-адреса через dhcp,
wpa_supplicant — для использования WPA аутентификации.
Посмотрим сетевые интерфейсы:
$ ifconfig -a eth0 Link encap:Ethernet HWaddr b8:27:eb:17:6d:59 inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2553 errors:0 dropped:0 overruns:0 frame:0 TX packets:2510 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:157141 (153.4 KiB) TX bytes:225809 (220.5 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) wlan0 Link encap:Ethernet HWaddr 7c:dd:90:04:2f:bc UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
соответственно
$ iwconfig wlan0 IEEE 802.11bgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:on lo no wireless extensions. eth0 no wireless extensions.
— интерфейс wlan0 есть, а значит остаётся только настроить его на работу с нашей точкой доступа.
Смотрим и по необходимости редактируем /etc/network/interfaces:
sudo nano /etc/network/interfaces
в секции wlan0 должно быть:
allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
Жмём Ctrl-X для выхода.
теперь посмотрим, какие Wi-Fi сети видит наш адаптер:
sudo iwlist wlan0 scan
Чтобы отфильтровать строчки с названиями, воспользуемся grep:
sudo iwlist wlan0 scan | grep ESSID ESSID:"dlink" ESSID:"Kantiana-Guest" ESSID:"Kantiana-Internal" ESSID:"Kantiana"
Теперь можем внести информацию о точке доступа в файл /etc/wpa_supplicant/wpa_supplicant.conf:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
пропускаем первые две строчки:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1
Добавляем
network={ ssid="YourSSID" psk="password" key_mgmt=WPA-PSK }
Если используется WEP, то:
network={ ssid="YourSSID" wep_key0="password12345" key_mgmt=NONE }
Возможны дополнительные поля:
proto – Протокол: RSN (для WP2) и WPA (for WPA1).
pairwise – CCMP или TKIP (для WPA2 или WPA1).
auth_alg – алгоритм аутентификации , может быть OPEN для WPA1/WPA2 и SHARED или LEAP.
Жмём Ctrl-X для выхода и не забываем сохранить изменения (нажать Y, а затем Enter).
Для вступления изменений в силу можно перезагрузиться:
sudo reboot
И потом посмотреть, как удалось подключиться:
$ ifconfig -a ... wlan0 Link encap:Ethernet HWaddr 7c:dd:90:04:2f:bc inet addr:192.168.0.14 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:9 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1866 (1.8 KiB) TX bytes:1004 (1004.0 B)
$ iwconfig wlan0 IEEE 802.11bgn ESSID:"dlink" Mode:Managed Frequency:2.437 GHz Access Point: 14:D6:4D:70:07:D4 Bit Rate=36 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:on Link Quality=69/70 Signal level=-41 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:1 Missed beacon:0
Подключение в случае WEP-шифрования:
выполнение подключения:sudo iwconfig wlan0 essid Some_Name key s:Wireless_Keykey — указывает ключ шифрования (по-умолчанию в шестнадцатеричном виде HEX), чтобы указать ключ в виде текста (ASCII) — необходимо использовать опцию s.
Подключение в случае WPA-шифрования:
выполнение подключения:sudo wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.confПосле подключения:
остаётся получить от dhcp-сервера wifi-точки IP-адрес:sudo dhclient wlan0
Ссылки
RPi USB Wi-Fi Adapters
RPi VerifiedPeripherals
How to set up WiFi on a Raspberry Pi
Как настроить Wifi-соединение на любом Linux-десктопе
Настройка сети вручную
По теме
Питание для Raspberry Pi
Установка операционной системы для Raspberry Pi
Программирование Arduino при помощи Raspberry Pi
Подключение модуля камеры к Raspberry Pi