Linux - notification d'insertion disque - C - Programmation
Marsh Posté le 24-09-2010 à 20:37:57
Regarde du côté de udev et hal
Marsh Posté le 24-09-2010 à 20:53:00
Salut
C'est ce que je suis en train de faire, et j'ai également vu inotify qui pourrait m'aider.
Par contre, je pense qu'il me faudra aussi faire de la configuration système pour avoir exactement le comportement que je souhaite, je vais donc poser aussi ma question dans la section OSA.
En gros, je souhaite appeler des callbacks à l'insertion d'un CD/DVD , et à l'éjection d'un CD/DVD sans forcément monter celui-ci.
Marsh Posté le 25-09-2010 à 07:58:52
Merci pour ce lien
Je vois que c'est une bibliothèque du projet gnome. Fonctionne-t-elle de façon indépendante ou bien suis-je obligé d'avoir le kit de développement gnome en entier, ainsi que l'ensemble des bibliothèques gnome sur la plateforme cible ?
Marsh Posté le 25-09-2010 à 10:58:34
Non c'est un morceau de la Glib (~ la libc de GNOME) donc le nombre de dépendance devrait être assez réduit.
Marsh Posté le 25-09-2010 à 11:19:09
En particulier, tu dois utiliser GVolumeMonitor http://library.gnome.org/devel/gio [...] nitor.html et le signal "mount-added".
Marsh Posté le 25-09-2010 à 11:33:44
Super merci
Je vais me faire une petite application pour tester si cela correspond bien à ce que je souhaite.
Marsh Posté le 22-12-2010 à 14:01:51
Salut
Je remonte le message, car j'ai un peu de temps cette semaine pour tester cette bibliothèque.
Je viens de compiler une application minimale afin de me familiariser avec cette bibliothèque ( en particulier la section GVolumeMonitor).
Je rencontre quelques petits soucis, probablement du à mon système (mandriva 2010 , pas taper ).
Lorsque je lance mon application, j'ai un message DBus : cannot connect to the session bus : org.freedesktop.DBus.Error. NoReplu : Did not receive a reply. Possible cause include : the remote application did not send a reply, the message security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Mon appel se resume à :
Code :
|
Apparemment, je n'arrive pas à lister les volumes avec la fonction g_volume_monitor_get_volumes, ni les drives connectés avec g_volume_monitor_get_connected_drives.
Dans le 1er cas, il me retourne une liste de 2 éléments ayant pour nom 172.16.3.1 et 172.16.3.2 ( pour info, il s'agit de vieux montages NFS que j'ai effectué il y a longtemps, mais la machine a été rebooté plusieurs fois depuis ).
Dans le 2eme cas, la liste est vide.
J'ai probablement oublié des inits, ou bien, dbus ne fonctionne pas bien sur mon OS ( pourtant il est utilisé par le bureau pour détecter les médias insérés ).
Par ailleurs, j'ai également tenter de lister mon lecteur CDROM, sans disque, avec disque, et avec disque monté, pareil, il n'apparait pas dans la liste.
Pour finir, les signaux correspondraient exactement à ce que je veux, mais par quel mécanisme je peux enregistrer les handlers pour les récupérer ?
Merci
Marsh Posté le 24-09-2010 à 19:29:53
Bonsoir
Je cherche à récupérer des événements système comme par exemple une notification d'insertion de disque (et éjection ) sous linux mais je n'ai rien trouvé à ce sujet.
Quelqu'un aurait-il une piste ?
Merci