/dev 장치 노드와 주/부 번호가있는 경우이 노드를 내 보낸 커널 모듈 이름을 어떻게 알 수 있습니까?Linux : 장치 노드를 내보내는 모듈을 어떻게 알 수 있습니까?
22
A
답변
22
짧은 대답은 :
cd /sys/dev/char/major:minor/device/driver/
ls -al | grep module
각 장치는 일반적으로 드라이버와 관련된, 이것은 "장치 모델"에 대해 무엇을 모두입니다. sysfs
파일 시스템에는이 장치와 관련 드라이버가 들어 있습니다. 유감스럽게도, 모든 sysfs가 장치 노드를 나타내는 것은 아니기 때문에/sys 디렉토리에/dev 디렉토리가있는 경우에만 적용됩니다. 내 보드에 /dev/video0
으로, ls -al /dev/video0
출력은, 다음의 예제를 보자
crw------- 1 root root 81, 0 Jan 1 00:00 video0
그래서 주 번호는 81이고 보조 번호는 sysfs를 0로 우위를 점할 수 하자 다이빙입니다 :
# cd /sys
# ls
block class devices fs module
bus dev firmware kernel
sys/dev
디렉토리에는 시스템의 문자 및 블록 장치 항목이 들어 있습니다.
# cd dev
# cd char
# ls
10:61 13:64 1:3 1:8 249:0 252:0 29:0 4:65 81:0 89:1
10:62 1:1 1:5 1:9 250:0 253:0 29:1 5:0 81:2
10:63 1:11 1:7 248:0 251:0 254:0 4:64 5:1 81:3
이 링크는 이상한 이름으로 대체됩니까? 주 번호와 부 번호 (81 및 0)를 기억하십니까? 의이 링크를 보자
#cd major:minor (ie 81:0)
#ls -al
drwxr-xr-x 2 root root 0 Jan 1 01:56 .
drwxr-xr-x 3 root root 0 Jan 1 01:56 ..
-r--r--r-- 1 root root 4096 Jan 1 01:56 dev
lrwxrwxrwx 1 root root 0 Jan 1 01:56 device -> ../../../vpfe-capture
-r--r--r-- 1 root root 4096 Jan 1 01:56 index
-r--r--r-- 1 root root 4096 Jan 1 01:56 name
lrwxrwxrwx 1 root root 0 Jan 1 01:56 subsystem -> ../../../../../class/video4linux
-rw-r--r-- 1 root root 4096 Jan 1 01:56 uevent
이제 우리는 장치가 사용자 공간에 표시되는 방법이다이 장치 고개를 끄덕이, 커널 장치와 연결된 것을 볼 수 있습니다. 이 연결은 링크를 통해 이루어집니다. 이 링크를 따라 가면 드라이버 링크가있는 디렉토리가 생깁니다.
# ls -al
drwxr-xr-x 3 root root 0 Jan 1 01:56 .
drwxr-xr-x 25 root root 0 Jan 1 00:00 ..
lrwxrwxrwx 1 root root 0 Jan 1 01:56 driver -> ../../../bus/platform/drivers/vpfe-capture
-r--r--r-- 1 root root 4096 Jan 1 01:56 modalias
lrwxrwxrwx 1 root root 0 Jan 1 01:56 subsystem -> ../../../bus/platform
-rw-r--r-- 1 root root 4096 Jan 1 01:56 uevent
drwxr-xr-x 3 root root 0 Jan 1 01:56 video4linux
그래서 여기에 모듈의 이름,
2
이 질문에 대한 답은 여러 요인에 따라 다를 가능성이 큽니다. 예를 들어 udev, devfs, pre-devfs 등을 실행중인 경우
우분투 (또는 다른 현대 배포판)를 사용하는 경우 udevadm
명령이 원하는 것일 수 있습니다.
% udevadm info -q path -n /dev/cdrom
/devices/pci0000:00/0000:00:1f.1/host3/target3:0:0/3:0:0:0/block/sr0
그래서, 내는/dev/cdrom이는 sr_mod
커널 모듈에있는 sr
드라이버에 의해 제공됩니다. 나는 인수로 /dev/cdrom
을 취하고 출력으로 sr_mod
을 인쇄하는 명령을 모른다.
관련 문제
- 1. Linux AMI에 설치할 Linux 패키지를 어떻게 알 수 있습니까?
- 2. 공유 객체에서 모든 심볼을 내보내는 방법을 어떻게 알 수 있습니까?
- 3. CCK 포맷터는 어떤 필드와 노드를 참조하는지 어떻게 알 수 있습니까?
- 4. XPath의 태그에서 알 수없는 레벨의 노드를 어떻게 선택할 수 있습니까?
- 5. 사용자가 Linux 머신에 로그인 할 때를 어떻게 알 수 있습니까?
- 6. Linux 프로세스가 무엇을 기다리는 지 어떻게 알 수 있습니까?
- 7. Linux : 다른 프로세스에서 파일을 업데이트했는지 어떻게 알 수 있습니까?
- 8. 이러한 파일이나 프로세스가 무엇을하는지 어떻게 알 수 있습니까? (Linux)
- 9. 어떻게 알 수 있습니까?
- 10. 어떻게 윈도우 장치 이름에 리눅스 장치 경로를 일치시킬 수 있습니까?
- 11. mapView가로드되었는지 어떻게 알 수 있습니까?
- 12. 변수가 Python으로 선언되었는지 어떻게 알 수 있습니까?
- 13. C 함수가 작동하는지 어떻게 알 수 있습니까?
- 14. treeview 노드를 어떻게 업데이트 할 수 있습니까?
- 15. IronPython에서 .PYD 모듈을 어떻게 가져올 수 있습니까?
- 16. 어떻게 Perl이 내 모듈을 찾을 수 있습니까?
- 17. 노드 모듈을 어떻게 디버깅 할 수 있습니까?
- 18. 예외가있을 수 있음을 어떻게 알 수 있습니까?
- 19. 장치 (iPhone, iTouch 또는 iPad)에서 마이크를 사용할 수 있는지 여부를 어떻게 알 수 있습니까?
- 20. AST Visitor에서 방문하는 노드의 속성을 어떻게 알 수 있습니까?
- 21. Perl 모듈을 어떻게 제거합니까?
- 22. Emacs에서 어떤 OS를 실행하고 있는지 어떻게 알 수 있습니까?
- 23. TransactionScope 연결이 등록되었는지 어떻게 알 수 있습니까?
- 24. 드라이브에 플로피가 있는지 어떻게 알 수 있습니까?
- 25. .NET : 직렬화가 완료되면 어떻게 알 수 있습니까?
- 26. 서버가 SSL을 지원하는지 어떻게 알 수 있습니까?
- 27. 사용자가 Exposé 모드인지 어떻게 알 수 있습니까?
- 28. PHP : 함수의 호출자를 어떻게 알 수 있습니까?
- 29. 돋보기가 UIWebView에 나타나면 어떻게 알 수 있습니까?
- 30. UITableViewCell이 선택되었는지 어떻게 알 수 있습니까?
은 훌륭한 설명을 한게 감사 vpfe_capture입니다 : 드라이버의 이름은 일반적으로 모듈의 이름입니다! –