Je viens de réinstaller Debian sur mon ordinateur portable Sony VAIO, et mes dmesg
consoles virtuelles et sont toujours spammées avec les mêmes messages encore et encore.
[ 59.662381] hub 1-1:1.0: unable to enumerate USB device on port 2
[ 59.901732] usb 1-1.2: new high-speed USB device number 91 using ehci_hcd
[ 59.917940] hub 1-1:1.0: unable to enumerate USB device on port 2
[ 60.157256] usb 1-1.2: new high-speed USB device number 92 using ehci_hcd
Je pense que ces messages proviennent d'un périphérique USB connecté en interne, très probablement la webcam (car c'est la seule chose qui ne fonctionne pas). La seule façon dont je peux avoir l'air de la fermer (sans tuer mes ports USB réellement utiles) est de désactiver l'un des contrôleurs hôtes USB:
# echo "0000:00:1a.0" > /sys/bus/pci/drivers/ehci_hcd/unbind
Cela supprime également mon interface Bluetooth, mais cela me convient.
Je voudrais que ce paramètre persiste, afin que je puisse à nouveau utiliser sans problème ma console virtuelle au cas où j'en aurais besoin. Je veux que mon système d'exploitation (Debian amd64) ne le réveille jamais, mais je ne sais pas comment faire. J'ai essayé de mettre sur liste noire l'alias de module pour le périphérique PCI, mais il semble être ignoré:
$ cat /sys/bus/pci/devices/0000\:00\:1a.0/modalias
pci:v00008086d00003B3Csv0000104Dsd00009071bc0Csc03i20
$ cat /etc/modprobe.d/blacklist
blacklist pci:v00008086d00003B3Csv0000104Dsd00009071bc0Csc03i20
Comment puis-je m'assurer que ce périphérique PCI spécifique n'est jamais activé automatiquement, sans désactiver complètement son pilote?
-edit- Le module a été renommé récemment, maintenant les œuvres suivantes de userland:
echo "0000:00:1a.0" > /sys/bus/pci/drivers/ehci-pci/unbind
Pourtant, je cherche un moyen d'empêcher le noyau de lier ce périphérique en premier lieu.
update-initramfs -u -k all
?ehci_hcd
), car cela désactiverait tous les hôtes USB sur mon système. Je veux juste désactiver cet appareil spécifique, en fonction de son fournisseur, dev, subvendor et subdev.Réponses:
J'ai récemment rencontré ce problème lors de la configuration de ma boîte xen avec plusieurs périphériques USB. Je voulais que l'un soit utilisé par Dom-0 et que l'autre soit utilisé par une machine virtuelle, j'avais donc besoin que l'appareil soit disponible pour xen-pciback. Cependant, le pilote USB a été respecté dans mon noyau, donc je ne pouvais pas simplement mettre le pilote sur liste noire. Ma solution a été de créer un script initramfs personnalisé qui délie le port pci spécifique très tôt dans le processus de démarrage.
Il s'agit d'Ubuntu 2016.04, mais cela devrait fonctionner dans les versions antérieures.
Il y a trois fichiers impliqués. Je les ai nommés pour mon cas d'utilisation spécifique, mais ymmv:
Le premier fichier, nommé
/etc/unbindpci
fichier qui est un simple csv du numéro de périphérique pci et du pilote (configurez-le si nécessaire ici):Deuxième fichier
/etc/initramfs-tools/hooks/xenfiles
, qui copie la configuration ci-dessus dans les initramfs.Le troisième fichier est ce qui fait le travail au démarrage, je l'ai placé dans
/etc/initramfs-tools/scripts/init-top/unbind-early-pci
:Enfin, exécutez
update-initramfs -k all -u
et redémarrez.Je pourrais inclure la prise en charge des commentaires dans le fichier de configuration, et il y a beaucoup de nettoyage à faire ici, mais cela fonctionne pour moi.
la source
/etc/init.d
! Je n'utilise pas la machine en ce moment, et je ne pourrais jamais la redémarrer avec Debian, donc je ne peux pas la tester. Cependant, parce que cela aurait probablement fonctionné dans mon cas, je l'accepterai comme réponse.udev
que tout le bus traversait et chargeait pendant le démarrage du noyau et que tout ce que faisait grubinitramfs
était en lecture seule et perdu. lorsque le noyau est chargé. J'avais essayé d'installersetpci
eninitramfs-tools
mais a renoncé et je tente uneudev
règle maintenant.Aucune des réponses n'a résolu mon problème similaire, mais ils m'ont mis sur la voie de le résoudre!
Mon erreur syslog:
Il s'agit d'un port de concentrateur USB interne pour une option Bluetooth que je n'ai pas.
la dissociation du périphérique pci vient d'entraîner la réapparition du concentrateur en tant que autre concentrateur (5 dans mon cas) et d'inonder le syslog davantage.
Par hasard, j'ai remarqué une structure non liée sous
/sys/bus/usb/drivers/hub
. En utilisant les exemples ci-dessus, je viens d'ajouter ce qui suit dans rc.local:Le résultat est un silence syslog! Maintenant, pour ajouter l'exemple de script de kshurig pour la gestion de l'alimentation et je devrais être en or.
la source
Vous pouvez supprimer un périphérique PCI en ajoutant une règle udev sous /etc/udev/rules.d:
Remplacez
0000:00:03.0
par l'adresse de périphérique PCI que vous souhaitez supprimerla source
Trouvé ce fil sur askubuntu:
Utilisant
lspci -vv
pour identifier le slot PCI d'un périphérique que vous souhaitez désactiver, il semblait que vous pouviez utiliser cette commande pour désactiver le périphérique de ce slot:la source
/sys/bus/pci/slots/1
) est l'emplacement ExpressCard à l'extérieur, que je peux quitter manuellement.Si vous avez déjà
echo "0000:00:1a.0" > /sys/bus/pci/drivers/ehci_hcd/unbind
dans/etc/rc.local
pour le démarrage que vous avez juste besoin de le mettre dans un script pour la gestion de l' alimentation deamon aswell.Va comme ceci: Créez un fichier de script bash exécutable nommé
0_disable_webcam
dans le répertoire/etc/pm/sleep.d/
:Cela devrait fonctionner instantanément. Je l'ai essayé avec une clé USB et cela a fonctionné (ce qui signifie qu'il est resté désactivé) tant que le lecteur était branché. Le rebranchement aurait besoin de règles udev mais comme votre webcam ne sera pas débranchée, elle devrait fonctionner. Si cela ne fait pas l'affaire, j'ai une autre suggestion.
la source
tree /sys/bus/pci/devices/0000\:00\:1a.0/
sous "usbX" ce qui signifie que le port est un numéro similaire). Si c'est "1-1.2" au lieu de votre,echo "0000:00:1a.0" > /sys/bus/pci/drivers/ehci_hcd/unbind
le script devrait avoirecho "auto" > /sys/bus/usb/devices/1-1.2/power/control; echo -n "1-1.2" > /sys/bus/usb/drivers/usb/unbind
.pas une réponse à votre question autant qu'une solution de contournement.
Pourquoi ne pas simplement supprimer la journalisation des messages sur la console en modifiant syslog / (je ne sais pas si vous utilisez syslog ou rsyslog ou autre chose, donc je ne peux pas vraiment vous pointer plus précisément dans le bon répertoire, mais si vous recherchez dans vos fichiers de configuration syslog "console" et "tty", ce qui vous donnerait un bon point de départ - en fait, vous pouvez probablement changer la console en / dev / tty1 [par exemple] et avoir des messages uniquement enregistrés sur tty1 plutôt que tous consoles.
L'autre solution (pour répondre à votre question, mais je n'aime pas), vous pouvez mettre sur liste noire le module ehci_hcd (s'il est chargé), ou recompiler votre noyau pour l'utiliser uniquement en tant que module. Jetez un œil à h ttp: //www.cyberciti.biz/faq/rhel-redhat-centos-kernel-usb-reset-high-speed-ehci_hcd/ qui résout exactement la question que vous posez
la source