USB 포트 열거가 왜 바뀌나요?


10

Gnokii 및 Gammu와 함께 Huawei GMS / UMTS USB 모뎀을 사용하고 있습니다. 모뎀은 Pi의 하단 포트에있었습니다. 함께 dmesg | grep tty그것을 표시 것 /dev/ttyUSB0하고 /dev/ttyUSB1. (이 경우 1 스틱에 2 개의 USB 장치가 정상입니다).

그에 따라 Gnokii와 Gammu를 구성했지만 ttyUSB0에서는 메시지 만 보낼 수있었습니다. 송수신은 ttyUSB1에서만 작동합니다.

그런 다음 스틱을 상단 USB 소켓으로 옮겼습니다 (그렇지 않으면 WiFi 스틱이 옆에 맞지 않기 때문입니다). 모든 것이 잘 작동했습니다. 또한 몇 번의 재부팅 후에도 차갑고 따뜻합니다.

그런 다음 파일 시스템을 확장해야했습니다 (예, 이전에 수행 했어야한다는 것을 알고 있습니다). 그 후, 모뎀은 ttyUSB0 및 ttyUSB * 2 *에있었습니다. 후자는 보내기 / 받기가 효과가있었습니다. 이것을 알아내는 데 시간이 걸렸습니다.

업데이트 : 2 일 후 ttyUSB2가 사라졌습니다. 작동하는 모뎀은 이제 ttyUSB0 (기존 ttyUSB1)에서 나타납니다.

왜 이런 일이 일어 났는지 아십니까? 관련 데비안 또는 리눅스 문서에 대한 링크가 있습니까? 나는 많은 의무가있다 ..


이름을 /sys/class/tty/안내서로 사용해보십시오 .
Lekensteyn

/ sys / class / tty의 유일한 ttyUSB는 ttyUSB0 및 ttyUSB1입니다. 지금. 내일 무엇이 될지 누가 알 겠어요?
RolfBly

디자인에 따라 USB 열거가 ​​변경되면 새 장치를 연결하고 새 번호를 얻습니다. 또는 이전 포트 번호가 아직 완료되지 않은 전송으로 사용 중일 때 오래된 장치 일 수 있습니다. 장치를 너무 빨리 다시 연결하지 말고 이러한 장치를 사용하는 모든 소프트웨어가 비즈니스를 성공적으로 완료했는지 확인하십시오.
lenik

답변:


16

Gammu 문서 는 해결 방법을 제안하지만 자세한 설명은하지 않습니다.

편집 : Atmel에는 열거 프로세스를 잘 설명 하는 응용 프로그램 노트 가 있습니다.

열거는 호스트, 허브 및 장치 간의 대화에서 발생하기 때문에 변경되며, 각 재부팅의 응답 시간 이 동일 하더라도 각 응답 시간이 다를 수 있습니다 .

업데이트 : 솔루션을 온라인에서 쉽게 찾을 수 없으며 모든 곳에서 흩어져 있습니다. 그래서 나는 하나의 문서에 모든 것을 정리했다 . 이것이 비등하는 것입니다.
1. ttyUSB에 무엇이 있는지 확인하십시오 :

dmesg | grep ttyUSB  

2. 장치의 모든 속성을 나열하고 고유 식별자 세트 (예 : idVendor + idProduct)를 선택합니다 (필요한 경우 idVendor 및 idProduct가 동일한 장치가 둘 이상인 경우 SerialNumber).

udevadm info --name=/dev/ttyUSB1 --attribute-walk

3. 다음 /etc/udev/rules.d/99-usb-serial.rules과 같은 줄을 가진 파일 을 만듭니다 :

SUBSYSTEM=="tty", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", SYMLINK+="your_device_name" 

(일련 번호가 필요없고 2 단계에서 찾은 idVendor 및 idProduct의 번호가 필요하다고 가정합니다.
4. 새 규칙을로드합니다.

sudo udevadm trigger

5. 무슨 일이 있었는지 확인하십시오 :

ls -l /dev/your_device_name  

심볼릭 링크가 ttyUSB 번호를 보여줍니다. 이 경우 /dev/ttyUSB1누가 소유하고 누가 어떤 그룹에 속하는지 확인하십시오.

ls -l /dev/ttyUSB1   

그런 다음 그것의 재미를 위해 :

udevadm test -a -p  $(udevadm info -q path -n /dev/your_device_name)

8

자신의 질문에 부분적으로 대답했지만, 직렬 장치의 경우 다른 방법으로 /dev/serial/*경로를 지정할 수 있습니다. 내 라즈베리 파이에 다작의 USB → RS232 인터페이스가 거의 변함로 나타나을 /dev/ttyUSB0. 그러나 시스템에는 다음과 같이 나타납니다.

  • /dev/serial/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-port0
  • /dev/serial/by-id/usb-067b_2303-if00-port0

by-id다른 PL2303 기반 변환기를 추가하지 않는 한 링크 사용은 동일하게 유지되어야합니다.


.. 그리고 누군가가 새로운 PL2303 기반 변환기를 추가 할 때. (그중 2 명) 그렇다면 무엇을 donw 할 수 있습니까?
Obmerk Kronen

당신은 붙어있다. 나는 이것을 피하기 위해 브랜드를 혼합하고 일치시키는 것을 선호합니다.
scruss

이것은 파이썬에서 나에게 바뀌는 직렬 포트에 대단히 도움이되었습니다!
GhostToast 2009 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.