У меня есть адаптер 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 2-й адаптер, я предполагаю. Я использую этот rtl8812au репозиторий для драйвера. Могла там быть проблема с тем, который заставляет адаптер не обнаруживаться в rfkill list
? С 2-м включенным адаптером я работал rfkill block 4
и весь Wi-Fi был заблокирован. Созданный в Wi-Fi и этих двух адаптерах. Это как rfkill
предполагается работа ti?
Похоже, именно так rfkill и сейчас работает для меня. Это не только команда rfkill, которая показывает это поведение. То же самое происходит, когда вы пишете прямо в файлы sysfs. Например (как root):
Отключить RF на устройстве WiFi № 0:
$ echo 1 > /sys/class/rfkill/rfkill0/soft
Включить RF на устройстве WiFi № 2:
$ echo 0 > /sys/class/rfkill/rfkill2/soft
I'm Предполагается, что это значение по умолчанию для всех устройств, которые не поддерживают API kill RF в своих драйверах. Процитируем из заголовочного файла cfg80211.h:
Интеграция RFkill в cfg80211 практически невидима для драйверов, так как cfg80211 автоматически регистрирует экземпляр rfkill для каждого беспроводного устройства, о котором он знает. Мягкое уничтожение также переводится в отключение и отключение всех интерфейсов, ожидается, что драйверы отключат устройство, когда все интерфейсы не работают.
blockquote>Я также использую драйвер rtl8812au и rtl8192ce, которые, похоже, не поддерживают API-интерфейс уничтожения RF непосредственно в своих драйверах.
Для самого драйвера rtl8812au я использую один из https://github.com/zebulon2/rtl8812au , потому что один из gnab вызвал его идентификацию в качестве адаптера Ethernet вместо адаптера WiFi. Если у вас точно такая же проблема, это может объяснить, почему она не указана в rfkill.