คำถามติดแท็ก udev

Udev เป็นกระบวนการ Linux ที่จัดการรายการไฟล์อุปกรณ์ภายใต้ / dev

1
ทำความเข้าใจเอาต์พุตของ `udevadm info -a -n / dev / sdb`
ฉันเสียบ HDD ภายนอกเข้ากับแล็ปท็อปของฉัน ฉันพยายามค้นหาข้อมูลโดย $ udevadm info -a -n /dev/sdb Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be …
11 usb  udev  devices  storage  pci 

5
ความแตกต่างระหว่าง udev และ hald คืออะไร?
ฉันเพิ่งเริ่มดำดิ่งลงไปใน internals ของ Linux และฉันสงสัยว่าอะไรคือความแตกต่างระหว่าง udev และ hal daemon จากสิ่งที่ฉันรวบรวมมาทั้งคู่ดูเหมือนจะมีหน้าที่รับผิดชอบในการจัดการอุปกรณ์ที่เสียบได้อย่างร้อนแรง ... เป็นที่นิยมใช้โดย udev ในการฟังหรือเป็นสองสิ่งที่แยกจากกันหรือไม่
11 udev  daemon 

2
ฉันจะเปลี่ยนการอนุญาตใน / sys เพื่อเปลี่ยนสถานะของไฟ LED / แสงโดยใช้ 'udev' ได้อย่างไร
ฉันมี Thinkpad และต้องการใช้ ThinkLight (แสงแฟลชสีขาวด้านบนหน้าจอที่ออกแบบมาเพื่อเพิ่มความสว่างของแป้นพิมพ์) สำหรับการแจ้งเตือนข้อความ Jabber ที่เข้ามา เป็นเรื่องง่ายที่จะเข้าใจเพราะหนึ่งต้องการเปลี่ยน/sys/class/leds/tpacpi::thinklight/brightnessเป็น 255 เท่านั้นฉันจะใช้ Bash script ง่ายๆซึ่งจะทำให้ไฟกะพริบสามครั้ง แต่เพื่อให้สามารถทำสิ่งนี้ได้ฉันต้องเปลี่ยนการอนุญาตไม่ใช่แค่รูทเท่านั้นที่สามารถเปลี่ยนไฟล์นี้ได้ และฉันไม่ต้องการsudo chmod o+w /sys/class/leds/tpacpi::thinklight/brightnessหลังจากการบู๊ตทุกครั้ง ฉันคิดว่าทางออกที่ดีที่สุดใช้udevสำหรับสิ่งนี้ อย่างไรก็ตามฉันไม่เคยใช้มาudevก่อนและฉันค่อนข้างสับสนกับบทเรียนที่ฉันพบทางออนไลน์ ฉันลองudevกฎนี้แล้ว: KERNEL=="tpacpi::thinklight", MODE="0666" เช่นกัน KERNEL="thinklight", MODE="0666" แต่มันไม่ทำงาน แม้ว่าฉันจะไม่ได้รับข้อผิดพลาดขณะทำงานudevadm test /class/leds ขอบคุณสำหรับความช่วยเหลือและความนิยม หรืออาจแก้ปัญหาอื่น ๆ

2
คุณสมบัติจากอุปกรณ์แม่ต่าง ๆ ในกฎ udev
ฉันมีปัญหาบางอย่างในการทำความเข้าใจวิธีการประเมินคุณลักษณะของอุปกรณ์ udev จากอุปกรณ์แม่ที่แตกต่างกันในกฎ ฉันต้องการเขียนกฎสำหรับอุปกรณ์ usb แบบอนุกรมเฉพาะ (โมเด็ม HUAWEI) ด้วยคุณสมบัติการเดินดังนี้: $ udevadm info --attribute-walk --name=/dev/ttyUSB0 looking at device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB0/tty/ttyUSB0': KERNEL=="ttyUSB0" SUBSYSTEM=="tty" DRIVER=="" looking at parent device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB0': KERNELS=="ttyUSB0" SUBSYSTEMS=="usb-serial" DRIVERS=="generic" ATTRS{port_number}=="0" looking at parent device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0': KERNELS=="1-1.3:1.0" SUBSYSTEMS=="usb" DRIVERS=="usbserial_generic" ATTRS{bInterfaceClass}=="ff" ATTRS{bInterfaceSubClass}=="02" ATTRS{bInterfaceProtocol}=="01" ATTRS{bNumEndpoints}=="03" ATTRS{supports_autosuspend}=="1" ATTRS{bAlternateSetting}==" 0" ATTRS{bInterfaceNumber}=="00" looking at parent device …
11 arch-linux  udev 

