3. 安装

前提条件:确保内核已编译并内置 IEEE1394 支持。 这至关重要!

您可以通过重新编译内核来添加对 IEEE1394 设备的支持。 别慌! 以下是编译内核的步骤

转到内核源代码所在的目录。 通常它在/usr/src。 我们建议您从 www.kernel.org 下载内核源代码 (2.6.10) 的全新副本。

因此,cd /usr/src/kernel-2.6.10 (kernel-2.6.10是源代码目录的名称。 它可能因系统而异。)

  1. make menuconfig

  2. 菜单将出现。 选择 设备驱动程序

  3. 设备驱动程序 菜单将出现。 选择 IEEE1394 (火线) 支持

  4. 在显示的菜单中将以下各项标记为 <M>

    1. OHCI-1394 支持

    2. OHCI-1394 视频支持

    3. OHCI-1394 DVI/O 支持

    4. RAW IEEE1394 I/O 支持

  5. ESC 退出菜单

  6. 保存配置

安装 libraw1394-1.2.0

  1. su root

  2. tar -xvzf libraw1394-1.2.0.tar.gz

  3. cd libraw1394-1.2.0

  4. ./configure

  5. make

  6. make install

安装 libdc1394-1.1.0

  1. su root (如果您尚未这样做)

  2. tar -xvzf libdc1394-1.1.0.tar.gz

  3. cd libdc1394-1.1.0

  4. ./configure

  5. cd libdc1394

  6. make

  7. make install

安装模块

  1. modprobe ohci1394

  2. modprobe video 1394

  3. modprobe ieee1394

  4. modprobe raw1394

  5. lsmod 以查看所有模块 (ieee1394、raw1394、ohci1394 和 video1394) 现在都已安装。

Note关于依赖项的说明
 

这些模块有一些依赖项

  • ohci1394 依赖于 video1394

  • ieee1394 依赖于 video1394、ohci1394 和 raw1394

因此,如果您使用 insmod 安装模块,则必须先安装 video1394 和 raw1394,然后再安装 ohci1394 和 ieee1394。

创建正确的 1394 设备

  1. cd /dev

  2. mknod raw1394 c 171 0

  3. chmod 666 /dev/raw1394

  4. mkdir video1394

  5. cd video1394

  6. mknod 0 c 171 16

  7. mknod 1 c 171 17

  8. chmod 666 /dev/video1394/*

Note关于自动化模块启动的说明
 

每次系统重启时,节点都会被销毁,模块也会被自动删除。 因此,我们编写了一个脚本来自动化启动时的安装任务,以撤消重启期间造成的所有损坏!

设置用户路径

  1. su user

  2. 检查LD_LIBRARY_PATH/usr/local/liblibdc1394_cotrol.so.13对象文件。

Note关于设置路径的说明
 

您还可以通过在以下位置添加来设置路径/usr/local/lib/etc/ld.so.conf.

这就完成了安装阶段。

为了确保安装正确,请将相机连接到 IEEE1394 卡(假设 IEEE1394 卡已安装在系统上),然后运行 testlibraw

$ testlibraw

这将测试主机卡、相机和其它相关参数是否存在。 以下是 testlibraw 的典型输出

Successfully got handle
current generation number: 17
1 card(s) found
nodes on bus: 2, card name: ohci1394 
using first card found: 2 nodes on bus, local ID is 0, IRM is 1

doing transactions with custom tag handler 
trying to send read request to node 0... completed with value 0x23127bac
trying to send read request to node 1... completed with value 0x60217dac

using standard tag handler and synchronous calls
trying to read from node 0... completed with value 0x04477dac
trying to read from node 1... completed with value 0xd37380ac

testing FCP monitoring on local node
got fcp command from node 0 of 8 bytes: 01 23 45 67 89 ab cd ef
got fcp response from node 0 of 8 bytes: 01 23 45 67 89 ab cd ef

polling for leftover messages

libdc1394-1.1.0库附带了一些示例程序,这些程序对于理解如何编写程序非常有帮助。 examples 文件夹中有一个 Makefile。examplestar 文件的文件夹。 要编译和执行程序

cd libdc1394-1.1.0/examples

make

您可以从 http://www.ptgrey.com/support/kb/data/grabdma.tgz 获取专门为 Point Grey 相机编写的程序。

幸运的是,我们有一个为 IEEE1394 相机开发的开源图形应用程序,称为 Coriander,它为 libdc1394 提供了友好的图形用户界面,以帮助用户更有效地使用相机。 稍后我们将讨论 Coriander 如何帮助我们进行调试。 接下来,我们将简要说明如何安装 Coriander

Coriander 的安装

  1. 确保您的 Linux 机器上已安装 libdc1394 和 Gnome 库 (Coriander 使用gnome.h)。 有关要求的更多详细信息,请查看 Coriander 提供的用户手册:http://damien.douxchamps.net/ieee1394/coriander/manual.php

  2. 从 sourceforge.net 下载以下 tar 文件coriander-1.0.1.tar.gz,然后按如下所示进行操作

    1. su root

    2. tar -xvzf coriander-1.0.1.tar.gz

    3. cd coriander-1.0.1

    4. ./configure

    5. cd src

    6. make

    7. make install

  3. 运行 Coriander 如下所示

    cd coriander-1.0.1/coriander-1.0.1/src
    ./coriander
    

    幸运的是,libdc1394 和相关模块的安装很简单,不会造成任何重大问题。 您可能遇到的一些小问题是由于错误造成的,例如未以 root 身份安装或未更改新创建的 IEEE1394 设备的权限。