linux的UDEV

引用:踏雪尋熊的文章

linxu的設備管理器

自2.6內核開始,就能夠使用udev協助管理系統中各設備名稱,udev能動態地在/dev目錄裏產生自定義的,標識性強的設備文件或設備鏈接。

從本質來講,UDEV是一種對定義好的規則的應用,這個規則以文件的形式保存在"/etc/udevrules.d"目錄下。規則的定義能夠採用多種方式,咱們須要作的是肯定設備以及說明但願UDEV用它作什麼。

udev原理和結構

udev是一種工具,他可以根據系統中硬件設備的狀態動態更新設備文件,包括完成對設備文件的建立,刪除和刷新。

udev原理和結構
    當udev從kernel收到設備add/remove事件後,udev將解析:
    /etc/udev/rules.d目錄中的用戶自定義規則文件只用自定義規則輸出(可選的)
    從sys中查詢相應信息
    根據解析的信息,udev聚集處理設備命名:
    將肯定建立什麼設備文件(device file )或符號連接(symlink)
    肯定如何設設備文件屬性
    肯定後續操做

配置udev

KERNEL==sd* ,PROGRAM=/lib/udev/scsi_id -g -s %p,RESULT==123456,SYMLINK=%k_%c
    
    該規則的的執行是:若是一個內核設備名稱以sd開頭,且SCSI_ID爲123456,則爲設備文件產生一個符號連接「sda_123456」

udev中的相關的指令:


"KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i", NAME="asm-disk\(i\", OWNER=\"oracle\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules 其中這句話的含義是將KERNEL==以sd開頭的,BUS是scsi的,PROGRAM接受/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name指令並將結果傳遞給RESULT, 假如符合上述條件的話,則將該設備命名爲 NAME=\"asm-disk\)i",全部者OWNER="oracle", 所屬於的組 GROUP="asmadmin", 授予的權限是 GROUP="asmadmin" 並將這些內容寫到 /etc/udev/rules.d/99-oracle-asmdevices.rules udev的規則文件中去。html

相關文章
相關標籤/搜索