Re: 2.6.25-git16 -- IEEE 1394 device has ROM CRC error -- No /dev/video0device

From: Stefan Richter
Date: Thu May 01 2008 - 10:29:25 EST


(We don't really need to Cc Kristian on this, since it is about drivers/ieee1394, not about drivers/firewire.)

Miles Lane wrote:
I noticed that no /dev/video0 device was being created, so I enabled
all the video driver options and rebuilt my kernel with ieee1394
debugging enabled.
Unfortunately, I still don't get a /dev/video0 device for my
OrangeMicro iBot. Is this simply due to the CRC error? If so, is
there a way of working around this, since the webcam works okay under
Windows?

The video1394 driver, if built modular, has the following module aliases built in:
alias: ieee1394:ven*mo*sp0000A02Dver00000102*
alias: ieee1394:ven*mo*sp0000A02Dver00000101*
alias: ieee1394:ven*mo*sp0000A02Dver00000100*

These are the codes of Unit_Spec_ID = 1394 Trade Association and Unit_SW_Version = 1394 Based Digital Camera Specification (IIDC) version 1.04, 1.20, and 1.30 respectively.

Whenever an IIDC compliant device is plugged in, the kernel will emit an uevent (formerly called hotplug event) with a string which can be matched against module aliases. Modern distributions contain scripts which will the modprobe all kernel modules which contain matching aliases.

The raw1394 driver, if built modular, contains the same aliases as video1394 (because it is required as well to work with IIDC cameras) and an alias for AV/C devices. BTW, video1394 is also being used for devices other than IIDC, but it has to be manually loaded for those.

Once the video1394 is present in the kernel (either because it was modprobed automatically or manually or because it was linked in statically to begin with), it will register a character device interface for each host adapter. This also works with adapters which are added later, e.g. CardBus cards.

Now, modern distributions have scripts (udev scripts) which recognize the addition or removal of a character device interface and will create or remove corresponding character device files in /dev on the fly.

If your distro doesn't do so, you need to create these files yourself with mknod, specifying the correct major and minor device number:
http://wiki.linux1394.org/video1394
(Note, this contains outdated references to devfs which is no longer in use and not supported by video1394 anymore since Linux 2.6.17 or probably even earlier.)

Both autoloading of video1394 and automatic creation of video1394 character device files work for me on 2.6.25 + latest linux1394-2.6.git on Gentoo Linux --- without me having a clue how all the details work. I hope you too get it working with these hints. On Gentoo, the video1394 character device files are called /dev/video1394-?, ? being 0 or more for each host adapter.
--
Stefan Richter
-=====-==--- -=-= ----=
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/