# [hal/dbus] problème de détection ...

## mr-ti

Bonjour,

hal détecte une insertion de CD dans mon lecteur (/dev/hdc) et une insertion de clé (/dev/sda...).

Quand je branche un lecteur CD externe (/dev/sr0) il est détecté mais quand j'insère un CD il n'envoie aucun évènement !

Est-ce que quelqu'un a une idée ?

Merci

----------

## loopx

Moi j'ai un souci aussi avec un des portables que j'ai installé, hald et dbus de lancé, kde compilé avec hal, pmount installé, et rien ne va lol   :Laughing: 

----------

## mr-ti

moi il s'agit de la détection d'insertion d'un media (CD ou DVD) : mon Lecteur CD/DVD IDE : c'est OK et mon Lecteur CD/DVD externe (SCSI) il ne fait rien ... alors qu'il est bien reconnu !

```
usb 1-3: new high speed USB device using ehci_hcd and address 10

usb 1-3: configuration #1 chosen from 1 choice

scsi6 : SCSI emulation for USB Mass Storage devices

usb-storage: device found at 10

usb-storage: waiting for device to settle before scanning

  Vendor: MATSHITA  Model: DVD-ROM SR-8587   Rev: 5X37

  Type:   CD-ROM                             ANSI SCSI revision: 00

sr0: scsi3-mmc drive: 48x/48x cd/rw xa/form2 cdda tray

sr 6:0:0:0: Attached scsi CD-ROM sr0

usb-storage: device scan complete
```

----------

## loopx

Ben, peut etre qu'il faut rajouter une règle quelque part pour lui dire d'écouter sur d'autre device   :Rolling Eyes: 

Moi tout est détecté (enfin, je sais pas si dbus le détecte vraiment...) mais kde ne m'affiche pas la tit fenetre   :Crying or Very sad:   Pourtant, le pmount fonctionne très bien....

----------

## mr-ti

avant tout marchait correctement, mais j'ai viré coldplug car c'est devenu obsolète et là je viens de virer hotplug mais là plus aucun médian amovible n'est détecté...

Je crois qu'il faut rajouter des "rules" à udev... mais je crois que je vais remettre hotplug et coldplug pour que tout refonctionne...

----------

## xaviermiller

Salut,

Vous avez activé "ide-scsi" en kernel 2.6 ? Désactivez-le, c'est obsolète  :Wink: 

----------

## mr-ti

j'ai regardé ma config kernel et il était déjà désactivé...

----------

## mr-ti

Rien à faire, ça fait maintenant deux jours que je m'arrache les cheveux dessus sans y arriver !

Est ce que quelqu'un connais une manière d'installer toutes les règles (ou l'adresse d'un bon tuto) pour que hal et udev détecte correctement tous les périphériques et insertion des médias... (sans hotplug et coldplug : je sais que des dstrib comme ubuntu y arrive).

Merci  :Smile: 

----------

## loopx

Moi je pense qu'un emerge -e world sur mon pc arrangera l'histoire mais j'ai pas envie, trop long. Ca refonctionnera à force de recompiler des trucs  :Very Happy: 

----------

## geekounet

```
# vim /etc/make.conf

USE="... dbus hal ..."

# emerge -a udev coldplug hal dbus pmount gnome-volume-manager

# emerge -auDN world

# etc-update

# killall udevd && udevd --daemon

# rc-update add coldplug default

# rc-update add dbus default

# rc-update add hald default

# /etc/init.d/coldplug start

# /etc/init.d/dbus start

# /etc/init.d/hald start

# gpasswd -a ton_user usb

# gpasswd -a ton_user plugdev 
```

