「modprobe 選項」有什麼作用?

「modprobe 選項」有什麼作用?

在運行 Ubuntu 的 Beagle Bone Black 上啟用 NovAtel USB 蜂窩數據機的腳本中,我看到了這一行:

/sbin/modprobe option

我查看了modprobe手冊頁,它說了很多關於選項的內容(注意 s),但沒有提到單一option 參數。有一個叫option什麼的模組嗎?或者他們在設定調變解調器時會產生其他副作用?

答案1

你是絕對正確的,確實嘗試載入由核心配置參數控制的modprobe option模組。optionUSB_SERIAL_OPTION

更多資訊可在核心原始碼 ( drivers/usb/serial/Kconfig)中找到

配置USB_SERIAL_OPTION
        三態“GSM 和 CDMA 數據機的 USB 驅動程式”
        (...)
          該驅動程式還支援多個 PCMCIA 卡,這些卡具有
        內建 OHCI-USB 轉接器和內部連接的 GSM 數據機。
        這些卡上的 USB 總線無法從外部存取。
          支援的設備包括(部分?)由以下公司製造的設備:
        選項、Huawei、Audiovox、Novatel Wireless 或 Anydata。
        (...)
          如果該驅動程式無法識別您的設備,
        它可以透過 FTDI_SIO 驅動程式存取。

如何追蹤這一點:

  1. 檢查您是否有這樣的核心模組(只有在您的核心配置中啟用它才有效)

    $ find /lib/modules -name option.ko
    /lib/modules/kernel/drivers/usb/serial/option.ko
    
  2. 或者,您可以嘗試模組是否加載

    # modprobe option
    # lsmod | grep option
    option                 33128  0 
    usb_wwan               13044  1 option
    usbserial              23912  2 option,usb_wwan
    
  3. 現在,您可以嘗試查找原始檔案(僅當該模組包含在當前的核心原始碼中時才有效)

    $ 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 數據機有關,因此第二個匹配聽起來很有希望。

  4. 您也可以找到內核配置參數

    $ 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並找到我一開始引用的描述。

  5. 最後,看一下原始碼本身(.../drivers/usb/serial/option.c),並且你發現除其他外作者對名字的解釋

    此驅動程式的存在是因為「普通」序列驅動程式無法很好地與 GSM 數據機配合使用。問題:

    • 資料遺失-單一接收 URB 還不夠
    • 非標準流量(選用配備)控制
    • 控制波特率沒有意義

      該驅動程式被命名為“option”,因為它最常用的設備
      是由 Option Inc. 製造的 PC 卡(具有內部 OHCI-USB 接口,後面
      是 GSM 接口)。

      一些「單一連接埠」裝置實際上在 USB 總線上展示了多個 USB 實例。這不是一個錯誤,這些連接埠用於不同的設備功能。

相關內容