如何禁用内部网络摄像头?

Mar*_*ann 10 kernel webcam blacklist drivers

我想禁用运行 Ubuntu 13.10 的笔记本电脑的内部网络摄像头?正如这里所建议的,我已经通过将相关内核模块列入黑名单来禁用它们。但是在重新启动后,模块仍然加载。我该怎么做才能摆脱这些模块?

我的模块黑名单位于,/etc/modprobe.d/blacklist-webcam.conf如下所示:

blacklist videodev
blacklist videobuf2_core
blacklist videobuf2_memops
blacklist videobuf2_vmalloc
blacklist uvcvideo
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

编辑:
当我做一个sudo modprobe -r uvcvideo模块时,模块不见了。所以我可以写一个脚本来做到这一点。但我不会认为这是一个干净的解决方案;-)

bai*_*ain 6

  • 在您的 blacklist.conf 更改blacklist videodevinstall videodev /bin/false
  • update-initramfs -u
  • reboot

有关更多详细信息,请参阅Arch Wiki 上的内核模块黑名单

列入黑名单

在内核模块的上下文中,黑名单是一种防止内核模块加载的机制。例如,如果不需要相关的硬件,或者如果加载该模块导致问题,这可能很有用:例如,可能有两个内核模块试图控制同一块硬件,并且将它们加载在一起会导致冲突。

一些模块作为 initramfs 的一部分加载。mkinitcpio -M将打印出所有自动检测到的模块:为了防止 initramfs 加载其中一些模块,请将它们列入 /etc/modprobe.d/modprobe.conf 中的黑名单。运行mkinitcpio -v将列出由各种钩子(例如文件系统钩子、块钩子等)拉入的所有模块。请记住将该 .conf 文件添加到 /etc/mkinitcpio.conf 中的 FILES 部分(如果您还没有这样做),并在将模块列入黑名单后重建 initramfs,然后重新启动。

使用 /etc/modprobe.d/ 中的文件

在 /etc/modprobe.d/ 中创建一个 .conf 文件,并使用 blacklist 关键字为要列入黑名单的每个模块附加一行。例如,如果您想阻止 pcspkr 模块加载:

/etc/modprobe.d/nobeep.conf

# Do not load the 'pcspkr' module on boot.
blacklist pcspkr
Run Code Online (Sandbox Code Playgroud)

注意: blacklist 命令会将一个模块列入黑名单,使其不会被自动加载,但如果另一个非黑名单模块依赖于它或者如果它是手动加载的,则该模块可能会被加载。

但是,这种行为有一个解决方法;install 命令指示 modprobe 运行自定义命令,而不是像往常一样在内核中插入模块,因此您可以强制模块始终加载失败:

/etc/modprobe.d/blacklist.conf

...
install module_name /bin/false
...
Run Code Online (Sandbox Code Playgroud)

这将有效地将该模块和任何其他依赖于它的模块列入黑名单。


Mar*_*ann 1

非常感谢大家的帮助!我在尝试贝恩的解决方案时找到了问题的根源。他的解决方案效果很好。重新启动后,模块真的消失了。但有一个缺点:modprobe uvcvideo如果我想重新启用网络摄像头,我无法通过加载模块。

\n\n

在深入我的系统以找出uvcvideo加载模块的原因时,我最终制作了 agrep -r uvcvideo /etc/和 voil\xc3\xa0,我发现了一个脚本,其中在插入电源线时/etc/pm/power.d执行了 a 。我写过这个脚本一段时间modprobe uvcvideo之前优化功耗。我注释掉了处理网络摄像头模块的行,之后黑名单就起作用了!

\n