배경
제가 리눅스에 대해 곤경에 빠질 만큼 지식이 부족한 것 같습니다.
저는 Linux를 실행하는 여러 임베디드 시스템(두 가지 다른 모델)을 개발 중입니다. 저는 제가 사용하고 있는 두 모뎀 중 최신 모뎀에 대한 모뎀 지원 코드 문제를 해결해 왔습니다. 코드를 중지하고 usbserial 드라이버를 수동으로 로드해 보았습니다. 최신 장치에서 usbserial 드라이버를 로드하면 4개의 장치가나타나다존재하다/dev/ttyUSB#.
내가 뭘 한거지
알고 보니 실제로는 16개였습니다.ttyUSB##오래된 장치에 항상 나열되는 장치입니다. 그들은 결코 사라지지 않습니다. 나는 [지금] 이것이 이전 커널이 다르게 작동하기 때문이라고 추측합니다.안타깝게도 16개를 모두 삭제했습니다.ttyUSB##장비. 이제 그들은 떠났고 다시는 돌아오지 않을 것입니다. 캐릭터 장치를 만드는 방법을 모르겠습니다. 이 장치를 어떻게 돌려받나요?
커널 버전:
uname -r
반품2.6.17.9-ep93xx-pxa-ads5
추가 정보
중요한 정보가 누락된 경우 댓글로 남겨주시면 추가하겠습니다. 미리 감사드립니다!
답변1
다음을 사용하여 /dev 항목을 수동으로 만들 수 있습니다.
mknod /dev/ttyUSBn c 188 n
- 매개변수:
- mknod는 /dev 항목을 생성하는 잘 알려진 도구입니다.
- /dev/ttyUSBn: 장치 이름
- c: 캐릭터 디바이스
- 188: 주 장치 번호
- n: 보조 장치 번호, ttyUSB0, ttyUSB1 등
하지만 장치는 udev 규칙에 따라 자동으로 생성되어야 합니다.
답변2
/dev
전통적으로 유닉스 시스템에는 에 항목을 생성하고 에 호출 MAKEDEV
하고 위치를 지정 하는 스크립트가 있었습니다 /dev
. 이 스크립트는 일반적으로 Linux에 있지만 설계자가 모든 장치가 있다고 가정하는 내장 장치나 장치 항목이 일반적으로 자동으로 생성되는 udev를 실행하는 시스템에는 없을 수도 있습니다. 항목 은 MAKEDEV
일반적으로 현재 디렉터리에 생성되므로 먼저 이 디렉터리를 실행하십시오 cd /dev
.
전달하는 매개변수에 대한 표준은 없습니다 /dev/MAKEDEV
. 일반적으로 매개변수는 생성될 장치 항목 집합을 나타냅니다. 데비안에서는 몇 가지 다른 것들도 /dev/MAKEDEV usb
만들어졌습니다 . 스크립트 내에서 실행할 명령줄을 찾을 ttyUSB*
수도 있습니다. 장치 항목을 생성하는 하위 수준 명령은 다음과 같습니다.ttyUSB
MAKEDEV
mknod
.
시스템이 udev를 사용하는 경우 다음을 실행하십시오.udevadm trigger -s usb-serial
/dev
항목을 다시 생성 하고 장치 검색과 관련된 명령을 실행합니다. (이 경우 장치는 직렬 포트이며 포트에 연결된 장치는 아닙니다.)