Не думаю, что проблема дистрибутивно-специфичная, но писать буду про Linux Mint 16.
Итак, имеем проблему: при загрузке с CD и уже в самой системе после установки у нас заблокирован Wifi:
user@user-X551CAP ~ $ rfkill list
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
2: asus-wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
3: asus-bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
4: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
Обращаем внимание на строку
Hard blocked: yes
для устройства phy0
. Обычно такое бывает когда карта выключена или через BIOS или через переключатель корпусе ноутбука. В случае конкретной модели Asus это состояние должно переклчаться через Fn-F2. Да вот беда: не работает эта комбинация. Вызов acpi_listen
молчит как партизан при нажатии этой кнопки.
Но самым шоком стало то, что после засыпания и просыпания карта включалась! Собственно это стало поводом к поиску. И… первым воркэраундом :)
Перебирая выводы команд lspci -nn
, lsmod
, изучил какие модули используются. Особо заинтересовали модули из серии wmi - Windows Management Instrumentation и, в частности, asus_nb_wmi отвечающий, судя по всему за трансляцию различных клавиатурных эвентов, и его опция wapf, которая, судя по интернетам, отвечает за поведение клавиш включения/выключения Wifi и Bt.
Итак, погуглив по интернетам, нахожу следующие ссылки:
В общем, вроде как у некоторых проблему решает. Забегая вперёд хочу отметить: wifi заработал со значением wapf равным единице, но сама клавиша Fn-F2 - нет. Пробовать начинал с 0. Беда в том, что просто перегрузка модуля не помогает, нужно или полностью перегружать модули для карты и всего сопутствующего или просто перегружать комп.
В общем решение: создаём файл /etc/modprobe.d/asus.conf следующего содержимого:
options asus_nb_wmi wapf=1
и перегружаем комп.
Отмечу, что ещё до этого решения я задал через параметры ядра (задал в /etc/default/grub.conf) следующие настройки:
GRUB_CMDLINE_LINUX_DEFAULT="... rfkill.master_switch_mode=2 rfkill.default_state=1"
Быть может они помогли в комплексе, но проверять WAPF без параметров для rfkill было уже лень.
Ссылки по теме: