воскресенье, 16 ноября 2014 г.

О настройке WiFi в Linux

Настройка wifi будет происходить на нетбуке MSI Wind U100. В моем случае драйвер wifi-адаптера был уже скомпилирован и загружен. Оставалось только настроить подключение. Если у вас не обнаруживается карточка wifi, то имеет смысл обратиься к официальной документации Gentoo.

Первым делом нужно обеспечить активацию карты. Нас будет интересовать настройка из командной строки.
Добавим скрипт для включения карты:

root # ln -s /etc/init.d/net.lo /etc/init.d/net.enp2s0

где enp2s0 - имя моей wifi-карты в выводе ifconfig -a

Теперь мы можем включать и выключать карту отправляя команды start и stop скрипту /etc/init.d/net.enp2s0(но пока этого не делайте, нужно еще сделать некоторые настройки). Например так:

root # /etc/init.d/net.enp2s0 start

Далее нужно указать в файле /etc/conf.d/net использование wpa_supplicant. wpa_supplicant - утилита, позволяющая подсоединяться к точкам доступа (с WPA в том числе). Есть еще альтернатива - wireless-tools, но я выбрал wpa_supplicant.
File /etc/conf.d/net
modules_enp2s0="wpa_supplicant"
wpa_supplicant_enp2s0="-Dwext"
config_enp2s0="dhcp"
Здесь wext - это название драйвера, этот должен работать с почти всеми картами. Можно поэкспериментировать с другими драйверами, их названия можно найти в официальной документации. Пока такой задачи не стоит, главное заставить работать.

Настройки wpa_supplicant хранятся в файле /etc/wpa_supplicant/wpa_supplicant.conf, и здесь хранятся самые важные для нас настройки.
root # nano /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
  priority=1
  ssid="my_wifi"
  scan_ssid=1
  key_mgmt=NONE
}
Здесь my_wifi - название сети к которой вы хотите подключиться, priority - приоритет подключения (чем больше, тем лучше), key_mgmt=NONE - не использовать защиту подключения.

Несмотря на проделанные настройки, проблемы с wifi все еще присутствуют. Например, после спящего режима интернет автоматически не подключается. Нужно перезапустить сервис

root # /etc/init.d/net.enp2s0 restart