блоки 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 2-й адаптер, я предполагаю. Я использую этот rtl8812au репозиторий для драйвера. Могла там быть проблема с тем, который заставляет адаптер не обнаруживаться в rfkill list? С 2-м включенным адаптером я работал rfkill block 4 и весь Wi-Fi был заблокирован. Созданный в Wi-Fi и этих двух адаптерах. Это как rfkill предполагается работа ti?

0
задан 16 September 2017 в 17:22

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

I'm Предполагается, что это значение по умолчанию для всех устройств, которые не поддерживают API kill RF в своих драйверах. Процитируем из заголовочного файла cfg80211.h:

Интеграция RFkill в cfg80211 практически невидима для драйверов, так как cfg80211 автоматически регистрирует экземпляр rfkill для каждого беспроводного устройства, о котором он знает. Мягкое уничтожение также переводится в отключение и отключение всех интерфейсов, ожидается, что драйверы отключат устройство, когда все интерфейсы не работают.

Я также использую драйвер rtl8812au и rtl8192ce, которые, похоже, не поддерживают API-интерфейс уничтожения RF непосредственно в своих драйверах.

Для самого драйвера rtl8812au я использую один из https://github.com/zebulon2/rtl8812au , потому что один из gnab вызвал его идентификацию в качестве адаптера Ethernet вместо адаптера WiFi. Если у вас точно такая же проблема, это может объяснить, почему она не указана в rfkill.

1
ответ дан 2 November 2019 в 06:36

Другие вопросы по тегам:

Похожие вопросы: