Drivers
安裝平台驅動程序
我最近在 x86 板上獲得了一個集成看門狗定時器的設備驅動程序,我在該板上執行了一個最小的 Linux 系統。核心是 3.6.11,它是使用
buildroot
.我的安裝沒有執行
udev
,所以我需要手動執行我需要insmod
的mknod
任何驅動程序。我已經成功地為 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是未成年人。