通过附加启动参数在启动时禁用网络摄像头

Mar*_*ter 4 boot linux-kernel camera kernel-parameters

我的戴尔笔记本电脑上有一个内置网络摄像头。我没有看到它与 一起列出lspci,但它有效。

我使用的是自编译内核,以下是我启用的选项:

# zcat /proc/config.gz | grep -v '^#' | egrep '(MEDIA|VIDEO)'
CONFIG_ACPI_VIDEO=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_SUPPORT_FILTER=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_VIDEO_DEV=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_V4L2_I2C=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_VIDEOBUF2_CORE=y
CONFIG_VIDEOBUF2_V4L2=y
CONFIG_VIDEOBUF2_MEMOPS=y
CONFIG_VIDEOBUF2_VMALLOC=y
CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
Run Code Online (Sandbox Code Playgroud)

我的内核中的所有选项都是静态编译的,并且我没有使用可加载模块。

如何通过向内核启动选项传递/附加某些内容来在启动时禁用网络摄像头?

我想在启动时决定是否要在支持网络摄像头的情况下启动内核,或者不支持网络摄像头。

Ste*_*itt 11

如果启用,则可以通过禁用其功能CONFIG_KALLSYMS来禁用内置驱动程序。对于(可能是您的网络摄像头使用的驱动程序),添加inituvcvideo

\n
initcall_blacklist=uvc_video_init\n
Run Code Online (Sandbox Code Playgroud)\n

到您的 kernel\xe2\x80\x99s 命令行。

\n

如果是\xe2\x80\x99t,则\xe2\x80\x99t 无法使用内核命令行参数禁用网络摄像头,但你可以在运行时控制网络摄像头;在 中找到它的条目/sys/bus/usb/devices,并将 0 写入相应的authorized文件,例如

\n
echo 0 | sudo tee /sys/bus/usb/devices/1-8/authorized\n
Run Code Online (Sandbox Code Playgroud)\n

写入 1 再次启用相机。

\n

您可以使用USBGuard来控制所有 USB 设备,包括网络摄像头。

\n