在运行 Ubuntu 的 Beagle Bone Black 上启用 NovAtel USB 蜂窝调制解调器的脚本中,我看到了这一行:
/sbin/modprobe option
Run Code Online (Sandbox Code Playgroud)
我查看了modprobe手册页,它说了很多关于选项的内容(注意 s),但没有关于单一option 论点。有没有叫的模块之类的option??或者这对他们设置调制解调器是否有其他副作用?
mpy*_*mpy 11
您说得对,modprobe option确实尝试加载option由内核配置参数控制的模块USB_SERIAL_OPTION。
在内核源代码中可以找到更多信息 ( drivers/usb/serial/Kconfig)
配置 USB_SERIAL_OPTION
三态“用于 GSM 和 CDMA 调制解调器的 USB 驱动程序”
(……)
该驱动程序还支持多种具有
内置 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
Run Code Online (Sandbox Code Playgroud)或者,您可以尝试是否加载模块
# modprobe option
# lsmod | grep option
option 33128 0
usb_wwan 13044 1 option
usbserial 23912 2 option,usb_wwan
Run Code Online (Sandbox Code Playgroud)现在,您可以尝试查找源文件(这仅在模块包含在您当前的内核源代码中时才有效)
$ 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
Run Code Online (Sandbox Code Playgroud)
您提到过,该模块与 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
Run Code Online (Sandbox Code Playgroud)
现在,您可以查看/usr/src/linux/drivers/usb/serial/Kconfig并找到我在开头引用的描述。
最后,看看源本身(.../drivers/usb/serial/option.c),和瞧你除其他事项外找到了作者的名字的解释
之所以存在此驱动程序,是因为“普通”串行驱动程序与 GSM 调制解调器不能很好地配合使用。问题:
- 数据丢失——单个接收 URB 还不够
- 非标准流量(可选设备)控制
控制波特率没有意义
这个驱动程序被命名为“option”,因为它最常用的设备
是
由 Option Inc. 制造的 PC 卡(带有内部 OHCI-USB 接口,GSM 接口位于其后面)。一些“单端口”设备实际上在 USB 总线上表现出多个 USB 实例。这不是错误,这些端口用于不同的设备功能。
| 归档时间: |
|
| 查看次数: |
7097 次 |
| 最近记录: |