USB-модемы Huawei (например, E3372, E8372, B315, E5576) часто определяются в системе как CD-накопитель или флеш-накопитель вместо сетевого адаптера или COM-порта. Это стандартное поведение «из коробки»: устройство загружает виртуальный привод с драйверами и утилитой Mobile Partner или веб-интерфейсом HiLink. Если переключение в рабочий режим не произошло автоматически, операционная система видит только раздел хранения данных.

Проблема возникает из-за отсутствия или сбоя механизма usb_modeswitch (в Linux) или службы автоматического запуска драйверов (в Windows). В некоторых случаях виноваты поврежденные драйверы чипсета USB, настройки энергосбережения порта или прошивка модема, застрявшая в режиме Mass Storage. Ниже разберем диагностику и исправление для основных платформ.

Почему модем застревает в режиме накопителя

Архитектура USB-модемов Huawei предполагает два логических устройства в одном корпусе: виртуальный CD-ROM (ISO-образ с драйверами) и сам модем (CDC Ethernet, RNDIS или последовательные порты). При подключении питания контроллер модема сначала выставляет идентификаторы idVendor=12d1 и idProduct из диапазона накопителей (например, 14fe, 1506, 1f01). После получения специальной команды «переключения» (SCSI-команда или Control Message) модем меняет PID на рабочий (например, 14db, 15c1, 155b) и переподключается к шине USB уже как модем.

Если эта команда не ушла или модем её проигнорировал, в Диспетчере устройств Windows вы увидите «CD-ROM Drive» или «Mass Storage Device» без сетевых адаптеров. В Linux команда lsusb покажет только один интерфейс с классом 08 (Mass Storage), а dmesg будет заполнен сообщениями о подключении SCSI-накопителя. Частые причины: отключенная служба ShellHWDetection в Windows, отсутствие пакета usb-modeswitch в Linux, неисправный USB-кабель или порт с недопитанием.

⚠️ Внимание: Не пытайтесь отформатировать или удалить разделы на виртуальном CD-ROM модема через «Управление дисками». Это не поможет переключить режим, но может повредить загрузчик восстановления прошивки (Recovery), после чего модем придется прошивать через короткое замыкание тестовых точек на плате.

Исправление в Windows: от Диспетчера устройств до реестра

Начните с проверки службы ShellHWDetection (Определение оборудования оболочкой). Она отвечает за автозапуск с носителей и часто инициирует переключение модема. Нажмите Win+R, введите services.msc, найдите службу, установите тип запуска «Автоматически» и запустите её. Переподключите модем. Если не помогло, откройте Диспетчер устройств (devmgmt.msc), разверните «Контроллеры USB» и «Накопители». Найдите устройство с VID 12d1, нажмите ПКМ → «Обновить драйвер» → «Выбрать из списка» → «Накопители» → «Устройство массового хранения USB». Это заставит систему пересоздать стек USB и может триггерить переключение.

Для модемов серии E3372h, E8372h (HiLink) рабочий режим — это CDC Ethernet (видит как сетевую карту). Для стиков E3372s, E3131 (Stick) — это RAS/NDIS или последовательные порты (COM). Если модем определился как накопитель, но в «Сетевых адаптерах» появился «Remote NDIS based Internet Sharing Device» — переключение прошло успешно, просто не установилась утилита. Зайдите в браузере на 192.168.8.1 для настройки HiLink.

☑️ Чек-лист быстрой диагностики в Windows

Выполнено: 0 / 6

Если стандартные методы не сработали, можно принудительно запретить монтирование виртуального CD-ROM через реестр. Создайте параметр DisableRemovableDrive типа DWORD со значением 1 в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cdrom. После перезагрузки Windows не будет монтировать ISO-образ, и модем быстрее перейдет в рабочий режим. Этот метод не работает на модемах с прошивкой Stick, требующих ручного AT-команды AT^SETPORT.

📊 Какая модель модема Huawei у вас вызывает проблему?
E3372h / E8372h (HiLink)
E3372s / E3131 (Stick)
B310 / B315 / B525 (Роутеры)
E5576 / E5788 (Мобильные роутеры)
Другая модель

