
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 modprobe
Manpage angesehen, dort steht viel über Optionen (beachten Sie das s), aber nichts über ein einzelnes option
Argument. Gibt es da ein Modul namens option
oder so?? Oder hat das irgendeinen anderen Nebeneffekt, den sie beim Einrichten des Modems hervorrufen?
Antwort1
Sie haben absolut Recht, modprobe option
es 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:
Ü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
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
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.
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/Kconfig
und die Beschreibung finden, die ich am Anfang zitiert habe.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 NamenDieser 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.