2 votes

Comment puis-je nettoyer correctement les périphériques tels que `media*` ou `tty*` sous `/dev` à partir du terminal ?

Je suis en train de courir Ubuntu 18.04.2 LTS sur un DELL XPS13 9343 et semblent souffrir d'un bug du noyau (référence : https://www.spinics.net/lists/linux-media/msg135812.html ), ce qui conduit au problème suivant : j'ai maintenant media0 - media255 tous occupés sous dev ce qui conduit au problème suivant ( media: could not get a free minor ) :

dmesg | tail -13

[ 5068.870529] uvcvideo: Found UVC 1.00 device Integrated_Webcam_HD (0c45:670c)
[ 5068.911713] uvcvideo 2-5:1.0: Entity type for entity Extension 4 was not initialized!
[ 5068.911716] uvcvideo 2-5:1.0: Entity type for entity Extension 3 was not initialized!
[ 5068.911717] uvcvideo 2-5:1.0: Entity type for entity Processing 2 was not initialized!
[ 5068.911719] uvcvideo 2-5:1.0: Entity type for entity Camera 1 was not initialized!
[ 5068.911722] media: could not get a free minor
[ 5069.249598] usb 2-5: USB disconnect, device number 56
[ 5069.556176] usb 2-5: new high-speed USB device number 57 using xhci_hcd
[ 5069.767923] usb 2-5: New USB device found, idVendor=0c45, idProduct=670c
[ 5069.767929] usb 2-5: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[ 5069.767934] usb 2-5: Product: Integrated_Webcam_HD
[ 5069.767938] usb 2-5: Manufacturer: CN09GTFM7248753ABDZMA00
[ 5069.779009] uvcvideo: Found UVC 1.00 device Integrated_Webcam_HD (0c45:670c)

Bien que ce bogue ait été corrigé, il semble qu'il n'ait pas encore été rétroporté dans ma version LTS (pour référence : https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1836654 l'entrée media: uvcvideo: Fix driver reference counting ).

Mes questions maintenant sont cependant :
1) comment puis-je nettoyer manuellement (idéalement à partir d'un terminal) ces dispositifs de contrôle des médias (nœuds de contrôle des dispositifs) de manière appropriée ?
2) en général, comment puis-je déterminer quels éléments sous /dev sont inactifs / obsolètes et les purger ?


Informations complémentaires :

Sous /sys/devices/pci0000:00/0000:00:14.0/usb2 il continue d'essayer d'ajouter mais ensuite de supprimer un 2-5 répertoire.

Sous /sys/dev/char J'ai beaucoup de liens brisés de deux sortes maintenant :

lrwxrwxrwx 1 root root 0 Aug 15 09:52 13:256 -> ../../devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input42/event256
lrwxrwxrwx 1 root root 0 Aug 15 09:52 13:257 -> ../../devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input43/event257
............
lrwxrwxrwx 1 root root 0 Aug 15 09:52 13:495 -> ../../devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input281/event495
lrwxrwxrwx 1 root root 0 Aug 15 09:52 13:496 -> ../../devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input282/event496

lrwxrwxrwx 1 root root 0 Aug 15 09:52 241:0 -> ../../devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/media0
lrwxrwxrwx 1 root root 0 Aug 15 09:52 241:1 -> ../../devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/media1
lrwxrwxrwx 1 root root 0 Aug 15 09:52 241:10 -> ../../devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/media10
............
lrwxrwxrwx 1 root root 0 Aug 15 09:52 241:98 -> ../../devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/media98
lrwxrwxrwx 1 root root 0 Aug 15 09:52 241:99 -> ../../devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/media99

Il y a aussi /dev/char y /dev/input à considérer ( ?)

2voto

Rinzwind Points 270388

1) comment puis-je nettoyer manuellement (idéalement à partir d'un terminal) ces dispositifs de contrôle des médias (nœuds de contrôle des dispositifs) de manière appropriée ?

Vous pouvez supprimer tout ce que vous voulez dans /dev/ mais au prochain redémarrage, tout sera recréé. En gros, c'est comme ça que Linux peut s'en sortir avec un système aussi universel que possible : ces entrées /dev/ sont créées à la volée et selon les besoins du système, donc vous enlevez le disque dur et le mettez dans une autre machine... au prochain redémarrage, /dev/ est créé pour CE système. Cela fonctionne parfaitement, sauf pour les pilotes tiers lorsque l'autre système ne dispose pas de ce périphérique tiers.

2) en général, comment puis-je déterminer quels éléments sous /dev sont inactifs / obsolètes et les purger ?

/dev/ est créé en fonction de ce dont les paquets ont besoin comme périphérique, donc tous devraient être nécessaires (bien que je ne sois pas capable de vous dire quelle entrée dans /dev/ est nécessaire pour quel usage pour chacun d'entre eux).

En théorie, un paquet devrait avoir un nombre limité d'entrées /dev/. Lorsque uvcvideo a un bug qui crée beaucoup d'entrées /dev/, nous ne pouvons pas faire grand chose à moins que vous envisagiez de supprimer uvcvideo une option. Le problème n'est pas avec /dev/ ... c'est l'effet du bug. Correction de uvcvideo est ce qui devrait être fait.

Vous pourriez supprimer les entrées /dev/ manuellement mais c'est 1 fois par redémarrage. Et pour faire ça avec un script... J'hésiterais à le conseiller. Cela va probablement casser des choses. En plus de cela : Je m'attendrais à ce que le système commence à lancer des erreurs pendant le démarrage (donc avant votre nettoyage).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X