Настройка переключения режимов в Linux (usb_modeswitch)

В современных дистрибутивах (Ubuntu 22.04+, Debian 12, Fedora, Arch) пакет usb-modeswitch и правила udev обычно уже установлены. Выполните lsusb и найдите строку с ID 12d1:. Если PID соответствует режиму накопителя (например, 14fe, 1f01, 1506), запустите переключение вручную: sudo usb_modeswitch -v 12d1 -p 14fe -K (замените PID на ваш). Флаг -K отправляет стандартную SCSI-команду Eject. После этого снова выполните lsusb — PID должен смениться на рабочий (например, 15c1 для HiLink или 1001 для Stick).

Если переключение прошло успешно, но сети нет, проверьте ip a на наличие интерфейса eth1, enx... или wwan0. Для HiLink-модемов IP выдается по DHCP: sudo dhclient enx.... Для Stick-модемов настройте соединение через ModemManager / NetworkManager (nmcli или GUI). Убедитесь, что пакет modemmanager установлен и служба активна: systemctl status ModemManager.

Подробности по созданию правила udev для постоянного переключения

Создайте файл /etc/udev/rules.d/15-huawei-modem.rules с содержимым:

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", ATTR{idProduct}=="14fe", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 14fe -K"

Замените 14fe на PID вашего модема в режиме накопителя. Затем выполните:

sudo udevadm control --reload-rules && sudo udevadm trigger

Теперь модем будет переключаться автоматически при каждом подключении.

⚠️ Внимание: На некоторых ядрах Linux (5.15–6.1) модуль option или cdc_ether может не привязаться к интерфейсу после переключения, если модем сообщает нестандартные дескрипторы. В таком случае помогает добавление usbcore.autosuspend=-1 в параметры ядра GRUB (файл /etc/default/grub, строка GRUB_CMDLINE_LINUX_DEFAULT) для отключения автоподвески USB.

Модемы Huawei делятся на две линейки прошивок: HiLink (веб-интерфейс, работа как сетевая карта CDC Ethernet/RNDIS) и Stick (традиционный модем с AT-командами, RAS/NDIS, COM-порты). На клейме это часто указано суффиксом: h — HiLink, s — Stick. HiLink-модемы (E3372h-153, E8372h-320) после переключения выдают IP-адрес по DHCP и управляются через браузер. Stick-модемы (E3372s-153, E3131) требуют настройки PPP/NDIS-соединения в ОС или роутере.

Если вы прошили HiLink-модем на Stick-прошивку (или наоборот) без смены PID/VID через AT^SETPORT, устройство может вечно оставаться в режиме накопителя или определяться как неизвестное USB-устройство. Восстановление возможно через режим Download Mode (зажим кнопки Reset при вставке) и утилиту Huawei Firmware Finder / DC-Unlocker. Будьте осторожны: неправильная прошивка превращает модем в «кирпич», ожидающий только замыкания точек на плате.

💡

Для Stick-модемов (E3372s, E3131) в Windows можно зафиксировать режим «Только модем» командой AT^SETPORT="A1,A2;1,2,3,7,A1,A2" через терминал (PuTTY, COM-порт). Это отключит виртуальный CD-ROM и кардридер навсегда, ускоряя инициализацию. Для HiLink эта команда не применима.

💡

HiLink = сетевая карта (DHCP, веб-интерфейс 192.168.8.1). Stick = COM-порты + NDIS/RAS (требует настройки соединения в ОС). Перепрошивка меняет логику определения устройства системой.

Таблица типичных PID моделей Huawei и их режимов

Модель (пример) PID в режиме накопителя (Mass Storage) PID в рабочем режиме (HiLink / Stick) Тип прошивки
E3372h, E8372h 1f01, 14fe 14db (CDC Ethernet / RNDIS) HiLink
E3372s, E3131 14fe, 1506 1506 / 1001 (NDIS + COM) Stick
B310, B315, B525 14fe (редко) 15c1 (RNDIS / CDC Ethernet) HiLink (Роутер)
E5576, E5788 1577, 1f01 1577 (RNDIS) / 15c1 HiLink (MiFi)
E8372h-320 (Мегафон M150-2) 1f01 14db HiLink

