Journal detecter la demande d'ejection quand un cd est montee

Posté par  .
Étiquettes : aucune
0
3
jan.
2004
J'avais lu quelque part que c'etait possible, et comme j'avais un peu de temps je me suis mis a regarder dans la doc atapi : il existe 2 commandes possibles, mais apparament aucune marche.

En desespoir de cause je me met a chercher sur la kernel ml et je trouve un bout de code qui fait a peu pres ce que je veux : http://www.ussg.iu.edu/hypermail/linux/kernel/0202.0/0603.html(...)

Le seul pb est que quand on monte un cd, puis le demonte, le kernel continue a locker la porte du cd jusqu'a que l'on kille l'appli (ie ferme /dev/cdrom), j'ai donc deplacer l'ouverture du periph (/dev/cdrom) dans la boucle et je le ferme apres chaque utilisation.

Il reste un autre pb, c'est que sur les vieux lecteur (chez moi 2000), l'evenement "eject request" n'est pas recuperer :(.
Peut etre qu'en regardant du cote de GPCMD_GET_MEDIA_STATUS a la place de GPCMD_GET_EVENT_STATUS_NOTIFICATION ça marcherais.

Bref, je suis assez content, et je pense que ça va me permettre de monter demonter les cdrom automatiquement en le couplant avec CDROM_DRIVE_STATUS qui permet de savoir si un cd est present ou non...

PS: un exemple d'utilisation de CDROM_DRIVE_STATUS http://www.sslug.dk/emailarkiv/cprog/1999_10/msg00045.html(...) (penser a corriger le bug CDROM_DRIVE_STATUS -> CDROM_DISC_STATUS dans le 2nd ioctl...
  • # Re: detecter la demande d'ejection quand un cd est montee

    Posté par  . Évalué à 1.

    C'est un truc dans le genre de supermount, mais juste pour les CD/DVD, que tu veux faire c'est ça ?
    Ça peut être intéressant, ça.
    • [^] # Re: detecter la demande d'ejection quand un cd est montee

      Posté par  . Évalué à 1.

      le truc que j'ai fais est en userspace : c'est deja plus propre que supermount qui n'a jamais rellement marché chez moi.

      J'ai a peu pres finis le truc et pour chaque device a surveiller on lance un demon, et celui ci envoi a un script des evenement un peu a la hotplug (par exemple "/dev/cdrom0 add DATA_1")
      Ensuite ce script decide ce qu'il faut faire (monter si ce n'est pas un cd audio,...)

      Bon il me reste quelque test a faire avant de le mettre en ligne...
      • [^] # Re: detecter la demande d'ejection quand un cd est montee

        Posté par  . Évalué à 1.

        C'est interessant comme approche. Ca evitera sans doute le probleme avec supermount qui fait que par exemple sous konqueror, ca freeze pendant quelques secondes lorsqu'il fait un cd dans /mnt ( sans doute parce que le lecteur de CD est marqué comme monté et que c'est à ce moment que supermount vérifie l'état du tout ).

        Tu peux m'ajouter à la liste de tes testeurs.
      • [^] # Re: detecter la demande d'ejection quand un cd est montee

        Posté par  . Évalué à 1.

        J'ACHÈTE !
  • # Re: detecter la demande d'ejection quand un cd est montee

    Posté par  (site web personnel) . Évalué à -1.

    Indonesian villagers claim to have captured a python that is almost 49 feet long and weighs nearly 990 pounds, a local official said.

    On m'a toujours dit que python c'était long, et lourd ;)
  • # Re: detecter la demande d'ejection quand un cd est montee

    Posté par  . Évalué à 1.

    Si ça peut aider ...
    rpm -q -i magicdev :
    Description :
    Magicdev est un démon qui s'exécute à l'intérieur de l'environnement
    GNOME et détecte le moment auquel un CD est retiré ou inséré. Magicdev
    manipule des programmes exécutables en cours d'exécution sur le CD,
    mettant à jour le gestionnaire de fichiers et jouant des CD audio.


    Je ne peux pas tester actuelle.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.