WPA wifi через network в Fedora 16

Мучился тут человек в jabber-конференции fedora@conference.jabber.ru с тем, как бы отключить NetworkManager, а wifi через network зацепить.
И вот, что у нас вышло…

1. ставим wpa_supplicant:

yum install wpa_supplicant

2. правим файл /etc/wpa_supplicant/wpa_supplicant.conf

1
2
3
4
5
6
7
8
9
10
11
12
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel

ap_scan=1

network={
    ssid="имя-твоей-сети"
    proto=WPA
    key_mgmt=WPA-PSK
    psk="пароль-твоей-сети"
    priority=1
}

Если не будет подключаться, читаем man wpa_supplicant.conf.

3. правим файл /etc/sysconfig/wpa_supplicant:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Use the flag "-i" before each of your interfaces, like so:                                                            
#  INTERFACES="-ieth1 -iwlan0"                                                                                          
INTERFACES="-iwlan0"

# Use the flag "-D" before each driver, like so:                                                                        
#  DRIVERS="-Dwext"                                                                                                    
DRIVERS="-Dwext"

# Other arguments                                                                                                      
#   -u   Enable the D-Bus interface (required for use with NetworkManager)                                              
#   -f   Log to /var/log/wpa_supplicant.log                                                                            
#   -P   Write pid file to /var/run/wpa_supplicant.pid                                                                  
#        required to return proper codes by init scripts (e.g. double "start" action)                                  
#        -B to daemonize that has to be used together with -P is already in wpa_supplicant.init.d                      
OTHER_ARGS="-u -f /var/log/wpa_supplicant.log -P /var/run/wpa_supplicant.pid"

по правильным параметрам смотрим man wpa_supplicant.

4. правим файл /etc/sysconfig/network-script/ifcfg-wlan0:

1
2
3
4
DEVICE=wlan0
ONBOOT=yes
TYPE=Wireless
BOOTPROTO=dhcp

5. Обязательно включаем network.service в загрузку:

systemctl enable network.service

я предполагаю, что NM уже отключен, если нет, отключаем:

systemctl disable NetworkManager.service

6. включаем wpa_supplicant.service в загрузку:

systemctl enable wpa_supplicant.service

Вот, вроде бы и все.
А нифига не все! systemd же! 😀

7. делаем такую вот ссылку (я не уверен, что это обязательно, но да пусть будет):

ln -sf /lib/systemd/system/wpa_supplicant.service \ 
/etc/systemd/system/network.target.wants/

8. и финал! правим модуль wpa_supplicant для systemd, файл /lib/systemd/system/wpa_supplicant.service:

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=WPA Supplicant daemon
After=syslog.target network.target
Before=network.service

[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/wpa_supplicant
ExecStart=/usr/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf $INTERFACES $DRIVERS -B -u $OTHER_ARGS

[Install]
WantedBy=multi-user.target

Я добавил только строку №4!

А вот теперь уже все 🙂

P.S. Не знаю, расценивать последнюю часть как баг или нет. Статистики не хватает…

Добавить комментарий