Была проблема: после гибернации ноутбука (Lenovo X1 Yoga Gen 6), не запускался модем (Quectel EM120R-GL). Точнее, не происходил FCC-unlock модема.
Потратил кучу времени + нервов.
Удалось решить проблему через rfkill:
rfkill block wwan
sleep 2
rfkill unblock wwan
sleep 10
systemctl restart ModemManager
(Засунул скрипт на основе этих команд в /usr/lib/systemd/system-sleep/)
Благодарю нейронку (DeepSeek) за поиск решения.
Надеюсь, кому-то это сэкономит вечер. Возможно, решение подойдёт для других модемов.
Окружение:
- Дистрибутив: Debian 13 (trixie)
- Ядро: 7.1.8+deb13-amd64 (backports)
- ModemManager: 1.24
- libmbim: 1.32
- libqmi: 1.36
- Ноутбук: Lenovo ThinkPad X1 Yoga Gen 6
- Модем: Quectel EM120R-GL, PCI 1eac:1001, Subsystem 1eac:2001
На всякий случай запишу действия, которые не помогли:
- mbimcli –quectel-set-radio-state=on (с –device-open-proxy и без). Команда принимается (Status = 0), но SwRadioState остаётся 0;
- Перезагрузка модуля mhi_pci_generic;
- PCIe reset через sysfs (echo 1 > …/reset);
- Удаление + rescan устройства (remove + rescan);
- Симлинк FCC-unlock в /etc/ModemManager/fcc-unlock.d/. MM 1.18+ не вызывает эти скрипты автоматически;
- lenovo-fccunlock из репозитория Ubuntu. Получаю «DPR_Fcc_unlock_service - error: couldn’t find modem»;
- Сборка fcc-unlock.c + mbim2sar.so. FCC unlock completed successfully, но состояние не меняется.




