[ HAL - DBUS ] Comment monter automatiquement un périphérique :

Comment monter automatiquement un périphérique : [ HAL - DBUS ] - Installation - Linux et OS Alternatifs

Marsh Posté le 08-06-2004 à 14:52:59    

EDIT du 20/12/2004 :
bon finalement gnome-volume-manager c'est bien donc tant pis pour les dépendances :o
par contre y-a des trucs qui merdent, donc je vais poster, j'espere que vous aurez des réponses :o
 
 
 
 
 
quand j'essaie d'installer hal, ma debian veut installer tout ça :

 dbus-glib-1 gconf2 gnome-keyring hal libbonobo2-0 libbonobo2-common
  libbonoboui2-0 libeel2-2 libeel2-data libgconf2-4 libgnome-desktop-2
  libgnome-keyring0 libgnome2-0 libgnome2-common libgnomeprint2.2-0
  libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
  libgnomeui-0 libgnomevfs2-0 libgnomevfs2-common libhal0 libnautilus2-2
  liborbit2 libpanel-applet2-0 python2.3-dbus python2.3-gnome2
  python2.3-pyorbit


hal c'est bien le truc de freedesktop ? c'est pas censé être indépendant d'un desktop ?  :heink:  
y-en a qui ont testé et qui pourraient me dire si ça marche bien ?
 
 
 
