[devel] можно ли запретить загружать модуль ядра для конкретного девайса
Alexey V. Vissarionov
gremlin на altlinux.org
Ср Дек 7 02:24:21 MSK 2022
On 2022-12-06 19:36:19 +0700, Ilya Kurdyukov wrote:
> Замучился с этим, нигде ничего не находит. Находил тех кто
> спрашивал то же самое, и им никакого решения не предложили.
Потому что решение скорее всего и не требуется.
> Проблема такая, есть конкретный девайс:
> ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="0003"
Мудотыковский preloader, что ли? Такой?
[694454.527071] usb 5-1.4: Product: MT65xx Preloader
[694454.527074] usb 5-1.4: Manufacturer: MediaTek
[694454.590374] cdc_acm 5-1.4:1.1: ttyACM0: USB ACM device
> Для него подгружаются модули "option" и "cdc_acm", в которые это
> попало только потому что кто-то решил сделать поделку на чипе
> MediaTek.
Нет - потому, что это действительно CDC-устройство, используемое
для общения с этими SoC.
> Взяв голый чип и не добавив никаких модулей с прошивкой на плату.
> И решил загружать прошивку прямо при подключении.
Если из устройства с многомиллионными тиражами выкинуть копеечную
SPI-флешку - получится многомиллионная же экономия.
А программы паять не надо.
> А потом кто-то добавил в Linux драйвер к этому.
Не к этому, а вообще для всех устройств CDC (communication device
class) ACM (abstract control model).
И произошло это более 20 лет назад - во времена, когда MediaTek
только-только отделился от UMC.
> Но ID этого чипа общий, это ID загрузочного ROM. Используется для
> всех девайсов на таком чипе. Соответственно, это не обязательно
> GSM модем.
Разумеется. Более того, модемам полагается быть /dev/ttyUSBx, а не
/dev/ttyACMx - да и то лишь древним, которые не умеют ни CDCETHER,
ни RNDIS.
> Мне надо запретить использовать эти модули для этого ID.
Зачем?
> Не трогая всего остального, для чего эти модули могут
> подгружаться.
И для чего же? А главное - что может помешать уже загруженному
(или, в норме, вкомпилированному в ядро, чтобы дать пользователю
возможность увидеть терминал максимально рано) модулю подхватить
очередное подключенное CDC-устройство?
> И пока едниственный способ что я нашел - это кинуть "option" и
> "cdc_acm" в /etc/modprobe.d/blacklist.conf.
Если они не нужны - ну, в принципе, вполне себе решение. Пусть
корявое, зато рабочее.
> Очень плохо, что в Линукс каждый может добавить свой драйвер
> для общего устройства, что может использоваться шире, и
> испортить жизнь всем остальным кто использует устройства
> с тем же ID, и никаких решений этому я не нашел. Кроме полного
> отключения пары модулей для всех устройств.
А в чем, собственно, сложность с появлением еще одного устройства?
Его что, кто-то в усерспейсе автоматически начинает использовать?
Если да - то проблема не в ядре и не в егойных модулях, а именно в
усерспейсе.
--
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
Подробная информация о списке рассылки Devel