rfkill блокирует несколько адаптеров
У меня есть адаптер Wi-Fi USB, а также встроенный. Когда я бегу rfkill list
Я получаю этот вывод:
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
9: nfc0: NFC
Soft blocked: no
Hard blocked: no
Должен ли быть отдельный список встроенных и usb-адаптеров? Я хочу иметь возможность блокировать только встроенный адаптер, прямо сейчас, когда я запускаю rfkill block 0
это отключает оба адаптера.
Обновление: я нашел другой старый USB-адаптер, подключил его и запустил rfkill list
, На этот раз вывод был
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
3: nfc0: NFC
Soft blocked: no
Hard blocked: no
4: phy2: Wireless LAN
Soft blocked: no
Hard blocked: no
Где 4 второй адаптер, я думаю. Я использую этот репозиторий rtl8812au для драйвера. Может ли быть проблема с тем, что приводит к тому, что адаптер не отображается в rfkill list
? С подключенным 2-м адаптером я запустил rfkill block 4
и все Wi-Fi был заблокирован. Встроенный вай-фай и два адаптера. Это как rfkill
предполагается работа?
1 ответ
Похоже, что в настоящее время rfkill работает и для меня. Это не только команда rfkill, которая показывает это поведение. То же самое происходит, когда вы пишете прямо в файлы sysfs. Например (как root):
Отключить RF на WiFi устройстве № 0:
$ echo 1 > /sys/class/rfkill/rfkill0/soft
Включить RF на WiFi устройстве № 2:
$ echo 0 > /sys/class/rfkill/rfkill2/soft
Я предполагаю, что это по умолчанию для всех устройств, которые не поддерживают RF kill API в своих драйверах. Чтобы процитировать из заголовочного файла cfg80211.h:
Интеграция RFkill в cfg80211 практически невидима для драйверов, так как cfg80211 автоматически регистрирует экземпляр rfkill для каждого беспроводного устройства, о котором он знает. Soft kill также переводится в отключение и отключение всех интерфейсов, ожидается, что драйверы отключат устройство, когда все интерфейсы не работают.
Я также использую драйвер rtl8812au и rtl8192ce, которые не поддерживают API RF kill непосредственно в своих драйверах.
Что касается самого драйвера rtl8812au, я использую его из https://github.com/zebulon2/rtl8812au, потому что драйвер gnab определил его как адаптер Ethernet вместо адаптера WiFi. Если у вас точно такая же проблема, это может объяснить, почему она не указана в rfkill.