1
วิธีรอ a / dev / video0 ก่อนเริ่มบริการ
ฉันสามารถเขียนไฟล์หน่วยซึ่งขึ้นอยู่กับการติดตั้งเพราะฉันสามารถแสดงรายการพวกเขาแล้วเพิ่มไปRequires=xxxเช่น: # systemctl list-units | grep data mount-data.service loaded active exited Manage the data partition สิ่งที่ฉันพยายามทำคือการทำให้บริการเริ่มต้นเมื่อเว็บแคมเสียบเข้ากับอุปกรณ์ systemctl list-units | grep video0ไม่มีอะไรคืน ใครสามารถอธิบายฉันด้วยคำง่ายๆฉันจะทำอย่างไรเพื่อให้แน่ใจว่า สิ่งที่ฉันไม่ต้องการให้เกิดขึ้นคือการบริการเริ่มต้นเมื่อ/dev/video0, /dev/video1ฯลฯ ปรากฏ ฉันได้รับเบาะแสจากโพสต์นี้ว่าฉันจะต้องเขียนกฎ udev แต่ฉันไม่รู้ว่าจะต้องทำอะไรที่นี่ ช่วยด้วย?
11 systemd  udev 

2
วิธีรับชื่อไฟล์อุปกรณ์จากเอาต์พุต lsusb หรือตามเส้นทางอุปกรณ์
คำถามที่เกี่ยวข้อง: การแจ้งเตือนการเชื่อมต่อ USB / ตัดการเชื่อมต่อ เมื่อเสียบอุปกรณ์ / ถอดปลั๊กฉันได้รับการแจ้งเตือนทันทีว่ายอดเยี่ยม แต่เพื่อให้สมบูรณ์แบบ (เกือบ) ฉันต้องการได้ชื่อไฟล์ของอุปกรณ์เช่น/dev/ttyUSB0และที่ดีกว่านั้นคือการเชื่อมโยงทั้งหมดกับมัน แต่ฉันไม่สามารถหาข้อมูลนี้ได้จากudevหรือจากlsusbหรืออย่างอื่น /devices/pci0000:00/0000:00:1d.0/usb5/5-1รหัสเฉพาะของอุปกรณ์ที่ฉันมีเป็นเส้นทางอุปกรณ์เช่น จะรับชื่ออุปกรณ์ได้อย่างไร
11 linux  usb  devices  udev 

5
วิธีการเรียกใช้กระบวนการนานในเหตุการณ์ Udev?
ฉันต้องการเรียกใช้การเชื่อมต่อpppเมื่อโมเด็ม USB ของฉันเชื่อมต่ออยู่ดังนั้นฉันจึงใช้udevกฎนี้: ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="16d8",\ RUN+="/usr/local/bin/newPPP.sh $env{DEVNAME}" (โมเด็มของฉันปรากฏ/devเป็นttyACM0) newPPP.sh: #!/bin/bash /usr/bin/pon prov $1 >/dev/null 2>&1 & ปัญหา: udevเหตุการณ์ fires และ newPPP.sh จะทำงาน แต่newPPP.shกระบวนการที่ถูกฆ่าตายหลังจาก ~ 4-5s pppไม่มีเวลาในการเชื่อมต่อ (การหมดเวลาใช้งานคือ 10 วินาทีสำหรับการหมุนโทรศัพท์) ฉันจะเรียกใช้กระบวนการที่ยาวนานซึ่งจะไม่ถูกฆ่าได้อย่างไร ฉันลองใช้nohupแต่ก็ไม่ได้ผลเหมือนกัน ระบบ: Arch Linux ปรับปรุง ผมพบว่าวิธีการแก้ปัญหาที่นี่ขอบคุณmaxschlepzig ฉันใช้at nowเพื่อให้งานของฉันหลุดจากกระบวนการ udev แต่คำถามหนึ่งยังคงไม่ได้รับคำตอบ: ทำไมnohupและ&ไม่ทำงาน
11 linux  udev  ppp 

2
เหตุใดฉันจึงไม่พบ MAKEDEV ในโฟลเดอร์ / dev
ขณะนี้ฉันกำลังสำรวจแผนผังไดเรกทอรีบน Linux Mint ในขณะที่สนับสนุนหนังสือที่ฉันซื้อ หนังสือเล่มนี้พูดว่า: /devไดเรกทอรีประกอบด้วยแฟ้มอุปกรณ์พิเศษสำหรับอุปกรณ์ทั้งหมด ไฟล์อุปกรณ์ถูกสร้างขึ้นระหว่างการติดตั้งและต่อมาพร้อมกับ/dev/MAKEDEVสคริปต์ The /dev/MAKEDEV.localเป็นสคริปต์ที่เขียนขึ้นโดยผู้ดูแลระบบที่สร้างไฟล์หรือลิงค์อุปกรณ์ในตัวเครื่อง (... ) ฉันไม่พบสคริปต์นั้นฉันควรจะค้นหามันหรือมันถูกสร้างขึ้นเมื่อติดตั้งอุปกรณ์ใหม่หรือไม่?

