如果具有/ 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號和次號爲0 讓我們深入到sysfs的:
# cd /sys
# ls
block class devices fs module
bus dev firmware kernel
sys/dev
目錄包含系統的char和block設備的條目:
# 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
所以這裏的模塊的名稱是vpfe_capture
2
對於這個問題的答案很可能根據多種因素而有所不同。例如,如果您正在運行udev,devfs,pre-devfs等。
如果您使用的是Ubuntu(或另一個同樣現代的發行版),那麼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
驅動程序,它駐留在sr_mod
內核模塊中提供。我不知道以/dev/cdrom
作爲參數並打印sr_mod
作爲輸出的命令。
相關問題
- 1. 如何知道一個Linux模塊
- 2. 我如何知道Linux中的下一個設備映射器?
- 3. 如何從Linux內核模塊的init_module代碼創建設備節點?
- 4. 如何知道模塊是否安裝在節點中
- 5. 如何知道設備?
- 6. 沒有導出成員/節點模塊
- 7. 如何用SystemJs導入節點模塊?
- 8. 我如何知道我的設備在Android中的ScreenLock設置
- 9. 我應該如何知道模塊的依賴模塊名稱?
- 10. 節點js模塊如何獲取導出函數的列表
- 11. 導入節點模塊
- 12. 知道一個USB設備的端點
- 13. 如何從節點模塊導出異步功能
- 14. 如何將mysql-promise作爲模塊導出到節點Js中?
- 15. 我如何知道設備驅動程序在Linux中的工作原理?
- 16. 如何知道有序塊存儲設備的ID
- 17. 如何知道Hadoop節點上文件的確切塊大小?
- 18. 如何知道設備的密度?
- 19. 如何將結構傳遞給python中的linux設備節點?
- 20. 來自char設備模塊的linux內核中的Dmesg輸出
- 21. 如何在節點模塊
- 22. 節點通知模塊的問題
- 23. linux內核模塊字符設備
- 24. Linux節點模塊版本不匹配
- 25. 如何知道設備何時充電?
- 26. 我們如何知道通知到達iOS設備?
- 27. 如何正確知道設備方向
- 28. 如何知道USB設備「HID」和「PID」
- 29. 如何知道「索引節點號」
- 30. Drupal自定義模塊|我如何輸出節點的所有字段的塊
那是一個很好的解釋,謝謝! – 2010-05-27 04:48:29