我在 DELL XPS13 9343 上运行 Ubuntu 18.04.2 LTS,似乎遇到了内核错误(参考:https ://www.spinics.net/lists/linux-media/msg135812.html ),这导致我现在遇到的问题media0
-media255
全部占用dev
,这又导致以下问题(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)
尽管此错误已得到修复,但它似乎尚未向后移植到我的 LTS 版本(供参考:https : //bugs.launchpad.net/ubuntu/+source/linux/+bug/1836654,entry media: uvcvideo: Fix driver reference counting
)。
但是,我现在的问题是:
1)如何以正确的方式手动(最好是从终端)清理这些媒体控制器设备(设备控制器节点)?
2) 一般来说,我怎样才能确定 /dev 下的哪些项目是非活动的/过时的并清除这些项目?
附加信息:
在/sys/devices/pci0000:00/0000:00:14.0/usb2
它下面不断尝试添加但随后删除2-5
目录。
在/sys/dev/char
我现在有很多两种断开的链接:
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
然后还有/dev/char
and/dev/input
考虑 (?)
您可以在 /dev/ 中删除所有您想要的内容,但在下次重新启动时,它会全部重新创建。基本上,这就是 Linux 如何摆脱尽可能通用的系统:这些 /dev/ 条目是动态创建的,并且是系统需要的,因此您取出硬盘并将其放入另一台机器......为该系统创建下一次重新启动 /dev/。完美运行,除了 3rd 方驱动程序,其他系统没有该 3rd 方设备。
/dev/ 是根据包作为设备所需的设备创建的,因此所有 - 应该 - 都需要(尽管我无法告诉您 /dev/ 中的哪些条目对于所有这些都需要什么)。
理论上,一个包应该有有限数量的 /dev/ 条目。当有一个创建大量 /dev/ 条目的错误时,除非您考虑删除一个选项
uvcvideo
,否则我们无法做很多事情。uvcvideo
问题不在于 /dev/ ...这是错误的影响。修复uvcvideo
是应该做的。您可以手动删除 /dev/ 条目,但每次重启需要 1 次。并用脚本来做到这一点......我会犹豫建议。它可能会破坏事物。除此之外:我希望系统在启动期间开始抛出错误(所以在你清理之前)。