Was macht die „Modprobe-Option“?

Was macht die „Modprobe-Option“?

In einem Skript zum Aktivieren eines NovAtel USB-Mobilfunkmodems auf einem Beagle Bone Black mit Ubuntu habe ich diese Zeile gesehen:

/sbin/modprobe option

Ich habe mir die modprobeManpage angesehen, dort steht viel über Optionen (beachten Sie das s), aber nichts über ein einzelnes option Argument. Gibt es da ein Modul namens optionoder so?? Oder hat das irgendeinen anderen Nebeneffekt, den sie beim Einrichten des Modems hervorrufen?

Antwort1

Sie haben absolut Recht, modprobe optiones wird versucht, das Modul zu laden option, gesteuert durch die Kernel-Konfigurationsparameter USB_SERIAL_OPTION.

Weitere Informationen finden sich in den Kernelquellen ( drivers/usb/serial/Kconfig)

Konfiguration USB_SERIAL_OPTION
        tristate „USB-Treiber für GSM- und CDMA-Modems“
        (...)
          Dieser Treiber unterstützt auch mehrere PCMCIA-Karten, die über eine
        eingebauter OHCI-USB-Adapter und ein intern angeschlossenes GSM-Modem.
        Der USB-Bus dieser Karten ist von außen nicht zugänglich.
          Zu den unterstützten Geräten gehören (einige?) die von:
        Option, Huawei, Audiovox, Novatel Wireless oder Anydata.
        (...)
          Wenn dieser Treiber Ihr Gerät nicht erkennt,
        Möglicherweise ist der Zugriff über den FTDI_SIO-Treiber möglich.

So finden Sie es heraus:

  1. Überprüfen Sie, ob Sie ein solches Kernelmodul haben (das funktioniert nur, wenn es in Ihrer Kernelkonfiguration aktiviert ist)

    $ find /lib/modules -name option.ko
    /lib/modules/kernel/drivers/usb/serial/option.ko
    
  2. Alternativ können Sie versuchen, ob das Modul geladen wird

    # modprobe option
    # lsmod | grep option
    option                 33128  0 
    usb_wwan               13044  1 option
    usbserial              23912  2 option,usb_wwan
    
  3. Jetzt können Sie versuchen, die Quelldateien zu finden (das funktioniert nur, wenn das Modul in Ihren aktuellen Kernelquellen enthalten ist)

    $ 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
    

    Sie haben erwähnt, dass das Modul etwas mit einem USB-Modem zu tun hat, daher klingt die zweite Übereinstimmung vielversprechend.

  4. Sie finden auch den Kernel-Konfigurationsparameter

    $ 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
    

    Nun können Sie einen Blick darauf werfen /usr/src/linux/drivers/usb/serial/Kconfigund die Beschreibung finden, die ich am Anfang zitiert habe.

  5. Schauen Sie sich zum Schluss noch den Quelltext selbst an ( .../drivers/usb/serial/option.c) undvoilàSie finden unter anderemdie Erklärung des Autors zum Namen

    Dieser Treiber existiert, weil der „normale“ serielle Treiber mit GSM-Modems nicht so gut funktioniert. Probleme:

    • Datenverlust -- ein einziger Receive URB reicht bei weitem nicht aus
    • Nicht standardmäßige Durchflussregelung (optionale Geräte)
    • Die Steuerung der Baudrate macht keinen Sinn

      Dieser Treiber heißt „Option“, weil das am häufigsten verwendete Gerät
      eine PC-Karte (mit einer internen OHCI-USB-Schnittstelle, hinter
      der sich die GSM-Schnittstelle befindet) von Option Inc. ist.

      Einige der „Ein-Port“-Geräte weisen tatsächlich mehrere USB-Instanzen auf dem USB-Bus auf. Dies ist kein Fehler, diese Ports werden für unterschiedliche Gerätefunktionen verwendet.

verwandte Informationen