udev 驅動相關

2021-09-26 01:27:16 字數 801 閱讀 5527

1. 問題,

register_chrdev_region/alloca_chrdev_region

cdev_init/cdev_add

以上函式僅為字元裝置分配,註冊等操作. 

核心模組載入後, cat /proc/devices中可看到該裝置.

但是 具體的裝置節點(/dev/***x) 需要使用mknod命令手動建立.

2. 故linux 2.6以後引入了udev程序 可根據核心uvent相關事件,  動態

建立裝置節點.

最新5.x 核心 可用以下函式進行/sysfs/class/***x 檔案建立, 並最終產生相應uevent上報.

class_create(...)

device_create(...)

3. 如此 insmod模組後, /dev/***x裝置節點會自動生成.  

但此時使用 echo 1234 > /dev/***x等操作. 會報許可權問題.

即該節點僅root使用者有許可權寫入.

4. 此時,  /etc/udev/rules.d/nm-***x.rules開始發揮作用.

其中 nm 為0 ~ 99數字, 數字越高, 優先順序越高. (即會覆蓋數字低的檔案配置.)

cat 50-***x.rules

kernel=="***x", owner="river", mode="0660"

5. udevadm命令相關

udevadm info -ap /sys/class/***x/***x

udevadm monitor -uk

2019.08.09

udev和驅動的自動載入

在一般的驅動編寫時,我們可以通重載入模組來向系統新增裝置,也可以通過移除模組來刪除裝置。但是很多時候我們會設想到一種更加智慧型的的場景,即當裝置被新增到系統後,驅動可以自動載入,這對於實際的可支援熱插拔的硬體來說更有必要。比如說,我們插入乙個usb無線網絡卡,那麼對應的驅動就應該自動載入,而不是由使...

LED驅動例項5(訊號量 udev)

include include include include include include include include define cmd led on 1 define cmd led off 0 define cmd led get state 2 define leds num 4 ...

udev實現原理

udev實現原理 作者 李先靜 相對於linux來說,udev還是乙個新事物。然而,儘管它03年才出現,儘管它很低調 j 但它無疑已經成為linux下不可或缺的元件了。udev是什麼?它是如何實現的?最近研究linux裝置管理時,花了一些時間去研究udev的實現。udev是什麼?u 是指user s...