Что делает `modprobe option`?
В скрипте для включения сотового USB-модема NovAtel на Beagle Bone Black с Ubuntu я увидел следующую строку:
/sbin/modprobe option
Я посмотрел на modprobe
на странице руководства много говорится о параметрах (обратите внимание), но ничего о единственном числе option
аргумент. Есть ли модуль под названием option
или что-то?? Или это имеет какой-то другой побочный эффект, который они вызывают для настройки модема?
1 ответ
Вы абсолютно правы, modprobe option
пытается загрузить модуль option
управляется параметром конфигурации ядра USB_SERIAL_OPTION
,
Еще немного информации можно найти в источниках ядра (drivers/usb/serial/Kconfig
)
config USB_SERIAL_OPTION Tristate "USB-драйвер для GSM и CDMA модемов" (...) Этот драйвер также поддерживает несколько карт PCMCIA, которые имеют встроенный адаптер OHCI-USB и внутренний модем GSM. Шина USB на этих картах недоступна извне. Поддерживаемые устройства включают (некоторые из?) Те, которые сделаны: Опция, Huawei, Audiovox, Novatel Wireless или Anydata. (...) Если этот драйвер не распознает ваше устройство, он может быть доступен через драйвер FTDI_SIO.
Как отследить это:
Проверьте, есть ли у вас такой модуль ядра (он работает, только если он включен в вашей конфигурации ядра)
$ find /lib/modules -name option.ko /lib/modules/kernel/drivers/usb/serial/option.ko
Кроме того, вы можете попробовать, если модуль загружается
# modprobe option # lsmod | grep option option 33128 0 usb_wwan 13044 1 option usbserial 23912 2 option,usb_wwan
Теперь вы можете попытаться найти исходные файлы (это работает, только если модуль включен в ваши текущие исходные коды ядра)
$ find /usr/src/linux -name option.c /usr/src/linux/drivers/gpu/drm/nouveau/core/core/option.c /usr/src/linux/drivers/usb/serial/option.c
Вы упомянули, что у модуля есть кое-что с USB-модемом, поэтому второе совпадение звучит многообещающе.
Вы также можете найти параметр конфигурации ядра
$ find /usr/src/linux -name Makefile -exec grep -H option\.o '{}' \; /usr/src/linux/drivers/gpu/drm/nouveau/Makefile:nouveau-y += core/core/option.o /usr/src/linux/drivers/usb/serial/Makefile:obj-$(CONFIG_USB_SERIAL_OPTION) += option.o
Теперь вы можете взглянуть на
/usr/src/linux/drivers/usb/serial/Kconfig
и найдите описание, которое я цитировал в начале.Наконец, взглянем на сам источник (
.../drivers/usb/serial/option.c
), и вуаля вы найдете среди прочего объяснение автора имениЭтот драйвер существует, потому что "нормальный" последовательный драйвер не слишком хорошо работает с модемами GSM. Вопросы:
- потеря данных - одного приема URB недостаточно
- управление нестандартным потоком (дополнительные устройства)
контролировать скорость передачи данных не имеет смысла
Этот драйвер называется "опция", потому что это наиболее распространенное устройство
используется для PC-карты (с внутренним интерфейсом OHCI-USB, сзади
который интерфейс GSM сидит), сделанные Option Inc.Некоторые из "однопортовых" устройств фактически имеют несколько экземпляров USB на шине USB. Это не ошибка, эти порты используются для различных функций устройства.