Re: Wechselmedien erkennen

From: Christoph Sandhaus <mailings_at_draupadi.de>
Date: Mon, 30 Oct 2006 19:02:50 +0100

Am Montag, 30. Oktober 2006 18:44 schrieb Oliver Gerlich:

Vorweg nen Danke an Frank Slotta! Der hat mir just ne Mail geschickt, doch mal
in die c't zu schauen. Die ist auch just seit heute in meinem Besitz und
siehe da: ein Know-how Artikel über D-Bus. :)

> 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

Was die Funktionalität des Progs (CD Archiv Programm für Lin/Win in Java)
nicht unterbinden würde. Man müßte halt den Mountpfad zum CD-Einlesen
jedesmal selber wählen, und das ist nicht schön.
Hat ganz nebenbei jemand einen Tipp für ein CD-Archiv Prog unter Linux?

> 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_1
>20 /org/freedesktop/Hal/devices/storage_serial_FAD119D7

Super!

> 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

DAS ist doch das, was ich schon mal brauche.

> 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 :-)

Doch, stimmt ...

> Wenn Du eine Automount-Notifikation haben willst, mußt Du evtl.
> tatsächlich mit DBUS danach lauschen... Ansonsten gibt wohl auch lshal

Was ich schon überlege.
Wie ich nun weiter erfahren habe, kann ich mit
  dbus-monitor --system
Events bekommen, wenn CDs eingelegt, gemountet ... werden. Schwierig ist nur
die Auswertung, da keine eindeutigen Strings zu parsen sind. Da muß ich wohl
noch viel lesen:
  http://dbus.freedesktop.org/doc/dbus-faq.html
  http://dbus.freedesktop.org/doc/dbus-tutorial.html

> --short --monitor diese Meldungen aus - als erste Lösung könntest Du
> evtl. darauf lauschen.

Und wie ich das könnte! Damit kann man doch was anfangen:

=== schnipp ===
Start monitoring devicelist:
-------------------------------------------------
storage_model_HL_DT_ST_GCE_8400B condition EjectPressed =
volume_label_BOOT1 property volume.mount_point = ''
volume_label_BOOT1 property volume.is_mounted = false
volume_label_BOOT1 property info.hal_mount.created_mount_point removed
volume_label_BOOT1 property info.hal_mount.mounted_by_uid removed
volume_label_BOOT1 removed
volume_label_BOOT1 added
volume_label_BOOT1 property volume.mount_point = '/media/BOOT1'
volume_label_BOOT1 property volume.is_mounted = true
volume_label_BOOT1 property info.hal_mount.created_mount_point =
'/media/BOOT1' (new)
volume_label_BOOT1 property info.hal_mount.mounted_by_uid = 1000 (0x3e8) (new)
=== schnipp ===

> 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).

In welcher Programmiersprache? Da es ja schon einige Tools und APIs zu geben
scheint, werde ich mir wohl eine eigene API in Java schreiben. Bei Bedarf
könnte ich die auch zur Verfügung stellen, aber die wird wohl anfänglich so
gezielt auf meine Wünsche geschnitzt sein, d.d. kaum Sinn macht.

Auf jeden Fall erst mal vielen Dank für eure Tipps! Das hat mir sehr weiter
geholfen!

Gruß,
Christoph
Received on Mon Oct 30 2006 - 19:02:50 CET

This archive was generated by hypermail 2.2.0 : Mon Oct 30 2006 - 19:02:58 CET