Ubuntuを実行しているBeagleBoneBlackでNovAtelUSBセルモデムを有効にするスクリプトで、次の行が表示されました。
/sbin/modprobe option
modprobe
のマニュアルページを見ると、オプションについて多くのことが書かれていますが(sに注意してください)、単一のoption
引数については何も書かれていません。 option
というモジュールはありますか?それとも、モデムをセットアップするために彼らが引き出している他の副作用がありますか?
あなたは絶対に正しいです、modprobe option
はカーネル設定パラメータUSB_SERIAL_OPTION
によって制御されるモジュールoption
をロードしようとします。
さらにいくつかの情報がカーネルソースにあります(drivers/usb/serial/Kconfig
)
構成USB_SERIAL_OPTION トライステート「GSMおよびCDMAモデム用のUSBドライバー」 (...) このドライバーは、 内蔵OHCI-を備えたいくつかのPCMCIAカードもサポートします。 USBアダプタと内部接続されたGSMモデム。 これらのカードのUSBバスは外部からアクセスできません。 サポートされているデバイスには、次のものが含まれます: オプション、 Huawei、Audiovox、Novatel Wireless、またはAnydata。 (...) このドライバがデバイスを認識しない場合、 FTDI_SIOドライバを介してアクセスできる可能性があります。
そのようなカーネルモジュールがあるかどうかを確認します(これは、カーネル構成で有効になっている場合にのみ機能します)
$ find /lib/modules -name option.ko
/lib/modules/kernel/drivers/usb/serial/option.ko
または、モジュールが読み込まれるかどうかを試すことができます
# modprobe option
# lsmod | grep option
option 33128 0
usb_wwan 13044 1 option
usbserial 23912 2 option,usb_wwan
これで、ソースファイルを見つけることができます(これは、モジュールが現在のカーネルソースに含まれている場合にのみ機能します)
$ 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モデムと関係があるので、2番目の一致は有望に聞こえます。
カーネル構成パラメーターもあります
$ 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
を見て、最初に引用した説明を見つけることができます。
最後に、ソース自体(.../drivers/usb/serial/option.c
)、およびvoilàなどを見てください著者の説明名前
このドライバが存在するのは、「通常の」シリアルドライバがGSMモデムではうまく機能しないためです。問題:
- データ損失-1つの受信URBだけでは十分ではありません
- 非標準フロー(オプションデバイス)制御
ボーレートを制御することは意味がありません
このドライバは、最も一般的なデバイスであるため、「オプション」と呼ばれます
に使用されるのはPCカードです(内部OHCI-USBインターフェイス付き、背後にあります
GSMインターフェースが置かれている)、Option Inc.製一部の「1ポート」デバイスは、実際にはUSBバス上に複数のUSBインスタンスを示します。これはバグではありません。これらのポートはさまざまなデバイス機能に使用されます。