Forum général.général Reseter un périphérique USB

Posté par .
Tags : aucun
0
25
mai
2005
Cher journal,

je me pose la question suivante:
Est-t-il possible de reseter un périphérique USB?

En effet, j'ai un périph qui a tendance à planter, et je perd total le contrôle dessus.

Suivant les cas, si je le débranche et le rebranche, cela marche,
mais parfois il faut aussi l'éteindre (+débranche)
pour que je puisse reprendre le contrôle dessus.

Je pense que si je pouvais le reseter cela pourrait résoudre souvent le problème.

Est ce qu'il existe un truc à la cat 1 > /proc/bus/usb/.../* (genre power)
?
ou faut faire un prog en C avec un usb_reset ?

ou autre?
  • # Démonter le hub

    Posté par . Évalué à 3.

    Personnellement, je fais un rmmod de usb-uhci, ou tout autre nom de module en *hci, ce qui a pour effet de désinstaller le pilote du hub USB et donc, lorsque c'est possible, de le mettre hors-tension. Par là même, ce sont tous les périphériques qui y sont connectés qui seront mis hors-service. Un modprobe sur le même module et tout rentre dans l'ordre.
    • [^] # Re: Démonter le hub

      Posté par . Évalué à 1.

      C'est ce que je faisait à une époque, mais comme j'ai d'autres périphs USB, donc certain de mass-storage, cela peut devenir un joyeux bazar :/

      De plus, maintenant, ce n'est plus un module ;)
      • [^] # Re: Démonter le hub

        Posté par . Évalué à 2.

        C'est sûr que c'est piggy pour le moins, mais à mon avis cela reste préférable à débrancher/rebrancher le périphérique à la main à chaque fois. Je te conseille d'ailleurs de remettre la gestion du hub en module, spécialement pour cet usage et pour pouvoir facilement changer de configuration.

        Pour le reste, il n'y a pas moyen de mettre un périphérique hors tension si celui-ci n'a pas lui-même prévu une fonction pour le faire, car pour autant que je sache, ce n'est pas prévu par la spécification USB. En outre, si ton périphérique ne répond plus, tu ne pourras pas lui donner l'ordre de se mettre hors service.

        Par contre, la norme impose au moins un Reset Général du host, et certains hubs de bonne qualité proposent une mise hors-tension port par port. Regarde les sources du noyau, dans drivers/usb/host/ochi-hcd.c par exemple (noyau 2.6). Il y a un paramètre power_switching qui semble servir à cela. Peut-être est-il possible d'appeler un sysctl ou quelque chose d'équivalent.
  • # type ?

    Posté par (page perso) . Évalué à 2.

    quel type de periph usb ? un truc lié à l'Usb Mass Storage ?

    M.
    • [^] # Re: type ?

      Posté par . Évalué à 1.

      Euh,
      là c'est une imprimante,
      mais faudrait que je puisse le faire avec une clé IrDA aussi
      • [^] # Re: type ?

        Posté par . Évalué à 2.

        Si tu commences à avoir le même problème avoir plusieurs périphériques, soit le pilote est buggué, soit c'est tout ton bus qui à un problème physique.

Suivre le flux des commentaires

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