<ก่อนหน้านี้ | Contents | ถัดไป>
7.4.3. การจัดการกับอุปกรณ์ที่ซ้ำกัน
ตามที่อธิบายไว้ในหัวข้อ 7.3 "ภาพรวมของการจัดการอุปกรณ์และโมดูล" ลำดับที่อุปกรณ์ที่มีฟังก์ชันเดียวกันจะปรากฏใน / dev เป็นหลักสุ่ม เช่น หากคุณมีเว็บแคม USB และจูนเนอร์ทีวี บางครั้ง /dev/วิดีโอ0 หมายถึงกล้องและ / dev / video1 หมายถึงจูนเนอร์ และบางครั้งหลังจากรีบูต ลำดับจะเปลี่ยนเป็นลำดับตรงกันข้าม สำหรับฮาร์ดแวร์คลาสทั้งหมด ยกเว้นการ์ดเสียงและการ์ดเครือข่าย สิ่งนี้สามารถแก้ไขได้โดยการสร้างกฎ Udev สำหรับ symlink ถาวรแบบกำหนดเอง กรณีของการ์ดเครือข่ายครอบคลุมแยกต่างหากในหัวข้อ 7.5 "การกำหนดค่าเครือข่ายทั่วไป" และการกำหนดค่าการ์ดเสียงสามารถพบได้ใน BLFS.
สำหรับอุปกรณ์แต่ละเครื่องของคุณที่มีแนวโน้มว่าจะมีปัญหานี้ (แม้ว่าปัญหาจะไม่มีอยู่ในการแจกจ่าย Linux ปัจจุบันของคุณ) ให้ค้นหาไดเร็กทอรีที่เกี่ยวข้องภายใต้ /sys/คลาส or /sys/บล็อก. สำหรับอุปกรณ์วิดีโอ นี่อาจเป็น
/sys/class/video4linux/videoX. หาแอตทริบิวต์ที่ระบุอุปกรณ์โดยไม่ซ้ำกัน (โดยปกติ ID ผู้ขายและผลิตภัณฑ์และ/หรือหมายเลขซีเรียลจะทำงาน):
ข้อมูล udevadm -a -p /sys/class/video4linux/video0
ข้อมูล udevadm -a -p /sys/class/video4linux/video0
จากนั้นเขียนกฎที่สร้าง symlink เช่น:
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
# ลิงก์ถาวรสำหรับเว็บแคมและจูนเนอร์
KERNEL=="วิดีโอ*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", \ SYMLINK+="webcam"
KERNEL=="วิดีโอ*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", \ SYMLINK+="tvtuner"
EOF
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
# ลิงก์ถาวรสำหรับเว็บแคมและจูนเนอร์
KERNEL=="วิดีโอ*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", \ SYMLINK+="webcam"
KERNEL=="วิดีโอ*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", \ SYMLINK+="tvtuner"
EOF
ผลที่ได้ก็คือ / dev / video0 และ / dev / video1 อุปกรณ์ยังคงสุ่มอ้างอิงถึงจูนเนอร์และกล้องเว็บ (และไม่ควรใช้โดยตรง) แต่มีการเชื่อมโยงกัน /dev/tvtuner และ /dev/เว็บแคม ที่ชี้ไปที่อุปกรณ์ที่ถูกต้องเสมอ