Linux Video Drivers

From MobileRobots Research and Academic Customer Support

Jump to: navigation, search

Contents

Determining your device

All PCI/PC-104 framegrabber interface cards for onboard computers distributed with robots generally are supported by the bttv and related kernel modules (except the MobileRanger C3D stereo camera nDepth device). Check your specific kernel for support. Check the Drivers page if you need to identify your frame-grabber more-specifically.

For further identifying information for PCI framegrabbers, run the lspci command in a shell as root. Information on USB framegrabbers is more specific to device-model.

If, rather than a PC-104 or PCI framegrabber card you have an ethernet image acquisition device (e.g. Vapix) or IEEE-1394 (Firewire) or USB camera, standard Linux drivers are included with all robots and should be automatically loaded on boot with no configuration necessary.

MobileRanger C3D stereo cameras use their own PC-104 interface card and are not standard video devices, though the images are available. See the MobileRanger pages for drivers and more information.

v4l on Linux 2.6 and later

Curent versions of Linux should automatically load the v4l driver at startup. To manually load it, use this command:

 modprobe v4l

bttv on Linux 2.4

Linux version 2.4 (check what version you are running with the uname -r command) used the 'bttv' driver to access the frame grabber. This driver is included with the kernel in most Linux distributions. Run 'lsmod' to see if the bttv module is loaded. If not, set it up as follows:

  • Add to /etc/rc.d/rc.local the line:
modprobe bttv  
  • Edit /etc/modules.conf and add a line for the frame grabber type.
    • If you have a PXC200 frame grabber card, add this line:
options bttv card=29
    • If you have a Sensoray 311 frame grabber card, add this line instead:
options bttv card=73
  • Reboot the computer and the frame grabber should work properly.

Your program can use the Video4Linux device interface to read data from the framegrabber.

Linux 2.2 or older

If you are running kernel version 2.2 or older (check with 'uname -a' or look at the console when booting), install the bt848 driver instead:

  • Install the appropriate bt848 driver for your computer:
    • bt848-1.0p1-RH5-2.tgz Drivers for Redhat Linux 5.2 NTSC Format Camera
    • bt848-1.1p1-RH6-0.tgz Drivers for Redhat Linux 6.0 NTSC Format Camera
    • bt848-1.1p1-RH6-PAL.tgz Drivers for Redhat Linux 6.0 PAL format camera
  • In the untarred file, go to the bigphysarea directory.
  • patch your linux kernel, by issuing the following command:
patch -d/usr/src/linux -p1 < bigphysarea-patch
  • recompile your kernel
  • edit your /etc/lilo.conf file. You should make a setting similar to the following:
image=/boot/vmlinuz
label=linux
append="bigphysarea=440"    
root=/dev/hda2
read-only
  • run /sbin/lilo, then restart your computer.
  • Enter the directory you installed the bt848 driver to (e.g. /usr/local/bt848-1.1), and run:
make install
  • run the following commands to check the kernel:
    • Check for bigphysarea:
dmesg | grep bigphysarea

You should have a result like the following:

bigphysarea: Allocated 440 pages at 0xc03a1000.
    • Check for bt848:
dmesg | grep bt848

You should have a result like the following:

bt848: **** BT848 Driver 1.0 (glibc) *****
bt848: Brooktree Bt848 (revision 18)
bt848: bus: 0, devfn: 72, irq: 10, memory: 0xeb001000
bt848: latency: 20
bt848: 1 Bt848 card(s) found.
bt8480: dma_prog c7e60000, odd_dma_prog c6268000
bt8480: buffer size 1769472, addr 0x3a2000
bt848: Intel Smart Video III,  tuner.

Check for the line: "1 Bt848 card(s) found." If it found 1 card, then the driver has been successfully installed.

Image acquisition API

For options on capturing images in your software, see Capturing Video.

Personal tools