Re: Wechselmedien erkennen

From: Oliver Gerlich <olig9_at_gmx.de>
Date: Mon, 30 Oct 2006 18:44:35 +0100

Christoph Sandhaus wrote:
> Hallöle!
>
> Wie kann ich unter Linux Wechselmedien erkennen und ggf. Automount Vorgänge
> "mitbekommen"?
>
> Problem:
> ich schreibe ein Java Programm, bei dem ich unter Linux die CD-Laufwerke genau
> so anzeigen möchte wie unter Windows.
> java.util.File.listRoots() liefert - wie sich das gehört - unter Linux ja nur
> "/".
>
> Beim Rumgoogeln bin ich auf udev und hal gestoßen. Mit udev würde ich
> wahrscheinlich Linux Kernel < 2.6 ausschließen. Nicht schön, wäre aber
> erstmal akzeptabel.
> Nur weiß ich noch nicht, wie ich mit udev überhaupt erst mal vorhandene
> CD-ROMs zuverlässig erkennen kann.
>
> Mit "dbus-monitor" kommt man der Sache auch nicht wirklich näher, da die
> Ausgaben eigentlich kaum zu parsen sind. Außerdem bekomme ich mit den -
> bislang von mir gefundenen - dbus Progs nicht die Laufwerke gelistet.
>
> Weiß jemand, ob per Kommandozeile - möglichst ohne root zu sein - vorhandene
> Wechselmedien einigermaßen einfach gelistet werden können?
> Schön wäre es dann natürlich noch, wenn man dann ein Automount auch noch
> mitbekommt.
>
> Danke und Gruß,
> Christoph
>
>

Tja, der "edle" Weg dürfte tatsächlich über hal führen - aber Du sperrst
damit evtl. die älteren Distros aus... Andererseits ist hal genau für
den Zweck gemacht worden, den Du hier ansprichst (nämlich daß man eben
nicht mehr selbst die Geräte erraten muß).

Um Abfragen bei hal zu starten, gibts wohl einige Tools; bei mir (hal
aus Debian unstable) mach ich
$ hal-find-by-capability --capability storage.cdrom
/org/freedesktop/Hal/devices/storage_model_Pioneer_DVD_ROM_ATAPIModel_DVD_120
/org/freedesktop/Hal/devices/storage_serial_FAD119D7

und bekomm so die UDIs vom DVD-ROM und DVD-Brenner.

Und mit
$ hal-get-property --udi
/org/freedesktop/Hal/devices/storage_serial_FAD119D7 --key block.device
/dev/hdd

bekomm ich zu einem der UDIs die tatsächliche /dev-Datei - wobei ich
nicht sicher bin, ob das der richtige Key ist oder ob das nur zufällig
stimmt (das müßtest Du in der hal-Spec nachsehen, die aber wohl etwas
ungepflegt sein soll :-)

Wenn Du eine Automount-Notifikation haben willst, mußt Du evtl.
tatsächlich mit DBUS danach lauschen... Ansonsten gibt wohl auch lshal
--short --monitor diese Meldungen aus - als erste Lösung könntest Du
evtl. darauf lauschen.

Würd mich interessieren, wie Du das am Ende löst! Die Infos auf der
hal-devel-Mailingliste zeugen von ziemlich netten Neuerungen bei der
"make it just work"-Umsetzung unter Linux, aber die Doku ist in dem
ganzen Bereich sehr spärlich. Und die Automount-Notifikationen würd ich
irgendwann auch gern verwenden (für eine spezielles
MP3-Player-Füllprogramm).

Grüße,
Oliver
Received on Mon Oct 30 2006 - 18:44:35 CET

This archive was generated by hypermail 2.2.0 : Mon Oct 30 2006 - 18:44:57 CET