5. 故障排除

5.1. 帮助,我有一个 USB 网络摄像头,但不知道它的具体型号和/或制造商是谁。我该怎么办?

使用 lsusb;它可以帮助您了解系统上还有哪些其他 USB 设备

   $  lsusb
   Bus 007 Device 001: ID 0000:0000
   Bus 006 Device 001: ID 0000:0000
   Bus 005 Device 001: ID 0000:0000
   Bus 004 Device 001: ID 0000:0000
   Bus 003 Device 003: ID 0545:8080 Xirlink, Inc. IBM C-It WebCam
   Bus 003 Device 002: ID 046d:0840 Logitech, Inc. QuickCam Express
   Bus 003 Device 001: ID 0000:0000
   Bus 002 Device 003: ID 051d:0002 American Power Conversion Back-UPS Pro 500/1000/1500
   Bus 002 Device 001: ID 0000:0000
   Bus 001 Device 001: ID 0000:0000

'ID' 后的数字分别是供应商和产品编号。然后可以在 Linux USB ID 目录中查找它们。

如果 lsusb 不可用,并且您支持/proc文件系统支持和 USB 文件系统支持,请在命令行中执行以下命令

   $  cat /proc/bus/usb/devices

您应该收到包括(但不一定限于)以下内容的输出

   T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=3 Spd=12 MxCh=0 
   D:  Ver= 1.01 Cls=ff(vend.) Sub=ff Prot=ff MxPS=8 #Cfgs=1 
   P:  Vendor=0545 ProdID=8080 Rev= 3.0a 
   S:  Product=USB IMAGING DEVICE

"T:" 开头的行是设备连接到的 USB 总线。"P:" 表示(显然)供应商和产品 ID,它们在 linux USB 项目主页上进行了编目。

5.2. 帮助,我找不到 /dev 中的摄像头设备/dev!

假设您的连接类型受支持,并且您的摄像头工作正常,请参阅第 3.1 节

5.3. 帮助,我可以看到摄像头设备(无论是实物还是 /dev 中的设备节点/dev),但我无法访问它!

请参阅第 3.2 节

5.4. 帮助,我的摄像头有一个仅提供源代码的驱动程序,也就是说,必须由我自己构建!我从哪里开始?

首先,检查您的 Linux 发行版是否提供了驱动程序的预编译二进制文件。然后您可以像通常加载模块一样加载它。如果不是这种情况,请确保您已安装内核源代码。您还需要至少安装 GNU make、gcc、binutils 以及可能取决于您的发行版的其他程序。(Debian 用户应查看下一节,了解特定于该发行版的说明。)

下载驱动程序源代码(在本例中名为src.tar.gz)并解压缩/解 tar 它

   $  tar -xvzf src.tar.gz

然后,切换到您的内核源代码目录

   #  cd /usr/src/linux

生成必要的源文件

   #  make oldconfig # make dep

现在,切换到您解压缩驱动程序源代码的目录,并阅读 README 和/或 INSTALL 文件,以获取有关如何制作驱动程序的说明。通常,这涉及到 “make”、“make all” 和/或 “make install” 的某种组合。假设它编译正确,您可以简单地使用 modprobe 加载新模块。如果您有任何问题,请参阅第 5.7 节

5.5. 我正在使用 Debian GNU/Linux。有没有更简单的方法来完成所有这些内核编译工作和构建源模块?

在作者看来,使用自动化的kernel-package实用程序要简单得多。首先,使用 apt-get 安装它及其依赖项。接下来,安装您想要的内核源代码(例如,apt-get install kernel-source-2.X.X)。使用 tar -xvjf 解压 bzip2 压缩的内核源代码,然后创建一个名为linux指向新源代码的符号链接

   #  ln -s /usr/src/kernel-source-2.X.X /usr/src/linux
 

然后 cd /usr/src/linux 并清理:make-kpkg clean,然后按照编译新内核的方式执行 make menuconfigmake xconfig。接下来,您可以使用 make-kpkg kernel_image,然后安装已存放在/usr/src中的新内核软件包,使用 dpkg -i ../kernel-image-2.X.X。接下来,您可以使用apt获取预打包的源代码驱动程序。因此,对于 Quickcam Express,软件包是qc-usb-source:

   #  apt-get install qc-usb-source

...并解压存档

   #  tar -xvzf qc-usb-modules.tar.gz

这会将源代码解压缩到/usr/src/modules目录。最后一步,仍在/usr/src/linux中,是使用 kernel-package 制作模块

   #  make-kpkg modules_image

安装新软件包,在/usr/src/中,名为qc-usb-modules-[arch].deb使用 dpkg -i。最后,加载模块

   #  modprobe quickcam

检查 /usr/share/doc/kernel-package 中的文档以查找任何问题。

5.6. 帮助,我的摄像头受一个驱动程序支持,该驱动程序必须修补到我的内核中!我该怎么办?

请参阅 Kernel-HOWTO 的修补部分,网址为 The Linux Documentation Project

由您谦逊的作者提供的简短且不保证的修补版本如下:确保您已安装第 5.4 节中概述的相同先决条件。首先,在命令行或 xterm 中,更改为您正在(或将要)运行摄像头补丁的内核版本的源代码目录(在本例中名为patch.diff).

   #  cd /usr/src/linux 
   #  patch -p1 -E patch.diff

您应该看到确认“hunks”已成功应用。此时,您可以 make menuconfig 或您使用的任何程序重新编译,启用适当的支持。如果任何 hunks 失败,或者除了上面引用的链接之外,您还遇到任何问题,您应该查阅 man patch第 5.7 节

5.7. 帮助——例如,我在哪里可以获得更多帮助?

请参阅 video4linux 邮件列表总部:https://listman.redhat.com/mailman/listinfo/video4linux-list

5.8. 帮助,我想为 Linux 中的 Video4Linux 支持做出贡献!我应该与谁联系?

请参阅此页面