我想禁用运行Ubuntu13.10的笔记本电脑的内部网络摄像头?正如建议的这里,我已经禁用了相关的内核模块,将它们列入黑名单。但是,在重新启动之后,模块仍然会被加载。我能做些什么来摆脱这些模块?
我的模块黑名单位于/etc/modprobe.d/blacklist-webcam.conf中,如下所示:
blacklist videodev
blacklist videobuf2_core
blacklist videobuf2_memops
blacklist videobuf2_vmalloc
blacklist uvcvideo但是lsmod给了我(在重新启动之后):
Module Size Used by
uvcvideo 80885 0
videobuf2_vmalloc 13216 1 uvcvideo
videobuf2_memops 13362 1 videobuf2_vmalloc
videobuf2_core 40499 1 uvcvideo
videodev 133509 2 uvcvideo,videobuf2_core编辑:
当我做sudo modprobe -r uvcvideo时,模块就消失了。这样我就可以写个剧本来做了。但我不认为这是一个清洁的解决办法;)
发布于 2014-05-10 17:27:15
非常感谢你们的帮助!我在尝试贝恩氏溶液时找到了问题的根源。他的解决方案效果很好。重新启动之后,模块就真的消失了。但是有一个缺点:如果我想重新启用摄像头,我无法通过modprobe uvcvideo加载模块。
在深入我的系统以找出为什么加载uvcvideo模块时,我终于做了一个grep -r uvcvideo /etc/和voilà,我在/etc/pm/power.d中找到了一个脚本,当电源电缆插上时,它做了一个modprobe uvcvideo。我不久前写了这个脚本来优化功耗。我评论了处理网络摄像头模块的线路,在那之后,黑名单起作用了!
发布于 2014-05-08 19:29:41
blacklist videodev更改为install videodev /bin/falseupdate-initramfs -ureboot有关更多细节,请参见Arch Wiki上的核模块黑名单:
黑名单黑名单,在内核模块的上下文中,是一种防止内核模块加载的机制。例如,如果不需要关联的硬件,或者加载该模块会导致问题,这可能是有用的:例如,可能有两个内核模块试图控制相同的硬件,并将它们一起加载将导致冲突。一些模块作为initramfs的一部分加载。
mkinitcpio -M将打印出所有自动检测到的模块:为了防止initramfs加载其中一些模块,请将它们黑名单到/etc/modprobe.d/modprobe.conf中。运行mkinitcpio -v将列出由各种钩子(例如文件系统钩子、块钩子等)拉入的所有模块。如果尚未这样做,请记住将该.conf文件添加到/etc/mkinitcpio.conf中的文件部分,并在列出模块后重新构建initramfs。使用/etc/modprobe.d/中的文件在/etc/modprobe.d/中创建一个.conf文件,并使用黑名单关键字为每个要列入黑名单的模块追加一行。例如,如果要阻止pcspkr模块加载: /etc/modprobe.d/nobeep.conf #,请在引导时不要加载“pcspkr”模块。黑名单pcspkr注意:黑名单命令将列出一个模块,这样它就不会自动加载,但是如果另一个非黑名单模块依赖于它,或者它是手动加载的,则该模块可能被加载。但是,对于这种行为,有一个解决办法;install命令指示mod探针运行一个自定义命令,而不是像往常一样将模块插入内核中,这样您就可以强制模块始终失败加载: /etc/modprobe.d/blacklist.conf .安装module_name /bin/false ..。这将有效地黑名单的模块和任何其他依赖于它。
发布于 2014-05-09 11:30:17
只要将模块列表放在/etc/modprobe.d/blacklist.uvcdrver.conf中就可以了。文件名可以是任何内容。只需确保格式和权限是正确的。
https://askubuntu.com/questions/458515
复制相似问题