為了要以唯一方式識別裝置並區分多個裝置,有效的 udev 規則必須有唯一的屬性。這裡有一些標準關鍵字的範例:
子系統,裝置是它的一部份
裝置匯流排類型
核心使用的裝置名稱
匯流排上的裝置編號 (例如,PCI 匯流排 ID)
sysfs 裝置屬性,例如標籤、廠商或序號
SUBSYSTEM 與 ID 這兩個關鍵字可能很有用,但常使用的卻是 BUS、KERNEL 及 SYSFS{...}。udev 組態也會提供呼叫外部程序碼的關鍵字,並評估其結果。請在 udev 線上文件中尋找關於此的詳細資訊。
sysfs 檔案系統會以目錄樹的方式,來提供硬體的相關資訊。每個檔案通常只包含一個項目的資訊,例如裝置名稱、廠商或序號。這些檔案每個都可以用來與關鍵字比對。不過,若要在一個規則中使用多個 SYSFS 關鍵字,您只能在相同目錄中使用檔案做為關鍵字值。udevinfo 工具可以協助找到有用的唯一關鍵字值。
您必須找到一個參照相關裝置及包含 dev 檔案的 /sys 子目錄。這些目錄都位於 /sys/block 或 /sys/class 中。如果該裝置的裝置節點已經存在,udevinfo 可以為您找到正確的子目錄。udevinfo -q path -n /dev/sda 命令會輸出 /block/sda。這表示需要的目錄為 /sys/block/sda。現在用 udevinfo -a -p /sys/block/sda 指令來呼叫 udevinfo。也可以將兩個指令結合在一起,如 udevinfo -a -p `udevinfo -q path -n /dev/sda`。以下為輸出的摘要:
BUS=="scsi"
ID=="0:0:0:0"
SYSFS{detach_state}=="0"
SYSFS{type}=="0"
SYSFS{max_sectors}=="240"
SYSFS{device_blocked}=="0"
SYSFS{queue_depth}=="1"
SYSFS{scsi_level}=="3"
SYSFS{vendor}==" "
SYSFS{model}=="USB 2.0M DSC"
SYSFS{rev}=="1.00"
SYSFS{online}=="1"
請從輸出的資訊中,尋找不會變更的適合關鍵字。請記住,您無法在一個規則中使用來自不同目錄的關鍵字。