Selon Alban browaeys <[EMAIL PROTECTED]>:

> J'ai désactivé le test . hotplug charge le code de eu_dsp pour chaque
> x:1.# du modem de simultanément. Si deux appels à l'agent usb hotplut
> traitent le même module , le second est arrêté. Seul le premier est
> traité.
> Hors le modem fournit 1.0, 1.1 et 1.2 ... de façon aléatoire si 1.1 ou
> 1.2 sont traités en premier SEND_DSP n'est pas mis à 1 . J'ai supprimé
> ce test sur LAST_CHAR faute de mieux.

Tu es sûr de toi ? Tu as essayer de réactiver le test et de laisser le sleep 3
dont tu parles après ?
Si j'ai bien compris (et que ton explication est correct), le scénario à
problème est celui-ci :
  hotplug lance eagle-usb avec LAST_CHAR=1.1
(pas de chargement à cause de notre test),
  hotplug lance eagle-usb avec LAST_CHAR=1.0 juste après,
le traitement précédent n'étant pas terminé celui-ci est abandonné
(donc pas de chargement),
  hotplug lance eagle-usb avec LAST_CHAR=1.2
(pas de chargement à cause de notre test)

Lors de mes tests (et j'ai tjs quelques problèmes de hotplug)
j'ai le souvenir que j'avais toujours 1.0, 1.1 et 1.2.
D'un autre coté mes premiers tests sur hotplug remontent à loin...
J'aimerais que tu reessayes avec le « sleep 3 », pour vérifier
que ce n'est pas l'unique correctif finalement.
Et je vais aussi retester cela de mon coté.

> #268028: /etc/init.d/mountvirtfs Doesn't mount /proc/bus/usb
> mountvirtfs will not mount /proc/bus/usb if kernel USB support is
> compiled as modules and usbcore isn't in /etc/modules and is being
> loaded by hotplug. It seams mountvirtfs is running too soon for
> that. If I run it after the boot process is over it will mount
> /proc/bus/usb correctly.

Merci. Je savais qu'il y avait un problème de timing
mais je n'avais pas réussi à savoir où.
Je note que ce problème ne doit pas être spécifique à Debian
(perso j'utilise un kernel vanilla).
Je suppose que la plupart des distribs ont ajouté usbcore
dans /etc/modules.

> NB: il ne semble pas y avoir de solution pour nous.
Je suis d'accord. Le bug n'est pas dans eagle-usb.

> le submitter propose d'avancer hotplug avant de monter proc/bus/usb.
Mauvaise solution en effet.
« hotplug » a besoin du driver de tous les bus pour fonctionner.
Et même si ce n'était pas le cas, cette solution ne serait pas
meilleure que le sleep que nous utilisons actuellement,
si des choses doivent être ordonnées alors il faut utiliser
des mécanismes de synchronisation.
Je pense que hotplug devrait attendre que les abstractions noyau de
chaque bus soient opérationnelles avant de lancer un quelconque agent
(mais je laisse aux développeurs d'hotplug le soin d'imaginer
une implémentation correcte, le problème n'est pas simple).

À mon avis, la meilleure solution pour nous est d'ajouter quelque chose
de simple pour contourner l'actuel bug, et en espérant qu'il sera corrigé.
Conseiller dans la FAQ d'ajouter usbcore à /etc/modules
et peut-être que le paquet Debian devrait le faire.


> Alban

Merci beaucoup,
mcoolive.

Reply via email to