![如何从 shell 打开/关闭笔记本电脑内置网络摄像头](https://linux22.com/image/1352633/%E5%A6%82%E4%BD%95%E4%BB%8E%20shell%20%E6%89%93%E5%BC%80%2F%E5%85%B3%E9%97%AD%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E5%86%85%E7%BD%AE%E7%BD%91%E7%BB%9C%E6%91%84%E5%83%8F%E5%A4%B4.png)
Fn
+F6
组合键可打开/关闭笔记本电脑的集成网络摄像头。查看输出dmesg
,似乎网络摄像头(USB 设备)或多或少虚拟地连接到/断开了 USB 总线:
usb 1-5: new high-speed USB device number 9 using ehci_hcd
usb 1-5: New USB device found, idVendor=5986, idProduct=0203
usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=0
usb 1-5: Product: BisonCam, NB Pro
usb 1-5: Manufacturer: Bison Electronics Inc.
uvcvideo: Found UVC 1.00 device BisonCam, NB Pro (5986:0203)
input: BisonCam, NB Pro as /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/input/input14
usb 1-5: USB disconnect, device number 9
前七行位于“连接”事件之后,最后一行位于“断开连接”事件之后。dmesg
为清楚起见,删除了时间戳。
showkey
从 tty 控制台执行返回键码 214,xev
从 KDE 执行返回键码 220,还有。以下是与按+相关的输出XF86WebCam
部分:xev
Fn
F6
KeyPress event, serial 40, synthetic NO, window 0x3600001,
root 0xac, subw 0x0, time 78270130, (346,354), root:(348,377),
state 0x0, keycode 220 (keysym 0x1008ff8f, XF86WebCam), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
我已经尝试使用、和发送Fn
+F6
组合(214、220 或 XF86WebCam)的键码,但没有成功。xdotool
xvkbd
xmacro
可能正确的做法是根本不使用密钥代码。
答案1
使用 root 权限运行此命令:
echo 0 > /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/authorized
该路径取自dmesg
的输出:
输入:BisonCam,NB Pro 作为 /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/input/input14
这将禁止系统访问您的设备,而无需停用整个总线或 uvc 驱动程序,也无需重新启动。
要重新激活,请运行echo 1 > /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/authorized
(再次使用 root 权限)。
注意:我使用 Linux 4.17 的 Archlinux
答案2
您可以modprobe
在命令行上以交互方式执行此操作。您可以将其列入黑名单,然后重新启动或恢复/etc/modprobe.d/blacklist.conf
我刚刚发现AskUbuntu 上的这篇文章这可能会提供更多细节,因为我目前面前没有配备网络摄像头的系统。