Что делает `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.

Как отследить это:

  1. Проверьте, есть ли у вас такой модуль ядра (он работает, только если он включен в вашей конфигурации ядра)

    $ find /lib/modules -name option.ko
    /lib/modules/kernel/drivers/usb/serial/option.ko
    
  2. Кроме того, вы можете попробовать, если модуль загружается

    # modprobe option
    # lsmod | grep option
    option                 33128  0 
    usb_wwan               13044  1 option
    usbserial              23912  2 option,usb_wwan
    
  3. Теперь вы можете попытаться найти исходные файлы (это работает, только если модуль включен в ваши текущие исходные коды ядра)

    $ 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-модемом, поэтому второе совпадение звучит многообещающе.

  4. Вы также можете найти параметр конфигурации ядра

    $ 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 и найдите описание, которое я цитировал в начале.

  5. Наконец, взглянем на сам источник (.../drivers/usb/serial/option.c), и вуаля вы найдете среди прочего объяснение автора имени

    Этот драйвер существует, потому что "нормальный" последовательный драйвер не слишком хорошо работает с модемами GSM. Вопросы:

    • потеря данных - одного приема URB недостаточно
    • управление нестандартным потоком (дополнительные устройства)
    • контролировать скорость передачи данных не имеет смысла

      Этот драйвер называется "опция", потому что это наиболее распространенное устройство
      используется для PC-карты (с внутренним интерфейсом OHCI-USB, сзади
      который интерфейс GSM сидит), сделанные Option Inc.

      Некоторые из "однопортовых" устройств фактически имеют несколько экземпляров USB на шине USB. Это не ошибка, эти порты используются для различных функций устройства.

Другие вопросы по тегам