EDIT - Solution :
http://forum.hardware.fr/hardwaref [...] tm#t589003
 
 
EDIT - Solution 2 :
Encore mieux et plus simple : le support de hal et dbus est maintenant inclu dans kde, donc il n'y a rien d'autres à faire que d'installer hal et dbus, kde s'occupant du reste (l'icone du périphérique apparait toute seule sur le bureau, etc...)


Message édité par udok le 28-07-2005 à 17:31:27

---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 08-06-2004 à 14:52:59   

Reply

Marsh Posté le 08-06-2004 à 16:26:58    


elshaman@camus:~$ apt-cache show hal
Package: hal
Priority: optional
Section: admin
Installed-Size: 576
Maintainer: Martin Waitz <tali@debian.org>
Architecture: i386
Version: 0.2.91-1
Depends: dbus-1 (>= 0.21), dbus-glib-1 (>= 0.21), libc6 (>= 2.3.2.ds1-4), libexpat1 (>= 1.95.6), libglib2.0-0 (>= 2.4.1), libhal0, python (>= 2.3), python (<< 2.4), python2.3-dbus, python2.3-gnome2, python2.3-glade2, adduser, pciutils, usbutils
Suggests: udev
[...]


 
On n'a pas les mêmes dépendances...
 
 
D-Bus ou HAL ne feront rien tout seuls sur ton système.
 
D-Bus émet des signaux lors de certains évênements, par exemple le branchement d'un périphérique ou l'insertion d'un CD.
 
HAL réalise une abstraction du matériel.
Pour tout CD-ROM par exemple, on va pouvoir trouver des informations toujours de la même façon (utilisation de clés spécifiques) pour différents lecteurs.
On peut voir tout son matériel en lançant « hal-device-manager » (il est écrit en python).
 
 
Des logiciels vont ensuite utiliser ces deux systèmes.
Par exemple, « gnome-volume-manager » lance gnome-cd à l'insertion d'un CD audio, totem pour un DVD, etc.
gnome-volume-manager « écoute » les messages de D-Bus.
 
 
 
Actuellement D-Bus et HAL semblent fonctionner correctement sur mon système mais toutes les possibilités souhaitées n'ont pas encore été implémentées et le protocole de communication pour D-Bus n'est pas totalement finalisé (il le sera à la version 1.0).
 
Quant à gnome-volume-manager, il montre un peu comment sera Gnome 2.8 ou une prochaine version de KDE avec la reconnaissance du matériel. Pour l'instant il semble fonctionner correctement.

Reply

Marsh Posté le 08-06-2004 à 16:36:50    

eL_Shaman___ a écrit :


elshaman@camus:~$ apt-cache show hal
Package: hal
Priority: optional
Section: admin
Installed-Size: 576
Maintainer: Martin Waitz <tali@debian.org>
Architecture: i386
Version: 0.2.91-1
Depends: dbus-1 (>= 0.21), dbus-glib-1 (>= 0.21), libc6 (>= 2.3.2.ds1-4), libexpat1 (>= 1.95.6), libglib2.0-0 (>= 2.4.1), libhal0, python (>= 2.3), python (<< 2.4), python2.3-dbus, python2.3-gnome2, python2.3-glade2, adduser, pciutils, usbutils
Suggests: udev
[...]


 
On n'a pas les mêmes dépendances...


si si, mais en fait moi j'ai collé ce qu'il me sort quand je fais apt-get install
comme les paquets dont dépend hal ont aussi des dépendances, forcément, y-a d'autres packages à installer
 

eL_Shaman___ a écrit :


D-Bus ou HAL ne feront rien tout seuls sur ton système.
 
D-Bus émet des signaux lors de certains évênements, par exemple le branchement d'un périphérique ou l'insertion d'un CD.
 
HAL réalise une abstraction du matériel.
Pour tout CD-ROM par exemple, on va pouvoir trouver des informations toujours de la même façon (utilisation de clés spécifiques) pour différents lecteurs.
On peut voir tout son matériel en lançant « hal-device-manager » (il est écrit en python).


merci mais j'ai lu la doc donc je sais à peu près tout ça :D
 

eL_Shaman___ a écrit :


Des logiciels vont ensuite utiliser ces deux systèmes.
Par exemple, « gnome-volume-manager » lance gnome-cd à l'insertion d'un CD audio, totem pour un DVD, etc.
gnome-volume-manager « écoute » les messages de D-Bus.


bah c'est ça qui me gène :o
ça devrait pas être dans les dépendances pour moi, on peut utiliser un cdrom sans utiliser gnome normalement
hal est censé être une couche d'abstraction pour éviter les systèmes propiétaires, donc mettre gnome en dépendance, c'est pas terrible je trouve
au mieux ça devrait être dans les suggest d'apres moi
c'est une erreur du mainteneur chez debian ou c'est hal qui est fait comme ça et qui a besoin de gnome ?
 
en attendant je regarde du coté de submount mais j'avoue que l'option hal me séduirait plus si elle n'était pas dépendante de gnome
vivement que ça soit finalisé  [\:udok]


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 08-06-2004 à 17:29:11    

Mouais, il y a « python2.3-gnome2 » qui veut installer une bonen partie de Gnome.
Je pense que c'est une erreur.
Il me semble que HAL ne nécessite que D-Bus, GLib et Python. Je ne vois pas ce que Python-gnome vient faire là... Ou alors à cause du programme pour afficher le matériel sur sa machine (hal-device-manager) ?

Reply

Marsh Posté le 10-11-2004 à 23:54:44    

bon, y-a ivman-ng qui a l'air pas mal mais j'arrive pas à compiler le cvs donc si qq'un peut m'aider, ça m'arrange :o
(quelle persévérence, 5 mois après :sol:)


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 11-11-2004 à 15:22:18    

(vieille version enlevée)
ouala !  :na:
non mé !  :o


Message édité par udok le 11-11-2004 à 18:53:08

---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 11-11-2004 à 18:52:39    

bon, spa rock stable quand le kernel merdoit quand même :o
d'ailleurs je viens de me chopper dans mes logs un magnifique :
program eject is using a deprecated SCSI ioctl, please convert it to SG_IO
[:mlc2]
mais bon, ça ça a pas fait planté
par contre quand le kernel perd la main pendant un instant sur le lecteur, j'ai le premier while qui devient faux donc ça s'arrete ... m'enfin j'ai pas trop le choix :o
 
mais sinon ça marche nickel :heink:
 
 
vouala le code que je pense pas retouché vu que ça marche comme ça :
 

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <err.h>
  5. #include <unistd.h>
  6. #include <sys/types.h>
  7. #include <sys/stat.h>
  8. #include <fcntl.h>
  9. // #include <sys/mount.h>
  10. // #include <fstab.h>
  11. #include <hal/libhal.h>
  12. // void hal_device_added(LibHalContext * ctx __attribute__ ((__unused__)),const char *udi) {}
  13. int main(void)
  14. {
  15. LibHalContext *hal_ctx;
  16. const char *udi_cdrom = "/org/freedesktop/Hal/devices/block_22_0";
  17. // struct fstab* odf;                                                   // occurence_dans_fstab
  18. char * chemin = malloc (sizeof (char) * 256);                           // 255 caractères
  19. int n = 0;                                                              // taille du nom du périphérique
  20.     int status;                                                             // status du processus fils au retour du fork
  21. int fderr=open("/tmp/scancd.log",O_WRONLY|O_CREAT|O_APPEND,S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH);    // sortie erreur
  22. if ( fderr == -1 )
  23. {
  24.  warn("Erreur à l'ouverture du fichier" );
  25.  return -5;
  26. }
  27. if ( dup2(fderr,2) == -1 )
  28. {
  29.  warn("Erreur lors de la duplication de la sortie d'erreur" );
  30.  return -4;
  31. }
  32. fputs("Début du log\n",stderr);
  33. LibHalFunctions hal_functions =
  34. {
  35.  NULL, //      hal_mainloop_integration,
  36.  NULL, //      hal_device_added,
  37.  NULL, //      hal_device_removed,
  38.  NULL, //      hal_device_new_capability,
  39.  NULL, //      hal_device_lost_capability,
  40.  NULL, //      hal_property_modified,
  41.  NULL, //      hal_device_condition
  42. };
  43. hal_ctx = hal_initialize(&hal_functions, FALSE);
  44. if (!hal_ctx)
  45. {
  46.  warn("Erreur lors de l'initialisation de HAL\n" );
  47.  return -1;
  48. }
  49. // printf("Test : ça existe ?  => %d\n",hal_device_exists(hal_ctx,udi_cdrom));
  50. // printf("Création d'un nouveau device => %s \n",hal_agent_new_device(hal_ctx));
  51. if (!hal_device_exists(hal_ctx,udi_cdrom)) { warn("Le périphérique n'existe pas" ); return -2; }
  52. else
  53. while ( 1 )
  54.      if (!strcmp( hal_device_get_property_string( hal_ctx, udi_cdrom, "storage.drive_type" ) , "cdrom" ) )
  55. {
  56.  while (!hal_device_get_property_bool(hal_ctx,udi_cdrom,"block.have_scanned" )) sleep(5);
  57.  // odf = getfsspec( hal_device_get_property_string( hal_ctx, udi_cdrom, "block.device" ) );  // On peut aussi utiliser getmntent
  58.  n = strlen (hal_device_get_property_string( hal_ctx, udi_cdrom, "block.device" ) );
  59.  strncpy (chemin, hal_device_get_property_string( hal_ctx, udi_cdrom, "block.device" ), n <= 255 ? n : 255);
  60.  if (!fork())
  61.   if ( execl( "/bin/mount", "mount", chemin, NULL ) ) warn("Erreur lors du montage" );
  62.             else wait(&status);
  63.  while (hal_device_get_property_bool(hal_ctx,udi_cdrom,"block.have_scanned" )) sleep(5);
  64. }
  65.      else sleep(5);
  66. // char *hal_agent_new_device (LibHalContext *ctx);
  67. return 0;
  68. }


 
j'espere que ça interesse qq'un :o
dites moi ce que vous en pensez
 
si vous voulez l'utiliser pour vous, faut que vous changiez la variable udi_cdrom pour quelque chose qui vous correspond, avoir une bonne entrée dans le fstab, et mettre un initscript dans /etc/dbus-1/event.d/, et le tour est joué (faut hal et dbus aussi bien sur)


Message édité par udok le 13-11-2004 à 01:48:03

---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 11-11-2004 à 19:15:54    

flag


---------------
:: Light is Right ::
Reply

Marsh Posté le 12-11-2004 à 14:44:21    

personne n'aime mon beau programme ?  [:sisicaivrai]


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 14:44:34    

nan [:mrbrelle]


---------------
:: Light is Right ::
Reply

Marsh Posté le 12-11-2004 à 14:44:34   

Reply

Marsh Posté le 12-11-2004 à 14:46:13    


 
[:sisicaivrai]
tu utilises quoi toi pour monter automatiquement ton lecteur de cd ? (sous linux bien sur [:kiki])


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 14:47:20    

gentoo (pas la distro)


Message édité par Mjules le 12-11-2004 à 14:47:30

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 12-11-2004 à 14:48:04    

udok a écrit :

[:sisicaivrai]
tu utilises quoi toi pour monter automatiquement ton lecteur de cd ? (sous linux bien sur [:kiki])

j'ai pas de lecteur cd sur ma passerelle [:mrbrelle]


Message édité par Tomate le 12-11-2004 à 14:48:32

---------------
:: Light is Right ::
Reply

Marsh Posté le 12-11-2004 à 14:51:06    

Mjules a écrit :

gentoo (pas la distro)


 
automatiquement ? :??:
il s'y prend comment ?


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 14:51:36    

tomate a écrit :

j'ai pas de lecteur cd sur ma passerelle [:mrbrelle]


 
tu utilises plus linux en desktop ?  :'(
misère :pfff:


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 14:53:23    

udok a écrit :

tu utilises plus linux en desktop ?  :'(
misère :pfff:

nan j'en ai eu ma claque :/


---------------
:: Light is Right ::
Reply

Marsh Posté le 12-11-2004 à 14:53:32    

udok a écrit :

automatiquement ? :??:
il s'y prend comment ?

il y a une option dans gentoo (le file manager) qui permet de monter automatiquement un périphérique quand tu te rends dans son dossier (il invoque tout simplement mount) et de le démonter après
 
évidemment, sorti du soft, ça marche pas :D


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 12-11-2004 à 14:55:03    

tomate a écrit :

nan j'en ai eu ma claque :/


 
ça marche du feu de dieu pourtant maintenant ... qu'est ce qui allait pas ?  :??:


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 14:55:35    

Mjules a écrit :

il y a une option dans gentoo (le file manager) qui permet de monter automatiquement un périphérique quand tu te rends dans son dossier (il invoque tout simplement mount) et de le démonter après
 
évidemment, sorti du soft, ça marche pas :D


 
ah bah c'est bien ce que je pensais ... en plus il est laid comme tout ce soft  [:mrbrelle]


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 14:59:56    

udok a écrit :

ça marche du feu de dieu pourtant maintenant ... qu'est ce qui allait pas ?  :??:

le support du port raid SATA qui me permet d'avoir un port IDE supplémentaire, comme j'ai 4 durs + 2 lecteurs, qui ne fonctionne plus sur le 2.6 :/


---------------
:: Light is Right ::
Reply

Marsh Posté le 12-11-2004 à 15:01:54    

Reply

Marsh Posté le 13-11-2004 à 12:50:27    

pourquoi j'ai les mount qui defunct là bordel !! :o
j'ai fait un wait, y-en a marre :pfff:

Reply

Marsh Posté le 23-11-2004 à 16:17:09    

J'ai installé le support hal pour gnome sous ma gentoo, il n'y a pas à dire, c'est une révolution :)

Reply

Marsh Posté le 20-12-2004 à 19:55:02    

bon ok, gnome-volume-manager c'est bien en fait [:romf]

Reply

Marsh Posté le 20-12-2004 à 19:59:01    

[:joce]


---------------
:: Light is Right ::
Reply

Marsh Posté le 20-12-2004 à 20:01:19    

quand j'essaie de démonter un périphérique qui a été monter par gnome-volume-manager, il me dit qu'il peut pas parce que je suis pas root
c'est le fonctionnement normal ou c'est un pb avec pmount ?
sachant que j'ai bien le setuid root sur pmount et que j'ai bien inscrit mon utilisateur dans le group plugdev
 
deuxieme question : sont pourris les noms donnés dans /media, y-a une solution pour mettre des noms un peut plus parlant ?  :??:
en attendant je vais mettre dans le fstab mais c'est dommage, j'avais rien eu à configurer jusque là et je trouvais ça bien [:romf]


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 20-12-2004 à 20:04:31    

vraiment trop pratique tout ça dis donc [:gratgrat]


Message édité par Tomate le 20-12-2004 à 20:04:39

---------------
:: Light is Right ::
Reply

Marsh Posté le 20-12-2004 à 20:15:45    

je vais avoir du mal à m'en sortir sans la ligne de commande là [:joce]


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 20-12-2004 à 20:19:41    

udok a écrit :

je vais avoir du mal à m'en sortir sans la ligne de commande là [:joce]


ah bah tiens ... :D


---------------
:: Light is Right ::
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed