O que faz a 'opção modprobe'?

6

Em um script para habilitar um modem celular NovAtel USB em um Beagle Bone Black rodando Ubuntu, eu vi esta linha:

/sbin/modprobe option

Eu olhei para a página modprobe man, ela diz muito sobre opções (observe os s), mas nada sobre um único argumento option . Existe um módulo chamado option ou algo assim? Ou isso tem algum outro efeito colateral que eles estão provocando para configurar o modem?

    
por Travis Griggs 20.12.2013 / 20:19

1 resposta

7

Você está absolutamente certo, modprobe option tenta carregar o módulo option , controlado pelo parâmetro de configuração do kernel USB_SERIAL_OPTION .

Mais informações são encontradas nas fontes do kernel ( 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.

Como rastrear isso:

  1. Verifique se você tem um módulo do kernel (isso só funciona, se estiver habilitado na configuração do seu kernel)

    $ find /lib/modules -name option.ko
    /lib/modules/kernel/drivers/usb/serial/option.ko
    
  2. Alternativamente, você pode tentar se o módulo carregar

    # modprobe option
    # lsmod | grep option
    option                 33128  0 
    usb_wwan               13044  1 option
    usbserial              23912  2 option,usb_wwan
    
  3. Agora, você pode tentar encontrar os arquivos fonte (isso só funciona se o módulo estiver incluído nas fontes atuais do kernel)

    $ 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
    

    Você mencionou que o módulo tem algo todo com um modem USB, então o segundo jogo parece promissor.

  4. Você também pode encontrar o parâmetro de configuração do kernel

    $ 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
    

    Agora, você pode dar uma olhada em /usr/src/linux/drivers/usb/serial/Kconfig e encontrar a descrição que citei no começo.

  5. Finalmente, dê uma olhada na própria fonte ( .../drivers/usb/serial/option.c ), e voilà você encontra, entre outras coisas, a explicação do autor sobre o nome

    This driver exists because the "normal" serial driver doesn't work too well with GSM modems. Issues:

    • data loss -- one single Receive URB is not nearly enough
    • nonstandard flow (Option devices) control
    • controlling the baud rate doesn't make sense

      This driver is named "option" because the most common device it's
      used for is a PC-Card (with an internal OHCI-USB interface, behind
      which the GSM interface sits), made by Option Inc.

      Some of the "one port" devices actually exhibit multiple USB instances on the USB bus. This is not a bug, these ports are used for different device features.

por 21.12.2013 / 00:32