(coldplug est requis si tu est en stable, c'est la version ~x86 d"udev qui gère tout toute seul  :Smile:  )

Et restart de la session du user  :Smile: 

Sous Gnome, t'aura ptêt besoin de démarrer gnome-volume-manager.

Et sous KDE, dans le centre de config : Peripherals > Storage Media > Advanced et tout cocher  :Smile:  (désolé, je suis tout en anglais)

Voilà je pense avoir tout dit ^^

----------

## loopx

```

loop-nb script # rc-status

Runlevel: default

 xdm                                                                                                                                                                                   [ started  ]

 dbus                                                                                                                                                                                  [ started  ]

 hald                                                                                                                                                                                  [ started  ]

 sshd                                                                                                                                                                                  [ started  ]

 distccd                                                                                                                                                                               [ started  ]

 acpid                                                                                                                                                                                 [ started  ]

 cupsd                                                                                                                                                                                 [ started  ]

 local                                                                                                                                                                                 [ started  ]

 iptables                                                                                                                                                                              [ started  ]

 syslog-ng                                                                                                                                                                             [ started  ]

 laptop_mode                                                                                                                                                                           [ started  ]

 netmount                                                                                                                                                                              [ started  ]

 vsftpd                                                                                                                                                                                [ started  ]

 cpufreqd                                                                                                                                                                              [ started  ]

 alsasound  

```

coldplug ?????? ajout du user au group usb ?????  Sur mon portable, ca fonctionne sans ca (avec kde) et sur le portable de mon frère (le meme en fait, mais le proco est à 1,6 et pas 2 ghz) ben ca va pas   :Shocked: 

EDIT: oki, pas tout lu. Dans kde, les truc à cocher, ben en fait, 2 options sur 3 sont grisée  :Neutral:    je pense que juste la dernière peut etre coché (elle l'est déjà) et chez moi en effet, j'ai les 3 cochées... Maintenant, faut que je recompile le coupable  :Smile: 

----------

## mr-ti

bon ... 

là je suis en version test donc avec udev 0.98. À force de bidouilles, j'ai réussi à faire marcher l'insertion et détection pour la clé USB, le CDROM en IDE sans coldplug/hotplug, mais par contre quand l'insère un CDROM dans mon lecteur externe : toujours pas d'évènements  :Sad: 

----------

## geekounet

 *mr-ti wrote:*   

> bon ... 
> 
> là je suis en version test donc avec udev 0.98. À force de bidouilles, j'ai réussi à faire marcher l'insertion et détection pour la clé USB, le CDROM en IDE sans coldplug/hotplug, mais par contre quand l'insère un CDROM dans mon lecteur externe : toujours pas d'évènements 

 

Sans hotplug, t'auras pas d'evenement.

----------

## loopx

Il n'y aurais pas moyen de "lire" ce que dbus envoye ?

Comme ca, je pourrais savoir si c'est plus kde ou autre chose ...

----------

## blasserre

je lance un truc comme ça sans vraiment avoir cherché   :Embarassed: 

as tu vérifié les flags renvoyés par hal pour ton cd externe 

( avec lshal ou hal-device-manager ) 

je pense en particulier aux clés :

- storage.removable = true

- storage.media_check_enabled = true

- storage.automount_enabled_hint = true

qui parlent d'elles même

et

- storage.drive_type 

qui si elle est à disk empêche l'automount (à vérifier)

----------

## mr-ti

OK merci pour cette attention !

voilà ce qui me crache pour mon lecteur externe :

```
udi = '/org/freedesktop/Hal/devices/usb_device_4cf_8818_noserial_if0_scsi_host_scsi_device_lun0'

  info.udi = '/org/freedesktop/Hal/devices/usb_device_4cf_8818_noserial_if0_scsi_host_scsi_device_lun0'  (string)

  linux.subsystem = 'scsi'  (string)

  linux.hotplug_type = 1  (0x1)  (int)

  scsi.type = 'cdrom'  (string)

  scsi.vendor = 'HL-DT-ST'  (string)

  scsi.model = 'DVD-ROM GDR8160B'  (string)

  info.product = 'SCSI Device'  (string)

  info.linux.driver = 'sr'  (string)

  scsi.lun = 0  (0x0)  (int)

  scsi.target = 0  (0x0)  (int)

  scsi.bus = 0  (0x0)  (int)

  scsi.host = 7  (0x7)  (int)

  info.parent = '/org/freedesktop/Hal/devices/usb_device_4cf_8818_noserial_if0_scsi_host'  (string)

  info.bus = 'scsi'  (string)

  linux.sysfs_path_device = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host7/target7:0:0/7:0:0:0'  (string)

  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host7/target7:0:0/7:0:0:0'  (string)
```

Donc il détecte bien là un CDROM externe (scsi) mais je n'ai pas d'infos sur le CD à l'intérieur comme c'est le cas du lecteur IDE :

```
udi = '/org/freedesktop/Hal/devices/storage_serial_Z492502265'

  info.addons = {'hald-addon-storage', 'hald-addon-storage'} (string list)

  storage.policy.desired_mount_point = 'dvdrecorder'  (string)

  storage.policy.mount_filesystem = 'auto'  (string)

  storage.policy.should_mount = true  (bool)

  block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Z492502265'  (string)

  info.udi = '/org/freedesktop/Hal/devices/storage_serial_Z492502265'  (string)

  storage.cdrom.write_speeds = {'2822', '2117', '1764', '1411', '706'} (string list)

  storage.cdrom.write_speed = 2822  (0xb06)  (int)

  storage.cdrom.read_speed = 4234  (0x108a)  (int)

  storage.cdrom.support_media_changed = true  (bool)

  storage.cdrom.hddvdrw = false  (bool)

  storage.cdrom.hddvdr = false  (bool)

  storage.cdrom.hddvd = false  (bool)

  storage.cdrom.bdre = false  (bool)

  storage.cdrom.bdr = false  (bool)

  storage.cdrom.bd = false  (bool)

  storage.cdrom.dvdplusrdl = false  (bool)

  storage.cdrom.dvdplusrw = false  (bool)

  storage.cdrom.dvdplusr = false  (bool)

  storage.cdrom.dvdram = false  (bool)

  storage.cdrom.dvdrw = false  (bool)

  storage.cdrom.dvdr = true  (bool)

  storage.cdrom.dvd = true  (bool)

  storage.cdrom.cdrw = true  (bool)

  storage.cdrom.cdr = true  (bool)

  storage.requires_eject = true  (bool)

  storage.hotpluggable = false  (bool)

  info.capabilities = {'storage', 'block', 'storage.cdrom'} (string list)

  info.category = 'storage'  (string)

  info.product = 'TOSHIBA ODD-DVD SD-R6372'  (string)

  storage.removable = true  (bool)

  storage.physical_device = '/org/freedesktop/Hal/devices/pci_8086_24ca_ide_1_0'  (string)

  storage.firmware_version = '1032'  (string)

  storage.serial = 'Z492502265'  (string)

  storage.vendor = ''  (string)

  storage.model = 'TOSHIBA ODD-DVD SD-R6372'  (string)

  storage.drive_type = 'cdrom'  (string)

  storage.automount_enabled_hint = true  (bool)

  storage.media_check_enabled = true  (bool)

  storage.no_partitions_hint = true  (bool)

  storage.bus = 'ide'  (string)

  block.is_volume = false  (bool)

  block.minor = 0  (0x0)  (int)

  block.major = 22  (0x16)  (int)

  block.device = '/dev/hdc'  (string)

  linux.hotplug_type = 3  (0x3)  (int)

  info.parent = '/org/freedesktop/Hal/devices/pci_8086_24ca_ide_1_0'  (string)

  linux.sysfs_path_device = '/sys/block/hdc'  (string)

  linux.sysfs_path = '/sys/block/hdc'  (string)

udi = '/org/freedesktop/Hal/devices/volume_label_Kit_ADSL'

  volume.unmount.valid_options = {'lazy'} (string list)

  volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime', 'nodiratime', 'noexec', 'quiet', 'utf8', 'uid=', 'mode=', 'iocharset='} (string list)

  org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-system-storage-mount', 'hal-system-storage-unmount', 'hal-system-storage-eject'} (string list)

  org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} (string list)

  org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 'Eject'} (string list)

  info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)

  volume.ignore = false  (bool)

  volume.policy.desired_mount_point = 'dvdrecorder'  (string)

  volume.policy.mount_option.utf8 = true  (bool)

  info.udi = '/org/freedesktop/Hal/devices/volume_label_Kit_ADSL'  (string)

  info.product = 'Kit ADSL'  (string)

  volume.disc.capacity = 650901504  (0x26cbf800)  (uint64)

  volume.disc.is_svcd = false  (bool)

  volume.disc.is_vcd = false  (bool)

  volume.disc.is_videodvd = false  (bool)

  volume.disc.is_rewritable = false  (bool)

  volume.disc.is_appendable = false  (bool)

  volume.disc.is_blank = false  (bool)

  volume.disc.has_data = true  (bool)

  volume.disc.has_audio = false  (bool)

  volume.disc.type = 'cd_rom'  (string)

  volume.size = 650901504  (0x26cbf800)  (uint64)

  volume.num_blocks = 1271292  (0x1365fc)  (int)

  volume.block_size = 2048  (0x800)  (int)

  info.capabilities = {'volume', 'block'} (string list)

  info.category = 'volume'  (string)

  volume.is_partition = true  (bool)

  volume.is_disc = true  (bool)

  volume.is_mounted = false  (bool)

  volume.mount_point = ''  (string)

  volume.label = 'Kit ADSL'  (string)

  volume.uuid = ''  (string)

  volume.fsversion = 'Joliet Extension'  (string)

  volume.fsusage = 'filesystem'  (string)

  volume.fstype = 'iso9660'  (string)

  storage.model = ''  (string)

  block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Z492502265'  (string)

  block.is_volume = true  (bool)

  block.minor = 0  (0x0)  (int)

  block.major = 22  (0x16)  (int)

  block.device = '/dev/hdc'  (string)

  linux.hotplug_type = 3  (0x3)  (int)

  info.parent = '/org/freedesktop/Hal/devices/storage_serial_Z492502265'  (string)

  linux.sysfs_path_device = '/sys/block/hdc/fakevolume'  (string)

  linux.sysfs_path = '/sys/block/hdc/fakevolume'  (string)
```

Là on remarque bien qu'il en crache beaucoup plus : même au niveau du lecteur ...

----------

## UB|K

 *loopx wrote:*   

> Il n'y aurais pas moyen de "lire" ce que dbus envoye ?

 

```
dbus-monitor
```

est peut-être ce que tu cherches?

----------

## mr-ti

voilà ce que ça me donne en lançant un dbus-monitor :

```
signal sender=org.freedesktop.DBus -> dest=:1.1 interface=org.freedesktop.DBus; member=NameAcquired

   string ":1.1"

method call sender=:1.1 -> dest=org.freedesktop.DBus interface=org.freedesktop.DBus; member=AddMatch

   string "type='method_call'"

method call sender=:1.1 -> dest=org.freedesktop.DBus interface=org.freedesktop.DBus; member=AddMatch

   string "type='method_return'"

method call sender=:1.1 -> dest=org.freedesktop.DBus interface=org.freedesktop.DBus; member=AddMatch

   string "type='error'"

```

et puis plus rien ...

pendant le temps ou il était lancé j'ai unséré un cd dans les deux lecteurs (ext et int).

EDIT 1 ::

J'ai aisayé la même manip : insertion dans les deux lecteur et là on remarque que il n'y a que le lecteur interne qui réagit !

il doit y avoir quelque part un truc à ajouter pour lui dire : "surveille le lecteur externe ..."

```
atmrti ~ # dbus-monitor --system

signal sender=org.freedesktop.DBus -> dest=:1.3 interface=org.freedesktop.DBus; member=NameAcquired

   string ":1.3"

signal sender=:1.0 -> dest=(null destination) interface=org.freedesktop.Hal.Manager; member=DeviceAdded

   string "/org/freedesktop/Hal/devices/volume_label_Kit_ADSL"
```

----------

## Enlight

 *pierreg wrote:*   

>  *mr-ti wrote:*   bon ... 
> 
> là je suis en version test donc avec udev 0.98. À force de bidouilles, j'ai réussi à faire marcher l'insertion et détection pour la clé USB, le CDROM en IDE sans coldplug/hotplug, mais par contre quand l'insère un CDROM dans mon lecteur externe : toujours pas d'évènements  
> 
> Sans hotplug, t'auras pas d'evenement.

 

Ouais alors ça tombe bien que t'en parles c'est justement la partie avec laquelle j'ai des problèmes de comprenettes, pour ce que j'ai compris, auparavant hotplug générait l'event, disait à udev de créer le node puis loadait le module, maintenant si j'ai bien compris, c'est udev qui crée l'event et fais le mknod avant de dire à hotplug de loader le module... enfin la littérature sur le sujêt était quasi absente et le peu que j'ai trouvé n'étais pas hypper clair (et le code de la base-layout ne m'a pas aidé non plus, j'a même jamais trouvé où ils faisaient le udevstart.

----------

## geekounet

 *Enlight wrote:*   

>  *pierreg wrote:*    *mr-ti wrote:*   bon ... 
> 
> là je suis en version test donc avec udev 0.98. À force de bidouilles, j'ai réussi à faire marcher l'insertion et détection pour la clé USB, le CDROM en IDE sans coldplug/hotplug, mais par contre quand l'insère un CDROM dans mon lecteur externe : toujours pas d'évènements  
> 
> Sans hotplug, t'auras pas d'evenement. 
> ...

 

Je crois plutôt que c'est udev qui intègre le hotplug, donc il fait tout tout seul  :Smile: . Mais il faut toujours les fichiers d'hotplug dans /etc/hotplug/ pour gérer l'event je pense. Donc il ne faut pas virer hotplug-base tout ça ...

----------

## mr-ti

 *pierreg wrote:*   

> 
> 
> Je crois plutôt que c'est udev qui intègre le hotplug, donc il fait tout tout seul . Mais il faut toujours les fichiers d'hotplug dans /etc/hotplug/ pour gérer l'event je pense. Donc il ne faut pas virer hotplug-base tout ça ...

 

apparemment non car moi j'ai tout viré : hotplug, hotplug-base et coldplug et tout marche sauf la détection d'insertion de cd pour mon lecteur externe. D'ailleurs on le vois bien dans les dernière version des distribs comme ubuntu et mandrake il n'y a plus un poil de hotplug !

----------

## geekounet

 *mr-ti wrote:*   

>  *pierreg wrote:*   
> 
> Je crois plutôt que c'est udev qui intègre le hotplug, donc il fait tout tout seul . Mais il faut toujours les fichiers d'hotplug dans /etc/hotplug/ pour gérer l'event je pense. Donc il ne faut pas virer hotplug-base tout ça ... 
> 
> apparemment non car moi j'ai tout viré : hotplug, hotplug-base et coldplug et tout marche sauf la détection d'insertion de cd pour mon lecteur externe. D'ailleurs on le vois bien dans les dernière version des distribs comme ubuntu et mandrake il n'y a plus un poil de hotplug !

 

Pourtant, udev a une dépendance sur hotplug-base.

----------

## mr-ti

 *pierreg wrote:*   

> 
> 
> Pourtant, udev a une dépendance sur hotplug-base.

 

Oui, en effet ! j'y avais pas fait attention...

À mon avis par la suite les script de hoplug-base vont disparaître et lasser place juste aux commandes (scripts et bins) stockées dans /lib/udev.

Ça fait maintenant trois / quatre jours que suis dedans et je commence tout juste à commencer à comprendre l'environnement UDEV !

Enfin ça vaut le coup !

----------

## loopx

 *UB|K wrote:*   

>  *loopx wrote:*   Il n'y aurais pas moyen de "lire" ce que dbus envoye ? 
> 
> ```
> dbus-monitor
> ```
> ...

 

Non, ca fonctionne pas, j'ai mis un cd dans le lecteur et voilà ce que j'obitens (rien en fait): (c'est sur mon pc, et la tit fenetre de kde est apparue, j'ai pas tester sur le portable qui fonctionne pas mais si on vois déjà rien   :Shocked:  ...)

```

loopx@loop ~/test $ dbus-monitor

signal sender=org.freedesktop.DBus -> dest=:1.0 interface=org.freedesktop.DBus; member=NameAcquired

   string ":1.0"

method call sender=:1.0 -> dest=org.freedesktop.DBus interface=org.freedesktop.DBus; member=AddMatch

   string "type='method_call'"

method call sender=:1.0 -> dest=org.freedesktop.DBus interface=org.freedesktop.DBus; member=AddMatch

   string "type='method_return'"

method call sender=:1.0 -> dest=org.freedesktop.DBus interface=org.freedesktop.DBus; member=AddMatch

   string "type='error'"

```

----------

## mr-ti

 *loopx wrote:*   

>  *UB|K wrote:*    *loopx wrote:*   Il n'y aurais pas moyen de "lire" ce que dbus envoye ? 
> 
> ```
> dbus-monitor
> ```
> ...

 

en effet moi aussi j'ai eu la même chose !

essaye maintenant la commande :

```
dbus-monitor --system
```

moi ça m'a donné quelque chose pour le lecteur IDE mais pas pour l'externe

----------

