7

В скрипте для включения сотового USB-модема NovAtel на Beagle Bone Black с Ubuntu я увидел следующую строку:

/sbin/modprobe option

Я посмотрел на справочную страницу modprobe , там много говорится о параметрах (обратите внимание на s), но ничего не говорится об аргументе единственного option . Есть ли модуль с именем option или что-то ?? Или это имеет какой-то другой побочный эффект, который они вызывают для настройки модема?

1 ответ1

8

Вы абсолютно правы, modprobe option пытается загрузить option модуля, управляемую параметром конфигурации ядра USB_SERIAL_OPTION .

Еще немного информации можно найти в исходниках ядра (drivers/usb/serial/Kconfig)

config USB_SERIAL_OPTION
        tristate "USB driver for GSM and CDMA modems"
        (...)
          This driver also supports several PCMCIA cards which have a
        built-in OHCI-USB adapter and an internally-connected GSM modem.
        The USB bus on these cards is not accessible externally.
          Supported devices include (some of?) those made by:
        Option, Huawei, Audiovox, Novatel Wireless, or Anydata.
        (...)
          If this driver doesn't recognize your device,
        it might be accessible via the FTDI_SIO driver.

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

  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. Это не ошибка, эти порты используются для различных функций устройства.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .