Это подделка адаптера Wifi Realtek?

Вопрос или проблема

Это не имеет никакого смысла для меня и кажется, что это не должно быть возможным.

Я купил несколько USB адаптеров WiFi RTL8821CU. Если я вставлю их в машину Proxmox N100 и выполню команду ‘lsusb’, то они определяются как

Шина 001 Устройство 018: ID 0bda:1a2b Корпорация Realtek Semiconductor. RTL8188GU 802.11n WLAN Адаптер (Режим CDROM Драйвера)

‘lsusb -v -d 0bda:1a2b’ включает

  idVendor           0x0bda Корпорация Realtek Semiconductor.
  idProduct          0x1a2b RTL8188GU 802.11n WLAN Адаптер (Режим CDROM Драйвера)
  bcdDevice            2.00
  iManufacturer           1 Realtek
  iProduct                2 DISK
  iSerial                 0 

Но на Raspberry Pi 4 ‘lsusb’ определяет их как

Шина 001 Устройство 008: ID 0bda:c820 Корпорация Realtek Semiconductor. 802.11ac NIC

‘lsusb -v -d 0bda:c820’ включает

  idVendor           0x0bda Корпорация Realtek Semiconductor.
  idProduct          0xc820 
  bcdDevice            2.00
  iManufacturer           1 Realtek
  iProduct                2 802.11ac NIC
  iSerial                 3 123456

Поиск ID “0bda:c820” показывает, что это соответствует ожидаемому чипсету RTL8821CU (с подозрительным серийным номером!).

Является ли это 8188GU (или чем-то другим), притворяющимся 8821CU?

Почему могут меняться такие идентификаторы устройств?

N100 Proxmox:
Linux prox1 6.8.12-4-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-4 (2024-11-06T15:04Z) x86_64 GNU/Linux

Pi 4:
Linux DesktopPi 6.6.51+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt2 (2024-10-01) aarch64 GNU/Linux

Я искал поддельные адаптеры WiFi Realtek и различные другие варианты, но не смог найти ничего, что подошло бы.
Какие-нибудь идеи?
Спасибо

В системе Proxmox, адаптер изначально представляет себя как USB-накопитель CD-ROM, содержащий (Windows) драйверы для реальной функциональности WiFi адаптера. В этом режиме он использует общий код продукта, который, по-видимому, впервые появился с моделью адаптера RTL8188GU, у которой была аналогичная функциональность автономных драйверов: именно поэтому указывается (Режим CDROM Драйвера).

Поскольку в системе Proxmox, по-видимому, нет usb_modeswitch (или актуальной конфигурации для него), она не знает, как получить доступ к реальной функциональности WiFi адаптера и видит только функциональность CD-ROM.

Однако ваш Raspberry Pi 4 имеет предустановленный пакет usb_modeswitch, который обнаруживает виртуальный USB CDROM идентификатор поставщика:продукта 0bda:1a2b и автоматически отправляет ему необходимую команду, чтобы переключить его с виртуального режима CDROM на реальную функциональность. В этом случае команда, по-видимому, является стандартной командой “извлечь” для CD-ROM.

Получив команду “извлечь”, адаптер предполагает, что либо установка драйвера Windows завершена, либо драйвер уже установлен, поэтому адаптер сбрасывает себя и теперь раскрывает свой реальный идентификатор продукта и функциональность.

Если в системе Proxmox есть каталог /etc/usb_modeswitch.d/, это означает, что фактический пакет usb_modeswitch установлен, но его конфигурация не включает информацию о идентификаторе поставщика:продукта 0bda:1a2b. Вам нужно будет просто скопировать файл 0bda:1a2b, извлеченный из /usr/share/usb_modeswitch.d/configPack.tar.gz на Raspberry Pi, в каталог /etc/usb_modeswitch.d/ системы Proxmox, чтобы сделать usb_modeswitch осведомленным о том, что делать с вашим адаптером.

После предоставления конфигурационного файла вам нужно будет отключить и снова подключить адаптер, и теперь он должен быть виден как его реальный/основной идентификатор поставщика:продукта, который равен 0bda:c820.

