¿Qué hace la "opción modprobe"?

¿Qué hace la "opción modprobe"?

En un script para habilitar un módem celular USB NovAtel en un Beagle Bone Black con Ubuntu, vi esta línea:

/sbin/modprobe option

Miré la modprobepágina de manual, dice mucho sobre opciones (tenga en cuenta la s), pero nada sobre un option argumento singular. ¿Hay algún módulo llamado optiono algo así? ¿O eso tiene algún otro efecto secundario que están provocando al configurar el módem?

Respuesta1

Tienes toda la razón, modprobe optionintenta cargar el módulo option, controlado por el parámetro de configuración del kernel USB_SERIAL_OPTION.

Más información se encuentra en las fuentes del kernel ( drivers/usb/serial/Kconfig)

configuración USB_SERIAL_OPTION
        trieste "Controlador USB para módems GSM y CDMA"
        (...)
          Este controlador también admite varias tarjetas PCMCIA que tienen una
        Adaptador OHCI-USB incorporado y un módem GSM conectado internamente.
        No se puede acceder al bus USB de estas tarjetas desde el exterior.
          Los dispositivos compatibles incluyen (¿algunos de?) aquellos fabricados por:
        Opción, Huawei, Audiovox, Novatel Wireless o Anydata.
        (...)
          Si este controlador no reconoce su dispositivo,
        es posible que se pueda acceder a él a través del controlador FTDI_SIO.

Cómo rastrear esto:

  1. Verifique si tiene dicho módulo de kernel (esto solo funciona si está habilitado en la configuración de su kernel)

    $ find /lib/modules -name option.ko
    /lib/modules/kernel/drivers/usb/serial/option.ko
    
  2. Alternativamente, puede probar si el módulo se carga

    # modprobe option
    # lsmod | grep option
    option                 33128  0 
    usb_wwan               13044  1 option
    usbserial              23912  2 option,usb_wwan
    
  3. Ahora, puede intentar encontrar los archivos fuente (esto sólo funciona si el módulo está incluido en las fuentes actuales de su 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
    

    Mencionaste que el módulo tiene algo que ver con un módem USB, por lo que la segunda coincidencia parece prometedora.

  4. También puede encontrar el parámetro de configuración del 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
    

    Ahora puedes echar un vistazo /usr/src/linux/drivers/usb/serial/Kconfigy encontrar la descripción que cité al principio.

  5. Finalmente, eche un vistazo a la fuente misma ( .../drivers/usb/serial/option.c) yvoiláencuentras entre otras cosasla explicación del autor del nombre

    Este controlador existe porque el controlador serie "normal" no funciona muy bien con los módems GSM. Asuntos:

    • Pérdida de datos: una sola URB de recepción no es suficiente
    • control de flujo no estándar (dispositivos opcionales)
    • controlar la velocidad en baudios no tiene sentido

      Este controlador se denomina "opción" porque el dispositivo más común
      para el que se utiliza es una tarjeta de PC (con una interfaz OHCI-USB interna, detrás de
      la cual se encuentra la interfaz GSM), fabricada por Option Inc.

      Algunos de los dispositivos de "un puerto" en realidad exhiben múltiples instancias USB en el bus USB. Esto no es un error, estos puertos se utilizan para diferentes funciones del dispositivo.

información relacionada