Drivers

安裝平台驅動程序

  • May 29, 2013

我最近在 x86 板上獲得了一個集成看門狗定時器的設備驅動程序,我在該板上執行了一個最小的 Linux 系統。核心是 3.6.11,它是使用buildroot.

我的安裝沒有執行udev,所以我需要手動執行我需要insmodmknod任何驅動程序。我已經成功地為 CAN 驅動程序做到了這一點,但是對於這個看門狗驅動程序,我能夠交叉編譯目標的原始碼,並且我能夠成功地insmod生成生成的 .ko 文件。在此之後,不會生成任何錯誤,並且呼叫lsmod報告模組已載入。

我遇到的問題是我需要/dev為此驅動程序創建一個設備節點,但我不確定如何繼續。我不知道如何像 char 設備那樣獲取設備主要和次要編號。

該驅動程序的來源表明它是一個平台設備驅動程序,但我不確定這甚至意味著什麼。我只聽說過字元設備和塊設備等——主要和次要數字的概念與平台設備有關嗎?如果是這樣,我怎樣才能獲得這些資訊?此設備驅動程序名稱中沒有條目/proc,我不確定如何繼續。

如果它使用正常的核心看門狗介面,那就是 at /dev/watchdog,這裡是 10, 130。

它也可以導出另一個(/dev/watchdog0等)。您可以通過查詢 sysfs 找到:

$ cat /sys/class/watchdog/watchdog0/dev
253:0
$ cat /sys/class/watchdog/watchdog0/uevent 
MAJOR=253
MINOR=0
DEVNAME=watchdog0

事實上:

$ ls -l /dev/watchdog0 
crw------- 1 root root 253, 0 May 17 18:26 /dev/watchdog0

該數字可能是動態分配的(我不確定),因此在您的機器上可能會有所不同。

(平台設備中可能也有一些東西/sys/devices/platform,可以讓你設置各種參數)

編輯:mknod您可以像這樣(作為root)創建一個字元設備:

mknod -m 0600 /dev/watchdog c 10 130

-m設置模式(文件權限,這裡必須使用八進制);/dev/watchdog是名稱;c表示其字元設備(與塊相反****);10 是主要數字;130是未成年人。

引用自:https://unix.stackexchange.com/questions/77513