AVMaster cardFAST AV Master driver for Linux

Vedi questa pagina in Italiano In italiano


1. Introduction - History
2. What was done, what is to do
3. Test hardware
4. Operating system and software
5. Installation
6. Bugs
7. Work in progress...
8. Download
9. Licence
10. Documentation
11. Contacts
12. Acknowledgments

1. Introduction - History

I'm trying to make a driver for the AVMaster that runs with the Linux kernel.
Fast Multimedia (that became Dazzle and now it is Pinnacle) had never want to give any documentation about this video acquisition board.
Michel Stickel (I'd like to thank him for the support that he gave me) wrote in 2000 an alpha driver for AVMaster, but it was limited to "play" with I2C bus, and therefore with only video decoder/encoder. Since 2000 the driver had no more evolution.
So I took the unified driver for the Zoran PCI chipset 36057 and I did a fork for the AVMaster. This choise was based on two aspects:
  1. The driver includes some modules that I can reuse (videocodec, saa7110, saa7185/87, zr36016/15, zr36050)
  2. The driver has support for both V4L and V4L2.
I substitute (some) parts of the original PCI chipset zr36057 with the specific ones of the saa7145 (AVMaster PCI Bridge).
In 2008 I received from a friend of mine some hints about all chipsets used: now the driver could be completely build!

2. What was done, what is to do

As today (Oct 28th, 2008) the only "quite bit" working part is the video overlay. The "quite bit" is mandatory because if you want to see something you have to start Windows (download the driver for Windows 95b/98: AVMaster_driver_Win98.zip) and then reset the PC (without shutdown) and restart GNU/Linux. This because (I think) at boot time the video bus from FPGA is enabled, and this creates a conflict with the input video chipset SAA7110.
I did not test the video output (SAA7187), but I think it works.
The big and hard part is the JPEG encoding/decoding and the audio management (see documentation for more details). At the moment you can use the AVMaster only like a TV...

3. Test hardware

My testing system is:
I don't think that other information about the testing system are necessary (but if you want to know something else, you can contact me).

4. Operating system and software

The operating system is GNU/Linux x86, Slackware 12.1 distribution. The driver was tested with the Linux kernel 2.6.24 (V4L2); it should be also compatible with kernel 2.4 series, but actually I do not test it anymore.
The software for overlay test is xawtv. In order to get it working, I had to remove the line Option "omit xfree86-dga" from /etc/X11/XF86Config (but I think this is a specific of Slackware).
Unfortunately lavvideo from mjpeg-tools does not work: it seems that it cannot recover the necessary information from X, so the AVMaster driver cannot do the overlay.
The tested video resolution are: RGB15, RGB16, RGB32. I could not test RGB24 and YUV422, the first because my video card does not support it, the latter because I doesn't have the software for YUV422 overlay (better, xawtv -xv does not used YUV422; maybe I'm wrong somewhere...).

5. Installation

You must have the kernel sources installed and you have to configure your kernel at least with the following options (you can see them by typing "make menuconfig" or "make xconfig" from /usr/src/linux-<kernel_version>):
These options are usually enabled by default in the most common distributions.
Then you have to unpack the tar file and compile it:
	# tar xzvf avmaster-0.0.3.tar.gz
# cd avmaster-0.0.3
# make
Then you have to switch to root user and install the modules:
	# su
Password:
# make install
If you have PCI hotplug enabled and you distribution have the correct scripts (Slackware has them), the module avmaster and the related ones (saa7110, saa7187, zr36015, zr36050, videodev, videocodec, i2c-core) are loaded automatically.
If you want to install them manually without rebooting, simply type (from root):
	# modprobe avmaster
Then you can start (from normal user) one TV application (I use xawtv) and you can see the video overlay (after rebooting from Windows).

6. Bugs

I think that the driver has many bugs!! But from my tests I found only one bug that I was not able to fix: if you quickly switch from full-screen to window mode, the whole operating system hangs. Normally the overlay is still working, but I don't think you want to use the PC only for TV....
Before do any test, type the sync command; in this way you don't lost any data (I lost 2 source file of the driver...). If it is possible, use a journaled file system, so, in the case you forgot to do sync, at least the file system keeps its integrity. With tune2fs you can upgrade in a simple way from ext2 (not journaled) to ext3 (journaled).

7. Working in progress..

Actually I am doing the coding of FPGA and DSP part. You have to be patience...

8. Download

Here you can find the source code: avmaster-0.0.3.tar.gz. There aren't binary packages, I cannot make them for all distributions and kernel versions. But if you want to prepare them, send to me so I can insert them into this section. I prefer you send me the binary related at the standard kernel for a distribution.

9. Licence

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licence as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Licence for more details.

10. Documentation

I analysed the AVMaster card and I tried to do a diagram with physical connections. It is only indicative, it could be wrong. The result is the following one (download in sxd format):
FAST AV Master block diagram

I hope this could help to develop the missing parts (all the right part, FPGA and DSP included).
Following you can find the datasheets (pdf format):
Chipset
Manufacturer
Description
Other
SAA7145
Philips
PCI Multimedia Bridge
sxw format
SAA7110A
Philips
Video decoder (input)

SAA7187
Philips
Video encoder (output)

ZR35015
Zoran
Color space/raster to block converter

ZR36050
Zoran
JPEG image compression processor

AD1843
Analog Devices
Audio input/output
Engineer note
ADSP2105
Analog Devices
DSP (Digital Signal Processor)
Application note
A1280XL
Actel
FPGA (Field Programmable Gate Array)
High-Reliability
Programming

Other datasheet that could be useful in order to make a comparison with existing drivers:
Chipset
Manufacturer
Description
Other
SAA7146
Philips
PCI Multimedia Bridge with HPS
driver
SAA7185
Philips
Video encoder (output)
driver zoran
ZR35016
Zoran
Color space/raster to block converter
driver zoran
ZR36057
Zoran
PCI Multimedia Controller
driver zoran


You can download the setup for Windows 98 (version 2.5 build 0017): AVMaster_driver_Win98.zip

11. Contacts

I am Luca Bonissi, a computer programmer, a lover of GNU/Linux (and the free software in general) and of audio/video tools. For anything about AVMaster and GNU/Linux, feel free to call me

12. Acknowledgments

I'd like to give many many thanks to Michael Stickel. Without him the development of this driver could not be started. He gave me the datasheet of the main chipset  SAA7145 and, aboveall, he gave me the "hope" to make working the AVMaster under GNU/Linux. Very many thanks also to M. that provide me informations about the chipsets management.
My thanks are also for the unified zoran driver team, the mjpeg-tools team, Alessandro Rubini for his Linux Device Driver book and to the ones who had written some free software that I used.


Last Update: Oct 28th, 2008