GSM 调制解调器不创建 /dev/ttyUSB 文件

GSM 调制解调器不创建 /dev/ttyUSB 文件

我安装了坎内尔在服务器中,我想使用 GSM 3G USB 调制解调器发送/接收 SMS 消息,如部分所述短信中心 > GSM 调制解调器Kannel 用户指南。

我已经在我的笔记本上成功安装、配置和测试了 Kannel。

当我将调制解调器插入笔记本电脑时,/dev/ttyUSB0 会出现一个名为的设备。它充当串行端口,向调制解调器发送命令。

我必须将此设备放入 Kannel 配置文件中。

经过一些测试,我决定在生产服务器中安装 Kannel。服务器运行Linux虚拟服务器,我的任务是在 主持人和 PlaySMS 之一客人,它运行 Apache。

问题是我找不到任何与ttyUSB0我的机器中创建的设备类似的设备(据我所知,在所有普通的 Linux 机器中)。

以下是一些诊断命令。使用的调制解调器不是同一型号,但我已经在我的笔记本上测试了 Sierra 308,它也可以工作。

我的笔记本 - Arch Linux

uname -a:

Linux twoflower 3.4.9-1-ARCH #1 SMP PREEMPT Wed Aug 15 18:11:01 UTC 2012 i686 GNU/Linux

dmesg当我插入调制解调器时(华为 156B):

[35328.849886] usb 1-2: new high-speed USB device number 12 using ehci_hcd
[35329.007281] scsi9 : usb-storage 1-2:1.2
[35329.010054] scsi10 : usb-storage 1-2:1.3
[35329.301153] usbcore: registered new interface driver usbserial
[35329.302155] usbcore: registered new interface driver usbserial_generic
[35329.303064] USB Serial support registered for generic
[35329.303221] usbserial: USB Serial Driver core
[35329.368043] usbcore: registered new interface driver option
[35329.368960] USB Serial support registered for GSM modem (1-port)
[35329.369332] option 1-2:1.0: GSM modem (1-port) converter detected
[35329.377484] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[35329.377567] option 1-2:1.1: GSM modem (1-port) converter detected
[35329.378930] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[35330.013635] scsi 9:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31
PQ: 0 ANSI: 2
[35330.019275] scsi 10:0:0:0: Direct-Access     HUAWEI   MMC Storage      2.31
PQ: 0 ANSI: 2
[35330.028997] sd 10:0:0:0: [sdb] Attached SCSI removable disk
[35330.214473] sr0: scsi-1 drive
[35330.214484] cdrom: Uniform CD-ROM driver Revision: 3.20
[35330.216603] sr 9:0:0:0: Attached scsi CD-ROM sr0

服务器 - Debian Lenny

uname -a:

Linux macunaima 2.6.26-1-vserver-amd64 #1 SMP Fri Mar 13 20:19:13 UTC 2009 x86_64 GNU/Linux

dmesg当我插入调制解调器时(Sierra 308):

  [    3.246112] usb 8-4: new high speed USB device using ehci_hcd and address 2
  [    3.381966] usb 8-4: config 1 has an invalid interface number: 9 but
  max is 5
  [    3.382076] usb 8-4: config 1 has an invalid interface number: 7 but
  max is 5
  [    3.382184] usb 8-4: config 1 has no interface number 2
  [    3.382285] usb 8-4: config 1 has no interface number 5
  [    3.384576] usb 8-4: configuration #1 chosen from 1 choice
  [    3.389070] usb 8-4: New USB device found, idVendor=0f3d,
  idProduct=68a3
  [    3.389070] usb 8-4: New USB device strings: Mfr=3, Product=2,
  SerialNumber=4
  [    3.389070] usb 8-4: Product: USB 308
  [    3.389070] usb 8-4: Manufacturer: Sierra Wireless, Incorporated
  [    3.389070] usb 8-4: SerialNumber: 353354045586405

lsusb:

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 002: ID 0f3d:68a3 Airprime, Incorporated
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

之前的问题

我在这里发现的唯一一个具有类似问题的先前问题是如何在 /dev 中没有条目的情况下访问 USB 串行端口?

在他的情况下,dmesg说这ttyUSB0是被创建的,这在我的情况下不会发生。

无论如何,我已经尝试了那里发布的解决方案,用于mknod手动创建设备:

for i in 0 1 2 3 4 5 6 7 8 9; do
    sudo mknod /dev/ttyUSB$i c 188 $i
done

我创建了所有这些设备,因为lsusb说设备已插入 Bus 008 Device 002

它不起作用。我用 测试了它picocom,它说(对于所有这些设备,不仅是ttyUSB0):

$ picocom -
FATAL: cannot open /dev/ttyUSB0: No such device or address

在我的笔记本中,picocom工作正常:

$ picocom -b 9600 /dev/ttyUSB0
Terminal ready
AT                      # my input
OK

答案1

我同意@Renan:看来这个问题已在较新的内核中得到解决。 (LKML 上就有这样一个帖子。

关键错误就在这invalid interface number一个。这意味着 USB 驱动程序可以看到该设备,但它以驱动程序未预料到的方式对其功能(接口)进行编号,并且无法应对。通过谷歌搜索,您可以找到一些案例,人们正在修复内核中的弱点以应对这些较新的设备及其奇怪的接口编号行为。

我对此不是 100% 确定,因为我找不到明确的文档来说明乱序接口编号错误,或者内核 xyz 中的所有 USB 设备都已修复它似乎是更多的是打地鼠某种开发努力。

无论如何,升级服务器上的内核都不是一件容易的事。我会首先尝试一个中间步骤来检查假设:将服务器版本的 Debian 放入虚拟机中,制作快照,在那里升级内核,然后查看升级后是否会看到 USB 设备。 (显然,您需要使用 VM 软件将 USB 设备推送到 VM 中。现在大多数人都会这么做。)

如果这不起作用,您可以轻松回滚到快照,因为在将某些内容发布到生产服务器之前,该虚拟机应该对将来的测试有用。

答案2

我遇到了和你一样的问题。尝试安装该gsm-utils软件包。

apt-get install gsm-utils

答案3

根据您提供的信息,我认为系统没有该USB设备的配置文件。获取正确的conf,添加它/etc/usb_modeswitch.d并激活它。然后它就会被检测为USB设备。

参考本文

相关内容