How to build df-gp

First, if you don't feel comfortable with a compiler then this is not the right place for you. You can try to follow this guideline. But this is by far not failsafe. After every patch it may be that something is not working. So be warned :-).

The prerequisites

The following is a list of prereqisites, things you need to build df-gp.

gcc 2.95.3 (gcc 3.2 should work too)
pkg-config 0.12.0
DirectFb-0.9.13
glib-2.0.6
gtk+-directfb-2.0.5
Note: df_gp currently doesn't run with gtk+-directfb-2.0.6.

The files

Download all the files from the download page and put them into a directory. This directory will be called SRCDIR in the following text.

If you want to follow the following examples easily you can define this as an environment variable.

Patching the kernel

Take a fresh 2.4.19-rc3 kernel. Become super user. Unpack it and go into the upper most directory of the kernel sources tree.

Apply the patches:

cd /usr/src/linux
zcat $SRCDIR/mga-2.4.19-rc3-tvout-v3.gz | patch -p 1
zcat $SRCDIR/mga-2.4.19-rc3-sync.gz | patch -p 1

Now configure the kernel. The following should be set:

CONFIG_FB_MATROX=m
# CONFIG_FB_MATROX_MILLENIUM is not set
# CONFIG_FB_MATROX_MYSTIQUE is not set
# CONFIG_FB_MATROX_G450 is not set
CONFIG_FB_MATROX_G100A=y
CONFIG_FB_MATROX_G100=y
CONFIG_FB_MATROX_I2C=m
CONFIG_FB_MATROX_MAVEN=m
CONFIG_FB_MATROX_PROC=m
# CONFIG_FB_MATROX_MULTIHEAD is not set

Build the kernel. Of course this shouldn't give any problems.

make bzlilo modules modules_install

Reboot your machine.

Now you should be able to start the TV-out in the usual way. There is a little script (tvout) which has to run as root .

After that run v4lctl -c /dev/fb0 list as root. It should show you the possible controls.

ioctl: VIDIOC_ENUMSTD(cmd=0xc0545619): Inappropriate ioctl for device
ioctl: VIDIOC_ENUM_PIXFMT(cmd=0xc0385602): Inappropriate ioctl for device
ioctl: VIDIOC_G_INPUT(cmd=0x80045626): Inappropriate ioctl for device
attribute  | type   | current | default | comment
-----------+--------+---------+---------+-------------------------------------
norm       | choice | (null)  | (null)  |
input      | choice | (null)  | (null)  |
bright     | int    |     169 |     124 | range is 0 => 768
contrast   | int    |     368 |     127 | range is 0 => 1023
color      | int    |     205 |     155 | range is 0 => 255
hue        | int    |       0 |       0 | range is 0 => 255
gamma      | int    |       3 |       3 | range is 0 => 18
test outpu | bool   | off     | off     |
deflicker  | int    |       0 |       0 | range is 0 => 2
The v4lctl you get from a v4ltools package. See man v4lctl to learn more about the usage of it.

Attention: The kernel patch modifies the linux/fb.h header file. Often there is a copy of this file in /usr/include/linux. To be sure to get the desired effect, you have to either copy the file or create a symbolic link from /usr/include/linux to /usr/src/linux/include/linux.

Patching DirectFb

Get DirectFB 0.9.13 and GTK+-directfb from www.directfb.org

Apply DirectFb patch:

cd DirectFb
zcat $SRCDIR/DirectFB.gz | patch -p 1
make

Patching VDR

I'm using the AOI patch, but the osd patch should also apply to the plain VDR. Only the patches in spu.c will fail then, but you can ignore this. I put VDR in the directory VDR_STDIO because it will be controlled by stdio (keyboard).

cd VDR_STDIO
zcat $SRCDIR/dfbosd.gz | patch -p1
make REMOTE=KBD DVD=1 MP3=1 MPLAYER=1 DFB_OSD=1

Compiling df-gp

Well, enough of patching. Now we build df-gp.

tar xvzf df_gp-0.0.4.tar.gz
cd df_gp-0.0.4
./configure
make
/bin/su
make install
This is the main application. You should be able to run this application already. But have a look at How to run.

Build the vdr plugin:

tar xvzf gp_vdr-0.0.4.tar.gz
cd gp_vdr-0.0.4
./configure --with-dvbdir=YourDVBDir --with-vdrdir=YourVDRDir
make
/bin/su
make install
The output of the configure step should be something like that:
Build options:
  DVB ost include from   /home/dvb/soft/Linux/video/DVB/ost/include
  VDR include from       /home/dvb/soft/Linux/video/VDR_STDIO

Build the mplayer-plugin:

tar xvzf gp-mplayer-0.0.4.tar.gz
cd gp-mplayer-0.0.4
./configure
make
/bin/su
make install
exit
$Date: 2002/10/17 17:53:21 $