В связи с ужесточением беспроводной политики на работе и поднятием беспроводной точки дома, пришлось задуматься о том, как не мучаться с настройками при смене места. Вот решение, которое, как мне кажется, достаточно простое и элегантное для RH-подобных дистрибутивов:
1. Берем /etc/sysconfig/network-scripts/ifcfg-<interface>, соответствующий wifi-адаптеру (в моем случае это eth1). Этот файл по идее должен содержать настройки интерфейса и читается каждый раз, когда выполняются операции с интерфейсом.
2. Наполняем его вот таким содержимым:
Количество записей в case можно варьировать в зависимости от количества доступных AP. В конце концов, если будет найдена AP, которая поддерживается, то интерфейс будет настроен корректно, а если нет -- то ONBOOT=no его не поднимет (по умолчанию).
Работает как часы, правда нужно относительно свежую версию wireless-tools.
1. Берем /etc/sysconfig/network-scripts/ifcfg-<interface>, соответствующий wifi-адаптеру (в моем случае это eth1). Этот файл по идее должен содержать настройки интерфейса и читается каждый раз, когда выполняются операции с интерфейсом.
2. Наполняем его вот таким содержимым:
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=yes
# Check location and the need for specific configuration
iw_ap_address=$(iwlist $DEVICE scan|grep Address: | cut -d: -f2-|cut -d’ ‘ -f2)
case $iw_ap_address in
aa:bb:cc:dd:ee:ff)
WIRELESS_IWCONFIG=“ap $iw_ap_address”
WIRELESS_ESSID=“наш ESSID”
WIRELESS_KEY=“open”
WIRELESS_ENC_KEY=“s:наш_ключ”
;;
xx:yy:zz:gg:dd:tt)
WIRELESS_IWCONFIG=“ap $iw_ap_address”
WIRELESS_ESSID=“Еще один ESSID”
WIRELESS_KEY=“open”
WIRELESS_ENC_KEY=“s:еще один ключ”
;;
*)
ONBOOT=no
;;
esac
Количество записей в case можно варьировать в зависимости от количества доступных AP. В конце концов, если будет найдена AP, которая поддерживается, то интерфейс будет настроен корректно, а если нет -- то ONBOOT=no его не поднимет (по умолчанию).
Работает как часы, правда нужно относительно свежую версию wireless-tools.