Wie kann ich die DVD (externe USB) über die Auswurftaste am Gerät aushängen?

960
SimonA

Ich habe ein Problem mit meinem externen USB-DVD-Laufwerk. Alles funktioniert gut, das Mount funktioniert, Shell oder Unmount. Wenn ich jedoch die Auswurftaste am Gerät drücke, wird die DVD nur ausgeworfen, aber nicht abgehängt. Meine beste Lösung für dieses Problem ist, ein Skript mit einer Tastenkombination auf der Tastatur auszuführen. Aber das ist nicht wirklich befriedigend. Gibt es Optionen, um dieses Problem mit der normalen Auswurftaste auf dem DVD-Laufwerk zu lösen?

Danke für deine Hilfe.

BEARBEITEN: Ausgabe 'udevadm info --version'

175 

Ausgabe 'cat /lib/udev/rules.d/60-cdrom_id.rules | grep DISK_EJECT_REQUEST '

ENV=="?*", RUN+="cdrom_id --eject-media $tempnode", GOTO="cdrom_end" 

Ausgabe 'uname -a'

Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux 

Ausgabe von udevadm monitor durch Einfügen (alle 4 Einträge) und Entfernen (keine Eingabe)

monitor will print the received events for: UDEV - the event which udev sends out after rule processing KERNEL - the kernel uevent  KERNEL[682164.008310] change /devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/host0/target0:0:0/0:0:0:0/block/sr0 (block) UDEV [682164.057144] change /devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/host0/target0:0:0/0:0:0:0/block/sr0 (block) KERNEL[682174.005812] change /devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/host0/target0:0:0/0:0:0:0/block/sr0 (block) UDEV [682174.655906] change /devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/host0/target0:0:0/0:0:0:0/block/sr0 (block) 
1

1 Antwort auf die Frage

0
Hygrinet

Es gibt einen seit langem bestehenden Fehler in udisks, der dazu führt, dass dies geschieht. Es ist eigentlich ein "normales" Verhalten für udisks - optische Laufwerke sind ein Randfall, bei dem das Laufwerk zwar entfernt wird, das Laufwerk jedoch immer noch vorhanden ist. Dies wurde vor einiger Zeit im Ubuntu-Bugtracker gemeldet und ein Workaround mit udev wurde vorgeschlagen:

https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1168742

Sie haben bereits ein Skript, das das Laufwerk abmeldet - damit dies ausgeführt wird, wenn die Disc ausgeworfen wird, fügen Sie einer udev-Regel Folgendes hinzu, z. B. /etc/udev/rules.d/70-unmount-cd.rules

KERNEL=="sr0", ACTION=="change", RUN+="/path/to/your/unmount/script.sh" 

Es gibt eine Menge guter Informationen im obigen Link.

HTH!

Danke, habe genau die Informationen, nach denen ich gesucht habe. Derzeit kann ich Ihren Ansatz nicht ausprobieren, aber ich werde das Ergebnis später berichten. SimonA vor 8 Jahren 0
Viel Glück, SimonA! Lass mich wissen, wie es ausgeht. Hygrinet vor 8 Jahren 0
Also ... nach einigen Problemen kann ich das Skript über /etc/udev/rules.d/70-unmount-cd.rules ausführen. Meine Zeile lautet: "KERNEL ==" sr0 ", SUBSYSTEMS ==" scsi ", ATTRS ==" BD-MLT UJ240AS ", ACTION ==" change ", RUN + =" .. Pfad zum Skript ... $ ". Zuerst bekam ich Probleme, indem Sie das Skript" Exec format error "in syslog ausführen. Schreiben Sie" #! / Bin / sh "in die erste Zeile des Skripts, um dieses Problem zu lösen. SimonA vor 8 Jahren 0
Nun wird das Skript durch verschiedene Aktionen ausgeführt (z. B. mount), aber es startet das Skript nicht, wenn ich die Taste drücke ... kann die "AKTION" geändert werden? SimonA vor 8 Jahren 0
Ich versuche auch einige Ereignisse mit "udevadm monitor --environment --udev" auszulösen / zu sehen, aber durch Drücken der Taste passiert nichts ... :(. SimonA vor 8 Jahren 0
Hmm, es ist merkwürdig, dass Sie keine udev-Ereignisse mit udevadm monitor sehen. Das würde sicherlich erklären, warum die Regel nicht aufgerufen wird. Wenn Sie einfach "udevadm monitor" ausführen und dann die CD einlegen / entfernen, sehen Sie ein Kernelereignis, gefolgt von einem udev -Ereignis? Hygrinet vor 8 Jahren 0
Welche Distribution laufen Sie zusätzlich? Raspbian? Könnten Sie die Ausgaben von cat /lib/udev/rules.d/60-cdrom_id.rules | grep DISK_EJECT_REQUEST`, `udevadm info --version` und` uname -a` bitte? Wenn Sie Ihre `udevadm monitor'-Experimente ausführen, vergewissern Sie sich, dass sich tatsächlich ein Medium im CD-Laufwerk befindet! Hygrinet vor 8 Jahren 0
Das ist wirklich seltsam. "udevadm monitor" ruft eine Änderung auf, wenn ich eine DVD einlege. Aber immer noch nichts, wenn ich es per Hardware-Auswurftaste entferne. SimonA vor 8 Jahren 0
Ich bearbeite meinen ersten Beitrag für die verschiedenen Ausgaben. SimonA vor 8 Jahren 0
Die Handlung wird dicker, da 60-cdrom_id.rules in Ordnung zu sein scheint, und Sie haben udev-Änderungsereignisse! Um sicherzustellen, dass Ihr Skript tatsächlich ausgeführt wird, können Sie es so ändern, dass es offensichtlich ist, beispielsweise "touch / var / log / thisworks". Am besten posten Sie den Inhalt Ihres Skripts. Mir gehen die Ideen aus, so dass Sie auf das alte Sprichwort zurückgreifen, dass es wahrscheinlich irgendwo einen Konfigurationsfehler gibt! Hygrinet vor 8 Jahren 0
Könnten Sie zusätzlich den Inhalt von `udevadm info - name = / dev / sr0 --attribute-walk 'an Ihren Beitrag anhängen? Ich habe diese Lösung mit meinem SATA-DVD-Laufwerk und nicht mit USB getestet, wie Sie es verwenden. Daher ist es gut, Ihre Gerätekette zu sehen. Hygrinet vor 8 Jahren 0