J'ai mis à jour mon HTPC du noyau 3.7.10 vers la version 3.10.7 et il semble que CONFIG_USB_SUSPEND est maintenant partie des options du noyau et incluse dans PM.
Le principal problème auquel je suis confronté est que j'ai un disque dur externe et que, lors de la suspension et du réveil du HTPC, celui-ci n'est pas disponible pour le système. Le disque dur se réveille (vous pouvez l'entendre à nouveau), mais lorsque vous essayez d'accéder au point de montage, vous obtenez le message d'erreur suivant:
ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error
Et sur dmesg:
[ 253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading directory block (ino 2, block 0)
Dans les noyaux précédents, définir CONFIG_USB_SUSPEND = N résoudrait le problème, car le disque dur gérerait son hibernation lui-même et le point de montage serait toujours accessible. Lorsque le disque dur était en veille et que le HTPC avait besoin de quelque chose du point de montage du disque dur, le disque dur lui-même se réveillait et fonctionnait sans problème.
En ce moment, j'ai essayé ce qui suit sans succès:
- Modifiez manuellement / sys / bus / usb / devices / usb * / power / control sur "on" au lieu de "auto" .
- Modifiez manuellement / sys / bus / usb / devices / usb * / power / autosuspend en "-1" au lieu de "0" .
Mais au réveil du HTPC, le point de montage est à nouveau inaccessible. Comme solution de rechange, je peux démonter et remonter le point de montage. Il fonctionne à nouveau sans problème, mais je suis certain qu’il devrait exister un moyen d’éviter que le système d’exploitation gère la suspension automatique usb.
Avez-vous une idée de la désactivation automatique de USB sur les versions 3.7.10 et supérieures du noyau?
/sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persist
te donne1
? Negrep CONFIG_PM_RUNTIME /boot/config-$(uname -r)
vous donnery
? power-management.txtpower/persist
donne1
et je n'ai aucun fichier de configuration dans/boot
.CONFIG_PM_RUNTIME=y
est configuré dans le.config
fichier du noyau .Réponses:
Pour Ubuntu et Debian ,
usbcore
est compilé dans le noyau, afin de créer des entrées sur/etc/modprobe.d
sera pas le travail: nous devons changer les paramètres de démarrage du noyau.Editez le
/etc/default/grub
fichier et changez laGRUB_CMDLINE_LINUX_DEFAULT
ligne pour ajouter l'usbcore.autosuspend=-1
option:Notez que ces
quit splash
options étaient déjà présentes. Alors gardez les autres options que vous avez aussi.Après avoir sauvegardé le fichier, mettez à jour grub:
Et redémarrez .
Maintenant, vérifiez la
autosuspend
valeur:Et il devrait afficher
-1
.Dans la documentation du noyau, il est indiqué qu'un jour, à l'avenir, ce paramètre deviendra
autosuspend_delay_ms
(au lieu deautosuspend
).la source
autosuspend_delay_ms
.Selon la documentation de l’arborescence du noyau , le délai d’auto-suspension est contrôlé par le
autosuspend
paramètre module dansusbcore
. Définir le délai d'inactivité initial par défaut sur -1 empêchera la suspension automatique de tout périphérique USB. Vous devez toujours pouvoir activer la suspension automatique pour les périphériques sélectionnés.Le
usbcore.autosuspend
paramètre kernel peut être défini lorsque le module est chargé manuellement:ou en ajoutant la ligne suivante à un fichier de configuration dans
/etc/modprobe.d
:Si
usbcore
est compilé dans le noyau, le paramètre peut être ajusté en ajoutant les éléments suivants à la ligne de commande du noyau:Enfin, l'option peut être ajustée à l'exécution en faisant:
La modification affectera tous les nouveaux périphériques USB. Les appareils existants ne seront pas affectés.
la source
usbcore
compilé dans le noyau, mais l'utilisation de l'modprobe.d
option ne semble pas fonctionner. Malgré l'modprobe -c usbcore | grep autosuspend
affiche comme-1
, fairecat /sys/module/usbcore/parameters/autosuspend
je reçois2
autosuspend
est obsolète. Le nouveau fichier est celuiautosuspend_delay_ms
qui prend ms au lieu de secondes. réf . Maispower/control
réglé àon
devrait avoir le même effet.autosuspend=-1
à la fois en paramètremodprobe.d
et enkernel
paramètre, mais le disque dur reste suspendu et ne se réveille pas bien.autosuspend_delay_ms
à-1
? (En/sys/bus/usb/devices/<device>/power/autosuspend_delay_ms
)autosuspend_delay_ms
n'y est pas. Maisautosuspend
EST.J'ai un problème similaire avec une souris USB Wheel Mouse optique compatible USB et PS / 2 depuis la mise à niveau d'un système Linux Mint Debian Edition vers le noyau
3.10-2-amd64
. Une suspension automatique inappropriée par la gestion de l'alimentation USB du noyau était suspectée. Dans Debian, cela est compilé en tant queusbcore
module dans le noyau.Vous pouvez changer cela de façon permanente en entrant sur la ligne de commande:
Certains noyaux peuvent toutefois nécessiter
autosuspend=0
.Si votre système utilise
initrd
(probablement), reconstruisez leinitrd
pour votre noyau.Par exemple:
Redémarrez et vérifiez avec:
qui devrait céder
-1
maintenant.la source
initrd
et les actions décrites ici ne fonctionnent pas dans ce cas, car elles nous ont déjà été répondues.