
在運行 Ubuntu 的 Beagle Bone Black 上啟用 NovAtel USB 蜂窩數據機的腳本中,我看到了這一行:
/sbin/modprobe option
我查看了modprobe
手冊頁,它說了很多關於選項的內容(注意 s),但沒有提到單一option
參數。有一個叫option
什麼的模組嗎?或者他們在設定調變解調器時會產生其他副作用?
答案1
你是絕對正確的,確實嘗試載入由核心配置參數控制的modprobe option
模組。option
USB_SERIAL_OPTION
更多資訊可在核心原始碼 ( drivers/usb/serial/Kconfig
)中找到
配置USB_SERIAL_OPTION 三態“GSM 和 CDMA 數據機的 USB 驅動程式” (...) 該驅動程式還支援多個 PCMCIA 卡,這些卡具有 內建 OHCI-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 數據機有關,因此第二個匹配聽起來很有希望。
您也可以找到內核配置參數
$ 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
),並且瞧你發現除其他外作者對名字的解釋此驅動程式的存在是因為「普通」序列驅動程式無法很好地與 GSM 數據機配合使用。問題:
- 資料遺失-單一接收 URB 還不夠
- 非標準流量(選用配備)控制
控制波特率沒有意義
該驅動程式被命名為“option”,因為它最常用的設備
是由 Option Inc. 製造的 PC 卡(具有內部 OHCI-USB 接口,後面
是 GSM 接口)。一些「單一連接埠」裝置實際上在 USB 總線上展示了多個 USB 實例。這不是一個錯誤,這些連接埠用於不同的設備功能。