Питание, кабели и физические неисправности

Недостаточное питание — частая скрытая причина. USB 2.0 порт выдает максимум 500 мА, а модемы категории 4/6 (LTE Cat.4/6) в пике потребляют 800–1200 мА при передаче. Если модем питается от пассивного удлинителя или переднего порта системного блока, контроллер USB может не выдать нужный ток, модем сбросится в начальное состояние (накопитель) и зависнет там. Используйте короткий качественный кабель с ферритовым кольцом или активный USB-хаб с внешним блоком питания. На ноутбуках отключите в BIOS/UEFI настройку «USB Selective Suspend» или «USB Power Saving».

Проверьте контакты USB-разъема модема: окисление или механическое ослабление приводит к потере данных линий D+/D-, при этом питание (VBUS/GND) остается. Система видит устройство как «Unknown USB Device» или накопитель (только питание на флеш-контроллере). Аккуратно почистите контакты изопропиловым спиртом. Если модем падал или был во влаге, может выйти из строя контроллер USB PHY внутри процессора HiSilicon — тогда только замена платы.

⚠️ Внимание: Не используйте USB-удлинители длиной более 1 метра без активного повторителя сигнала. Увеличение емкости линии и падение напряжения гарантированно вызывают ошибки протокола USB 2.0 High Speed (480 Мбит/с), из-за чего модем не получает команду переключения режима и остается накопителем.

Часто задаваемые вопросы (FAQ)

Модем Huawei E3372 определяется как CD-ROM, но в Диспетчере устройств нет ни одного COM-порта. Что делать?

Скорее всего, у вас версия HiLink (suffix h). Она не создает COM-порты, а сразу поднимает сетевой интерфейс (CDC Ethernet). Проверьте «Сетевые адаптеры» — должен появиться «Remote NDIS based Internet Sharing Device» или «Huawei Mobile Broadband Network Adapter». Если есть — зайдите в браузере на 192.168.8.1. Если сетевого адаптера нет — обновите драйвер чипсета USB материнской платы и службу ShellHWDetection.

Можно ли навсегда отключить виртуальный CD-ROM на модеме HiLink (E3372h)?

Официальными средствами — нет. Прошивка HiLink не поддерживает AT-команду AT^SETPORT для отключения Mass Storage. Виртуальный CD-ROM нужен для восстановления прошивки через веб-интерфейс (режим Recovery). На Stick-версиях (s) это делается командой AT^SETPORT="A1,A2;1,2,3,7,A1,A2" (оставляет только модем, сеть, диаг, GPS).

В Linux модем переключается в рабочий PID, но NetworkManager не создает соединение. В чем дело?

Проверьте, не заблокирован ли модем rfkill (rfkill list). Убедитесь, что ModemManager видит модем: mmcli -L. Если модем в списке, создайте соединение: nmcli con add type gsm ifname "*" con-name "Huawei" apn "internet" (замените APN на ваш). Для HiLink-модемов не нужен ModemManager — настройте DHCP на интерфейсе enx... или eth1.

После неудачной прошивки модем вообще не определяется (нет в lsusb / Диспетчере). Как вернуть к жизни?

Это режим «кирпича». Нужен Download Mode: разберите корпус, найдите на плате точку BOOT (или два контакта рядом с USB-разъемом, помеченные как короткое замыкание). Замкните их пинцетом, вставьте модем в ПК, через 3 сек разомкните. В Windows появится «Huawei Download Gadget» (VID 12d1, PID 1c0b или похожий). Прошейте официальную прошивку через Huawei Firmware Finder или DC-Unlocker.

Где скачать актуальные драйверы и прошивки для конкретной модели?

Официальный портал поддержки Huawei (consumer.huawei.com/ru/support) часто скрывает файлы для модемов. Надежнее использовать сообщество 4pda.to (разделы по моделям) или ресурс https://huawei-gid.vercel.app, где собраны прямые ссылки на драйверы Mobile Partner, HiLink Assistant, прошивки Stick/HiLink и инструкции по AT-командам для конкретных PID/VID.