每次我想在 MacBook Air 上使用网络摄像头时都必须运行 modprobe

每次我想在 MacBook Air 上使用网络摄像头时都必须运行 modprobe

MacBook Air 上的 Ubuntu 14.04。

使用以下方法在 MacBook Air 上安装网络摄像头:

cd /etc/local/src
git clone https://github.com/patjak/bcwc_pcie.git
cd bcwc_pcie/firmware
sudo make
sudo make install
cd ..
sudo make
sudo install
sudo depmod
sudo modprobe -r bdc_pci
sudo modprobe facetimehd

安装有效,但不是永久的。每次我想使用网络摄像头时,我都必须重复最后三个命令。有人能告诉我为什么以及如何解决这个问题吗?我必须能够在某个文件中添加一行或……?

答案1

您已编译内核模块facetimehd,但它显然与 Ubuntu 内核中包含的模块冲突bdc_pci。此命令将从内核中删除该驱动程序:

sudo modprobe -r bdc_pci

根据存储库的 wiki我们可以将该模块列入黑名单以克服可能出现的问题。

为此,请在 中创建一个/etc/modprobe.d后缀为 的文件.conf。您也可以简单地向主黑名单 添加一行/etc/modprobe.d/blacklist.conf,但为每个要列入黑名单的模块创建一个单独的文件可以更轻松地管理它们。全局更新可能会不时用新版本替换主黑名单,您将不得不再次编辑它。

要创建和编辑文件,您需要 root 权限。不要使用chmodchown,只需使用sudo。例如,使用:

sudoedit /etc/modprobe.d/blacklist-bdc_pci.conf

这通常会调用默认编辑器nano,但您可以sudo nano sudo vim根据自己的喜好使用等。如果您要调用 gedit 等图形文本编辑器,请使用标志-H获取干净的环境:sudo -H gedit /etc...

向文件中添加一行

blacklist bdc_pci

或者,如果您愿意,可以添加两行,一行注释(以 开头,#因此该行将被忽略),以便将来您和其他人知道列入黑名单的原因,例如

# conflicts with facetimehd webcam driver
blacklist bdc_pci

保存并退出,全部完成。

这可能就足够了,但如果新模块仍然无法自动加载,最简单的方法是将systemd其添加到文件 中以使其加载/etc/modules。您还可以在目录中创建一个/etc/modules-load.d扩展名为 的文件.conf,与黑名单一样,这将是更好的做法。

sudoedit /etc/modules-load.d/facetimehd.conf

(或者sudoedit /etc/modules,或者像上面一样调用您最喜欢的文本编辑器......)

添加一行:

facetimehd

或者两个:

# webcam driver, doesn't load itself 
facetimehd

保存并退出,该模块应在下次启动时加载。

相关内容