5
การติด USB อัตโนมัติบน Debian
ฉันใช้ Debian Squeeze บนคอมพิวเตอร์ปลั๊ก (ดังนั้น SSH เท่านั้น, ไม่มี GUI) และสิ่งที่ฉันพยายามทำคือเอามันมาให้เมื่อเสียบปลั๊ก USB มันจะถูกเมาท์โดยอัตโนมัติ สิ่งที่ฉันทำคือการติดตั้งautofsสิ่งที่ฉันรวบรวมได้จากการจัดการติดตั้งอัตโนมัติซึ่งรู้ว่าอุปกรณ์อยู่ที่/devใด ปัญหาคือแท่ง USB ไม่ได้อยู่ในชื่ออุปกรณ์เดียวกันเสมอไป บางครั้งมัน/dev/sdc1บางครั้ง/dev/sdd1ฯลฯ ฉันรวบรวมสิ่งนั้นเพื่อแก้ไขปัญหานี้ฉันต้องใช้udevเพื่อให้แน่ใจว่าแท่ง USB ได้รับชื่อเดียวกันเสมอ ฉันได้รับข้อมูลต่อไปนี้จากudevadm: Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in …

1
กฎ Udev เพื่อให้ตรงกับอุปกรณ์เก็บข้อมูล usb ใด ๆ
ฉันจะใช้udevกฎสำหรับอุปกรณ์เก็บข้อมูลขนาดใหญ่แบบ USB ที่เสียบเข้ามาได้อย่างไร สิ่งที่ควรเปลี่ยนในidVendorและidProduct? ACTION=="add", SUBSYSTEM=="usb", SYSFS{idVendor}=="0204", SYSFS{idProduct}=="6025", RUN+="/home/workspace/bash_script.sh"
10 udev 

2
กฎของ Udev เพื่อเมานต์ดิสก์ไม่ทำงาน
ฉันมีเนื้อหาดังต่อไปนี้ใน /etc/udev/rules.d/81-external-disk.rules: ENV{ID_FS_UUID}=="6826692e-79f4-4423-8467-cef4d5e840c5", RUN{program}+="/bin/mount -o nofail,x-systemd.device-timeout=1 -t ext4 -U 6826692e-79f4-4423-8467-cef4d5e840c5 /backup/external" หลังจากทำงาน: udevadm control --reload ; udevadm trigger /dev/sdb1 มันไม่ทำอะไรเลย อย่างไรก็ตามหาก II เปลี่ยนคำสั่ง mount สำหรับบางอย่างเช่น / bin / touch / tmp / xyz รุ่น: [root@helsinki rules.d]# rpm -qa | grep udev libgudev1-219-19.el7_2.12.x86_64 python-pyudev-0.15-7.el7_2.1.noarch [root@helsinki rules.d]# rpm -qa | grep systemd …
9 mount  udev 

1
โคลนระบบ + เน็ตเวิร์กอินเตอร์เฟส
ฉันสร้างอิมเมจของระบบของฉันแล้วและมอบมันให้กับบางคนที่ทำงาน พวกเขาประสบความสำเร็จในการล้างระบบด้วยอิมเมจและรันมัน ปัญหาดังต่อไปนี้: โดยปกติระบบจะมีอแด็ปเตอร์ไร้สาย 2 ตัว ทั้งสองปรากฏขึ้นใน lsusb: pi@raspberry:~ $ lsusb Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS] Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter ฉันได้ตั้งค่าอินเทอร์เฟซใน/etc/udev/rules.d/70-persistent-net.rulesไฟล์โดยที่อยู่ mac หรือ hw ของพวกเขาและที่ทำงานได้ดีในระบบของฉัน แต่ในระบบของเขาอย่างเห็นได้ชัด (ในขณะที่เขาใช้ฮาร์ดแวร์ชนิดเดียวกันและรุ่นเดียวกัน) พวกเขาแตกต่างกัน ที่อยู่จะแตกต่างกันดังนั้น 70-persistent-net.rules …