Если у хоста Proxmox нет usb_modeswitch и вы не можете его легко установить, вы сможете использовать основную команду eject, чтобы выполнить ее работу в этом конкретном случае. Вам нужно будет написать правило udev, которое сработает, как только будет обнаружено USB-устройство с идентификатором поставщика:продукта 0bda:1a2b и назначено устройству /dev/sr* (как это обычно бывает для устройств CDROM), и выполнить соответствующую команду eject /dev/sr<номер> для него. Этого должно быть достаточно, чтобы раскрыть реальную функциональность WiFi адаптера и его связанный идентификатор продукта, после чего вы сможете работать с устройством обычным способом.

Ответ или решение

Является ли этот Wi-Fi адаптер Realtek подделкой?

Постановка вопроса о подлинности Wi-Fi адаптера Realtek RTL8821CU требует внимательного рассмотрения различных аспектов его работы и поведения на разных системах. В данной ситуации различные идентификаторы устройства, полученные при использовании команд lsusb, вызывают сомнения в подлинности адаптера.

Анализ поведения адаптера

При подключении адаптера RTL8821CU к машинe Proxmox N100, команда lsusb возвращает следующее:

Bus 001 Device 018: ID 0bda:1a2b Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (Driver CDROM Mode)

В этом случае адаптер отображается как устройство CD-ROM с идентификатором 0bda:1a2b, что указывает на то, что он работает в режиме установки драйвера. Это типичное поведение для многих современных USB Wi-Fi адаптеров, которые сначала подключаются как устройства, содержащие драйверы для Windows. Проблема здесь заключается в том, что Proxmox, похоже, не имеет установленного usb_modeswitch или необходимой конфигурации для переключения с этого режима.

На другой стороне, на Raspberry Pi 4 адаптер распознается иначе:

Bus 001 Device 008: ID 0bda:c820 Realtek Semiconductor Corp. 802.11ac NIC

Здесь адаптер идентифицируется как 802.11ac сетевой интерфейс с идентификатором 0bda:c820, что соответствует его фактическому функционалу.

Почему этому происходит?

Проблема с тем, как адаптер определяется в разных системах, связана с управлением USB-устройствами, которое требует использование usb_modeswitch. Этот пакет отвечает за автоматическое переключение устройства из режима CD-ROM в стандартный режим работы адаптера. Raspberry Pi имеет предустановленный usb_modeswitch, который автоматически распознает виртуальный USB-CDROM и выполняет команду «вытаскивания» (eject), что приводит к сбросу адаптера и восстановлению его истинной функциональности.

В случае Proxmox, если отсутствует необходимая конфигурация для адаптера 0bda:1a2b, устройство останется в режиме CD-ROM и не сможет выполнить свои функции как Wi-Fi адаптер.

Решение проблемы

Чтобы адаптер распознался правильно на Proxmox, есть несколько вариантов:

  1. Установка usb_modeswitch: Если это возможно, рекомендуется установить пакет usb_modeswitch на Proxmox. Также необходимо добавить конфигурацию для 0bda:1a2b, чтобы он знал, что делать с вашим адаптером. Конфигурация может быть взята из Raspberry Pi, что должно решить проблему с распознаванием адаптера.

  2. Создание udev-правила: Если установка usb_modeswitch неосуществима, вы можете создать правило udev, которое будет реагировать на обнаружение устройства с идентификатором 0bda:1a2b. Это правило должно вызывать команду eject для соответствующего устройства, чтобы перевести адаптер в необходимый режим.

  3. Использование команды eject: В качестве временного решения можно вручную выполнить команду eject /dev/srX, где X — это номер вашего устройства CD-ROM, что может заставить адаптер переключиться в его нормальный режим работы.

Заключение

На основании проведенного анализа можно утверждать, что адаптер не является подделкой, а скорее просто неправильно распознается из-за отсутствия надлежащей поддержки USB-устройств в среде Proxmox. Простое устранение проблемы с помощью установки или конфигурирования usb_modeswitch позволит вашему адаптеру работать как задумывалось.

Оцените материал
Добавить комментарий

Капча загружается...