GSM 모뎀이 /dev/ttyUSB 파일을 생성하지 않습니다.

GSM 모뎀이 /dev/ttyUSB 파일을 생성하지 않습니다.

설치했습니다카넬서버에서 섹션에 언급된 대로 GSM 3G USB 모뎀을 사용하여 SMS 메시지를 보내고 싶습니다.SMS 센터 > GSM 모뎀채널 사용자 가이드.

내 노트북에 Kannel을 성공적으로 설치, 구성 및 테스트했습니다.

모뎀을 노트북에 연결하면 /dev/ttyUSB0 이름이 . 모뎀에 명령을 보내는 직렬 포트 역할을 합니다.

이 장치를 Kannel 구성 파일에 넣어야 합니다.

몇 가지 테스트를 거친 후 프로덕션 서버에 Kannel을 설치하기로 결정했습니다. 서버 실행 중리눅스 가상 서버, 내 임무는 주인그리고 PlaySMS 중 하나손님, Apache를 실행합니다.

문제는 ttyUSB0내 컴퓨터(내가 아는 한 모든 일반 Linux 컴퓨터)에서 생성된 장치와 유사한 장치를 찾을 수 없다는 것입니다.

다음은 몇 가지 진단 명령입니다. 사용된 모뎀은 동일한 모델이 아니지만 제 노트북에서 Sierra 308을 테스트했는데 잘 작동합니다.

내 노트북 ​​- 아치 리눅스

uname -a:

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

dmesg모뎀(Huawei 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

서버 - 데비안 레니

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 드라이버가 장치를 볼 수 있지만 드라이버가 예상하지 못하고 대처할 수 없는 방식으로 기능(인터페이스)에 번호가 매겨져 있음을 의미합니다. 인터넷 검색을 통해 사람들이 이러한 최신 장치와 이상한 인터페이스 번호 매기기 동작을 처리하기 위해 커널의 약점을 수정하는 몇 가지 사례를 찾을 수 있습니다.

잘못된 인터페이스 번호 매기기 버그를 설명하는 명확한 문서를 찾을 수 없거나 커널 xyz의 모든 USB 장치에 대해 수정되었으므로 이에 대해 100% 확신할 수 없습니다.두더지를 구타일종의 개발 노력.

서버에서 커널을 업그레이드하는 것은 결코 쉬운 일이 아닙니다. 가설을 확인하기 위해 먼저 중간 단계를 시도하겠습니다. 데비안의 서버 버전을 가상 머신에 넣고, 스냅샷을 만들고, 거기에서 커널을 업그레이드하고, 업그레이드 후 USB 장치가 보이는지 확인합니다. (물론 USB 장치를 VM에 밀어 넣으려면 VM 소프트웨어를 사용해야 합니다. 요즘 대부분의 사람들이 그렇게 합니다.)

그래도 문제가 해결되지 않으면 스냅샷으로 쉽게 롤백할 수 있습니다. VM은 프로덕션 서버에 무언가를 릴리스하기 전 향후 테스트에 유용해야 하기 때문입니다.

답변2

나는 당신과 같은 문제에 직면했습니다. 패키지 를 설치해 보세요 gsm-utils.

apt-get install gsm-utils

답변3

제공하신 정보에 따르면 시스템에 이 USB 장치에 대한 구성 파일이 없는 것 같습니다. 올바른 것을 가져 conf와서 추가 /etc/usb_modeswitch.d하고 활성화하세요. 그러면 USB 장치로 감지됩니다.

인용하다이 기사.

관련 정보