个人工具

UbuntuHelp:Firewire

来自Ubuntu中文

Wikibot讨论 | 贡献2008年10月19日 (日) 15:10的版本

跳转至: 导航, 搜索


Capturing video over Firewire

Disclaimer

This section on using IEEE1394 is not written by a hardware expert, it probably contains mistakes, if you know something is wrong or missing please help improve this page for the next person by correcting it. DuncanLithgow

Hardware

Firewire is the common name for the standard known as IEEE1394. Many digital camcorders and computers have a built-in Firewire ports. You can read more general notes about Firewire and see what the ports and cables look like in the Wikipedia entry. If your computer does not have a Firewire port you can add a PCI expansion card. Note that if you plan on buying an expansion card you must be sure that your system's BIOS will support it.

Software

Most Linux distributions, including Ubuntu, do not support file transfer via Firewire by default, so you will need some extra software. This page looks at using the dvgrab application which is part of the Kino Video Editor. You can install a stable version of Kino in Ubuntu via 'Applications > Add/Remove...'. If none of the methods on this page work, try installing the latest version from the Kino Website. You have to install dvgrab separately, so install dvgrab as well with Synaptic or Adept or type the following in a shell:

sudo apt-get install dvgrab

The dvgrab package uses a device file (also known as a node) in Ubuntu to act as an interface from your camera to Kino over the Firewire port. When you connect your camera and turn it on, the udev package should create one or more of the device files needed. If Ubuntu doesn't create a device node you will need to give it a kick with

sudo modprobe dv1394

Depending on which version of Ubuntu you are running the device node can be any one of:

  • /dev/dv1394-0 (misnamed, same functionality as /dev/dv1394/0 )
  • /dev/dv1394/0 (gives access to Firewire for video capture but not to the camera's controls)
  • /dev/raw1394 (gives raw access to Firewire and allows access to your cameras controls, but possesses a security risk)

This guide assumes you want to use dv1394/0, as this is the preferred method. A discussion of why 'dv1394/0' is prefered can be seen in Launchpad Bug# 6290 Start Kino and open the 'Capture' tab. Kino will attempt to connect to your firewire port and detect any device there. Kino tries /dev/raw1394 by default, which will fail. You will see the error:

WARNING: raw1394 kernel module not loaded or failure to read/write /dev/raw1394!

Which is not a bug, it's a security feature which you can read about this email from Scott James Remnant. If these tips do not work please file a bug in launchpad against Kino.

Ubuntu 6.06 LTS (Dapper Drake)

Kino 0.9 can be installed from source in Ubuntu 6.06. Under 'Edit > Preferences > Capture > dv1394 Device' change the value to '/dev/dv1394-0'.

Ubuntu 6.10 (Edgy Eft)

Kino 0.9 can be installed from the main repository. Make sure you install kinoplus, you can search for kinoplus in 'System > Administration > Synaptic Package Manager'. Once Kino starts under 'Edit > Preferences > Capture > dv1394 Device' change the value to '/dev/dv1394/0'.

Ubuntu 7.10 (Gutsy Gibbon)

To access your video camera you will need to run Kino (version 1.1.0) as root, type the following into a terminal: gksudo kino

Ubuntu 8.04 (Hardy Heron)

The only reason that Kino cannot capture from Firewire in Hardy is that the software was compiled incorrectly. A correctly compiled version is available here: kino_1.3.0-2ubuntu0_i386.deb. This will not install on Ubuntu 8.10.

Other methods

Method 1. 'dv1394-0'

If you have a file called '/dev/dv1394-0' in Kino go to 'Edit > Preferences' and select the 'IEEE 1394' tab. Any detected cameras should be listed under 'AV/C Device', but it may still work if your camera is not seen at first. Make sure the tape is ready where you want to start capture. On the 'Capture' tab press play on your camera then 'Capture' button.

Method 2. 'raw1396'

If you have physical control of your computer and there is no risk of the Firewire port being used to access your machine then this method may be suitable for you. But it is still a security risk. This method makes a new group called firewire with control of the raw1394 device file, and your user a member of that group.

  1. Open 'System > Administration > Users and Groups'. Add a new group and call it firewire
  2. Open the firewire group and add your user name to this group.
  3. Start Nautilus as root by opening a terminal and typing
gksudo nautilus
  1. Find the file '/dev/raw1396' and from the right click context menu select 'Properties'
  2. Under the 'Permissions' tab make firewire the group of this file.

Method 3. 'video1394'

Some versions of Ubuntu have a video1394 group. Use the approach in method 2 to add yourself to the video1394 group.

Method 4. 'as root'

If the methods above haven't helped, try also running kino as root, that might get around a few things.

gksudo kino

If root permissions were required, you can alter the permissions on your firewire controller so that any user has access. After doing so, you can run kino under a regular user account and will be able to capture video. Remember that this means anyone with physical access to the firewire port will then have full access to your computer.

sudo chmod 666 /dev/raw1394

Method 5. 'GROUP=video'

In order to enable dv capturing with Feisty you just have to modify the file "/etc/udev/rules.d/40-permissions.rules" and change KERNEL==”raw1394″, GROUP=”disk” to KERNEL==”raw1394″, GROUP=”video” Then just add "ieee1394" (without quotation marks) to "/etc/modules"

See Also

Page janitor: DuncanLithgow