在剛開始入門裝置驅動時我們寫的簡單驅動都是通過手動建立裝置檔案來測試驅動的工作狀態。其實核心給我們提供了自動建立裝置檔案、解除安裝驅動時自動刪除裝置檔案的介面。一般使用如下:
// 讓核心幫我們發資訊給udev,讓udev自動建立和刪除裝置檔案
led_class = class_create
(this_module, "led_class");
if (is_err(led_class))
return -einval;
//在/dev目錄下建立的裝置檔案的名字 /dev/testled
device_create(led_class, null, mydev, null, "testled");
首先class_create函式在sysfs下為我們建立乙個目錄,然後這樣就可以使用class類的uevent時間通知使用者空間的udev,在呼叫device_create函式的時候udev就會為我們建立裝置檔案,在dev目錄下的表現形式就是 /dev/testled
這樣就省去了手動建立裝置檔案的麻煩拉。在驅動解除安裝函式中我們需要刪除建立的class類
device_destroy(led_class, mydev);
class_destroy(led_class);
自動建立裝置結點
bin bash 1 module name create module device node file if 1 then echo usage install module module name don t need ko suffix exit 1 fiecho remove exist ...
linux自動建立裝置節點
在有2.6系列版本中支援udev管理裝置檔案可以方便的建立裝置節點,不必使用mknod來建立 主要用到的四個方法在linux device.h定義 建立類和釋放類的函式 建立成後將建立 sys class name資料夾 extern struct class class create struct...
Linux dev 自動建立裝置節點
udev的支援主要作用是 在驅動初始化的 裡呼叫class create 為該裝置建立乙個class,再為每個裝置呼叫device create 核心中定義的struct class結構體,顧名思義,乙個struct class結構體型別變數對應乙個類,核心同時提供了class create 函式,...