3
คีย์ USB จะมีชื่อเหมือนกันทุกครั้งที่ฉันติดตั้งหรือไม่
ฉันมีคีย์ USB ซึ่งจะใช้ในการบันทึกข้อมูลทุกวันผ่านสคริปต์ทุบตี ฉันจัดการเพื่อให้มันสำหรับผู้ใช้เฉพาะเพื่อให้สามารถเขียนโฟลเดอร์ในนั้นโดยใช้คำสั่ง: mount /dev/sdc1 /media/usb -o rw,uid=sysop,gid=sysop สคริปต์สามารถเรียกใช้และสร้างไดเรกทอรีได้ตามต้องการและสมบูรณ์แบบ ในบางจุดปุ่ม USB จะถูกถอดปลั๊กและแทนที่ด้วยปุ่มใหม่ (รุ่นเดียวกัน) คีย์ USB ใหม่จะยังคงมีชื่ออยู่/dev/sdc1หรือจะเป็นชื่ออื่นหรือไม่ หากเป็นชิ้นส่วนที่แตกต่างกันฉันจะรวมส่วนการติดตั้งในสคริปต์ของฉันเพื่อให้การติดตั้งเป็นไปโดยอัตโนมัติได้อย่างไร

1
อ้างอิงทั้งดิสก์ (/ dev / sda) โดยใช้ UUID
ในระบบของฉัน (Debian) ผมสามารถมองเห็นUUIDตัวระบุทั้งหมดของพาร์ทิชันดิสก์ของฉัน (เช่น/dev/sda1, dev/sda2, .. ) ls /dev/disk/by-uuid/ อย่างไรก็ตามฉันไม่เห็นUUIDตัวระบุสำหรับ/dev/sdaตัวเอง เป็นไปได้UUIDหรือไม่ที่จะอ้างอิงทั้งดิสก์ด้วย? ฉันต้องการสิ่งนี้เพราะฉันต้องการอ้างอิงดิสก์เฉพาะและฉันไม่สามารถ/dev/sdaเชื่อถือได้จะถูกเรียก แก้ไข วิธีการแก้ปัญหาที่แนะนำโดย @don_crissti นั้นยอดเยี่ยม อย่างไรก็ตามฉันต้องการให้ UUID เหมือนกันสำหรับฮาร์ดดิสก์ทั้งหมดในรุ่น / ผู้ผลิตเดียวกันไม่ใช่หมายเลขเฉพาะ ใช้udevadmฉันสามารถดูคุณสมบัติของดิสก์: udevadm info -n /dev/sda -a ATTRS{model}=="Samsung SSD 840 " ATTRS{vendor}=="0x8086" ATTRS{class}=="0x010700" ATTRS{device}=="0x1d6b" .... ฉันจะสร้าง a UUIDจากแอ็ตทริบิวต์เหล่านี้ดังนั้นดิสก์รุ่น / ผู้ผลิตเดียวกันจะมีเหมือนกันได้UUIDอย่างไร
9 udev  disk  fdisk  uuid 

2
ระบบ Linux ที่ลอกแบบมาและ /etc/udev/rules.d/70-persistent-net.rules
ฉันจะตั้งค่าระบบ Ubuntu และกำหนดค่าได้อย่างถูกต้องรวมถึงการกำหนดในeth0 /etc/network/interfacesจากนั้นฉันถ่ายภาพระบบนั้นและโคลนบนระบบใหม่ เมื่อฉันบูทระบบครั้งแรกทุกอย่างก็ดี แต่หลังจากนั้นไม่กี่รีบูตฉันได้รับการต้อนรับด้วยการกำหนดค่าเครือข่ายหมดเวลา เมื่อฉันเข้าสู่ระบบฉันพบว่าeth0ไม่สามารถใช้ได้ การวิจัยครั้งแรกของฉันให้ฉันจะลองifdown -aและifup -aที่ฉันไม่กี่ครั้งที่จะมีผลไม่ชัดเจน ในที่สุดการวิจัยชี้ให้ฉัน/etc/udev/rules.d/70-persistent-net.rulesซึ่งฉันค้นพบว่าที่อยู่ MAC สำหรับระบบใหม่ได้สร้าง eth1 เป็นความคิดที่ดี แต่ไม่ใช่สิ่งที่ฉันต้องการจะเกิดขึ้น เมื่อฉันบูทตอนนี้ฉันพบว่า/etc/udev/rules.d/70-persistent-net.rulesตอนนี้มีหกรายการสำหรับที่อยู่ HW ที่แตกต่างกันหกรายการซึ่งฉันพบว่าแปลกเพราะมีเพียงอินเทอร์เฟซเดียว คำถามของฉันคือ: ฉันใช้ifup -aสร้างที่อยู่ MAC ใหม่เพื่อสร้างหรือไม่ ถ้าไม่มีความคิดใด ๆ เกี่ยวกับสิ่งที่เกิดขึ้น? ฉันเปลี่ยน/etc/udev/rules.d/70-persistent-net.rulesเป็นชื่อที่อยู่ HW ปัจจุบันeth0และดูเหมือนว่าจะใช้งานได้ แต่ฉันสามารถมั่นใจได้ว่าที่อยู่จะไม่เปลี่ยนแปลงอีกครั้งเมื่อรีบูตหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.