Sidux VDR DVB-S2

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(runvdr-extreme)
 
(50 dazwischenliegende Versionen von 13 Benutzern werden nicht angezeigt)
Zeile 14: Zeile 14:
 
  '''HDD''':        Samsung SpinPoint T166 500GB SATA II (HD501LJ)
 
  '''HDD''':        Samsung SpinPoint T166 500GB SATA II (HD501LJ)
 
  '''DVB-S2:'''    Technotrend-budget DVB S2-3200 <-- remote not used -->
 
  '''DVB-S2:'''    Technotrend-budget DVB S2-3200 <-- remote not used -->
 +
'''DVB-S2:'''    Hauppauge WinTV Nova-HD-S2 (PCI/DVB-S/DVB-S2)
 
  '''VGA:'''        nVidia 9500 GT 512MB
 
  '''VGA:'''        nVidia 9500 GT 512MB
 
  '''Remote:'''    Medion USB X10
 
  '''Remote:'''    Medion USB X10
 
===Getting the distribution and installing it===
 
===Getting the distribution and installing it===
To obtaint sidux distribution go to http://www.sidux.com/ and download latest version. In time of writing this HowTo it was "sidux-2008-02" and for my VDR HTPC i used 64bit lite version, and i testet it on xfce and kde lite: ''sidux-2008-02-erebos-xfce-amd64-200806252108.iso'' or ''sidux-2008-02-erebos-kde-lite-amd64-200806252050.iso'' .
+
To obtain sidux distribution go to http://www.sidux.com/ and download latest version. In time of writing this HowTo it was "sidux-2008-02" and for my VDR HTPC i used 64bit lite version, and i testet it on xfce and kde lite: ''sidux-2008-02-erebos-xfce-amd64-200806252108.iso'' or ''sidux-2008-02-erebos-kde-lite-amd64-200806252050.iso'' .
 +
Update: As the ourea-sidux-2008-03 is now awaible we will use sidux-2008-03-ourea-xfce-amd64-200809221848.iso in future with this wiki, and wiki will be updated to match this version.
 +
System is updated on 12.10.2008 and whole wiki is updated to match rls on 12.10.2008
  
 
Download link from Mirrors (iso 470MB) http://sidux.com/Article303.html
 
Download link from Mirrors (iso 470MB) http://sidux.com/Article303.html
Zeile 36: Zeile 39:
 
We will also need extras, for the extras use as root:
 
We will also need extras, for the extras use as root:
 
  wget -qO /usr/local/bin/extras http://extras.741.com/extras && cd /usr/local/bin && chmod +x extras && extras
 
  wget -qO /usr/local/bin/extras http://extras.741.com/extras && cd /usr/local/bin && chmod +x extras && extras
You dont need to install anything here ist important to have debian-multimedia source list named: multimedia.list in /etc/apt/sources.d/ for installing some -dev library which are not found in other sources list.
+
You dont need to install anything here ist important to have deb-multimedia source list named: multimedia.list in /etc/apt/sources.d/ for installing some -dev library which are not found in other sources list.
 
Dist-upgrade
 
Dist-upgrade
 
  init 3
 
  init 3
Zeile 42: Zeile 45:
 
  apt-get dist-upgrade -d (only download files)
 
  apt-get dist-upgrade -d (only download files)
 
  apt-get dist-upgrade (update files)
 
  apt-get dist-upgrade (update files)
 +
If you got warning that public key for deb-multimedia isnt valid like the text belowe then do:
 +
  Reading package lists... Done
 +
  W: GPG error: http://www.deb-multimedia.org unstable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 07DC563D1F41B907
 +
  W: You may want to run apt-get update to correct these problems
 +
 +
apt-get install sidux-keyrings
 +
gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 1F41B907 && apt-key add /root/.gnupg/pubring.gpg
 +
or
 +
wget http://deb-multimedia.org/gpgkey.pub -O - | apt-key add - && apt-get install deb-multimedia-keyring
 +
 
If new kernel is installed then reboot and boot in new kernel.
 
If new kernel is installed then reboot and boot in new kernel.
 
After booting in the new Kernel we need also to install graphics driver for our nVidia card, and for that we will use smxi sidux Maintenance script from h2.
 
After booting in the new Kernel we need also to install graphics driver for our nVidia card, and for that we will use smxi sidux Maintenance script from h2.
Zeile 52: Zeile 65:
 
  cd /usr/local/bin; wget techpatterns.com/smxi.zip;unzip smxi.zip;smxi
 
  cd /usr/local/bin; wget techpatterns.com/smxi.zip;unzip smxi.zip;smxi
 
Configure script, but dont do dist upgrade or anything with it, we will use it only for graphics driver:
 
Configure script, but dont do dist upgrade or anything with it, we will use it only for graphics driver:
  sgfxi -co 173.14.12
+
  sgfxi -o 173.14.12
 +
or
 +
sgfxi -o 177.80 (to use latest beta)
 
switch to init 5 (start X)
 
switch to init 5 (start X)
  
Zeile 72: Zeile 87:
 
  apt-get install lirc-modules-source
 
  apt-get install lirc-modules-source
 
  dpkg-reconfigure lirc-modules-source
 
  dpkg-reconfigure lirc-modules-source
Check atiusb from the list rest uncheck. Copy lircd.conf from this wiki http://www.vdr-wiki.de/wiki/index.php/Fernbedienung_-_USB_X10 and save to /etc/lirc/lircd.conf
+
Check atiusb from the list rest uncheck. Copy lircd.conf from this wiki [[Fernbedienung - USB X10]] and save to /etc/lirc/lircd.conf
 
Edit hardware.conf file and add that lirc_atiusb modules
 
Edit hardware.conf file and add that lirc_atiusb modules
 
  vi /etc/lirc/hardware.conf <-- and change settings to match with code belove -->
 
  vi /etc/lirc/hardware.conf <-- and change settings to match with code belove -->
Zeile 95: Zeile 110:
 
And check with "/usr/bin/irw" if remote is working when you press some buttons on it.
 
And check with "/usr/bin/irw" if remote is working when you press some buttons on it.
  
== DVB-S2 Drivers ==
+
== DVB-S2 Drivers Hauppauge WinTV NOVA-HD-S2 ==
 +
Because of lock issue with Technotrend DVB-S2 3200 i buyed Hauppauge card and here is how you install driver for it.
 +
We will need firmware for this card, and we will use windows driver to extract only a firmware:
 +
cd /usr/local/src
 +
wget http://www.wintvcd.co.uk/drivers/88x_2_122_26109_WHQL.zip
 +
unzip -jo 88x_2_122_26109_WHQL.zip Driver88/hcw88bda.sys
 +
dd if=hcw88bda.sys of=dvb-fe-cx24116.fw skip=75504 bs=1 count=32501
 +
cp dvb-fe-cx24116.fw /lib/firmware/
 +
 
 +
Lets install driver for this card. We will use now S2API for this card, and not multiproto or multiproto_plus.
 +
apt-get update
 +
apt-get install mercurial
 +
cd /usr/local/src
 +
hg clone http://linuxtv.org/hg/~stoth/s2 s2api
 +
cd /usr/local/src/s2api/linux/include/linux/
 +
ln -s /usr/src/linux-headers-`uname -r`/include/linux/compiler.h compiler.h
 +
cd /usr/local/src/s2api
 +
make
 +
make install
 +
depmod –a
 +
reboot
 +
 
 +
Now when you type "dmesg" you should see something like this:
 +
Linux video capture interface: v2.00
 +
cx88/0: cx2388x v4l2 driver version 0.0.6 loaded
 +
ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 20 (level, low) -> IRQ 20
 +
cx88[0]: subsystem: 0070:6906, board: Hauppauge WinTV-HVR4000(Lite) DVB-S/S2 [card=69,autodetected]
 +
cx88[0]: TV tuner type -1, Radio tuner type -1
 +
logips2pp: Detected unknown logitech mouse model 127
 +
cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
 +
cx2388x alsa driver version 0.0.6 loaded
 +
tveeprom 1-0050: Hauppauge model 69100, rev B2C3, serial# 3244518
 +
tveeprom 1-0050: MAC address is 00-0D-FE-31-81-E6
 +
tveeprom 1-0050: tuner model is Conexant CX24118A (idx 123, type 4)
 +
tveeprom 1-0050: TV standards ATSC/DVB Digital (eeprom 0x80)
 +
tveeprom 1-0050: audio processor is None (idx 0)
 +
tveeprom 1-0050: decoder processor is CX882 (idx 25)
 +
tveeprom 1-0050: has no radio, has IR receiver, has no IR transmitter
 +
cx88[0]: hauppauge eeprom: model=69100
 +
input: cx88 IR (Hauppauge WinTV-HVR400 as /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/input/input5
 +
cx88[0]/0: found at 0000:05:00.0, rev: 5, irq: 20, latency: 32, mmio: 0xea000000
 +
cx88[0]/0: registered device video0 [v4l2]
 +
cx88[0]/0: registered device vbi0
 +
cx88[0]/2: cx2388x 8802 Driver Manager
 +
ACPI: PCI Interrupt 0000:05:00.2[A] -> GSI 20 (level, low) -> IRQ 20
 +
cx88[0]/2: found at 0000:05:00.2, rev: 5, irq: 20, latency: 32, mmio: 0xec000000
 +
ACPI: PCI Interrupt 0000:05:00.1[A] -> GSI 20 (level, low) -> IRQ 20
 +
cx88[0]/1: CX88x/0: ALSA support for cx2388x boards
 +
cx88/2: cx2388x dvb driver version 0.0.6 loaded
 +
cx88/2: registering cx8802 driver, type: dvb access: shared
 +
cx88[0]/2: subsystem: 0070:6906, board: Hauppauge WinTV-HVR4000(Lite) DVB-S/S2 [card=69]
 +
cx88[0]/2: cx2388x based DVB/ATSC card
 +
DVB: registering new adapter (cx88[0])
 +
DVB: registering frontend 0 (Conexant CX24116/CX24118)...
 +
 
 +
All done lets continue.
 +
 
 +
== DVB-S2 Drivers Technotrend DVB S2-3200 ==
 
We will use Manu´s multiproto tree:
 
We will use Manu´s multiproto tree:
 
Install dvb driver from multiproto, for that we need mercurial for "hg clone etc"
 
Install dvb driver from multiproto, for that we need mercurial for "hg clone etc"
Zeile 102: Zeile 174:
 
  cd /usr/local/src
 
  cd /usr/local/src
 
  hg clone http://jusst.de/hg/multiproto dvb
 
  hg clone http://jusst.de/hg/multiproto dvb
  cd /usr/src/dvb/linux/include/linux/
+
  cd /usr/local/src/dvb/linux/include/linux/
 
  ln -s /usr/src/linux-headers-`uname -r`/include/linux/compiler.h compiler.h
 
  ln -s /usr/src/linux-headers-`uname -r`/include/linux/compiler.h compiler.h
 
  cd /usr/local/src/dvb/
 
  cd /usr/local/src/dvb/
Zeile 137: Zeile 209:
 
  vi multiproto_fastlock_fix_new.patch.diff
 
  vi multiproto_fastlock_fix_new.patch.diff
 
{{Box Code|multiproto_fastlock_fix_new.patch.diff|<pre>
 
{{Box Code|multiproto_fastlock_fix_new.patch.diff|<pre>
--- stb6100.c 2008-09-17 19:54:23.000000000 +0200
+
--- linux/drivers/media/dvb/frontends/stb6100.c 2008-09-17 19:54:23.000000000 +0200
+++ stb6100.c.new 2008-09-17 20:21:08.000000000 +0200
+
+++ linux/drivers/media/dvb/frontends/stb6100.c.new 2008-09-17 20:21:08.000000000 +0200
 
@@ -343,11 +343,18 @@
 
@@ -343,11 +343,18 @@
 
  break;
 
  break;
Zeile 216: Zeile 288:
 
== Xine ffpmeg ==
 
== Xine ffpmeg ==
 
We will use latest snapshoot for xine-lib xine-ui, and as we are building xine-lib with external ffmpeg we will use latest ffmpeg to:
 
We will use latest snapshoot for xine-lib xine-ui, and as we are building xine-lib with external ffmpeg we will use latest ffmpeg to:
 +
=== x264 ===
 +
ffmpeg depent on x264 > 65 version, so we will install x264 from source
 +
cd /usr/local/src
 +
apt-get install yasm git-core
 +
git clone git://git.videolan.org/x264.git
 +
cd x264
 +
./configure --enable-shared
 +
make
 +
make install
 +
 
=== ffmpeg ===  
 
=== ffmpeg ===  
 
  cd /usr/local/src/
 
  cd /usr/local/src/
 
  apt-get update
 
  apt-get update
  apt-get remove libxine1 libxine1-bin libxine1-dbg <--removing xinelib installed with distribution, remove all these: gxine gxineplugin libxine1-xvdr -->
+
  apt-get remove libxine1 libxine1-bin libxine1-dbg
This will remove old xine1 library:
+
<--above command will remove xinelib installed with distribution-->
{{Box Code||<pre>
+
The following packages will be REMOVED:
root@vdrbox:~# apt-get remove libxine1 libxine1-bin libxine1-dbg
+
gxine gxineplugin libxine1 libxine1-bin libxine1-console libxine1-ffmpeg libxine1-misc-plugins libxine1-plugins
Reading package lists... Done
+
libxine1-x libxine1-xvdr
Building dependency tree
+
 
Reading state information... Done
+
This will remove old xine1 library.
Package libxine1-dbg is not installed, so not removed
+
 
The following packages will be REMOVED:
+
  gxine gxineplugin libxine1 libxine1-bin libxine1-console libxine1-ffmpeg libxine1-misc-plugins
+
  libxine1-plugins libxine1-x libxine1-xvdr
+
0 upgraded, 0 newly installed, 10 to remove and 11 not upgraded.
+
After this operation, 8880kB disk space will be freed.
+
Do you want to continue [Y/n]? y
+
</pre>
+
}}
+
 
  apt-get install autoconf libtool automake autoconf pkg-config gettext subversion
 
  apt-get install autoconf libtool automake autoconf pkg-config gettext subversion
 
  apt-get install liba52-0.7.4-dev libmp3lame-dev libvorbis-dev zlib1g-dev libpng12-dev libx11-dev libxv-dev libasound2-dev libogg-dev
 
  apt-get install liba52-0.7.4-dev libmp3lame-dev libvorbis-dev zlib1g-dev libpng12-dev libx11-dev libxv-dev libasound2-dev libogg-dev
 
  apt-get install libxvidcore4-dev libtheora-dev libgsm1-dev libfaac-dev libfaad-dev
 
  apt-get install libxvidcore4-dev libtheora-dev libgsm1-dev libfaac-dev libfaad-dev
Before doing build-dep ffmpeg you need to edit sidux.list and debian.list in /etc/sources.list.d/ and uncomment (remove #) in front of deb-src, and also for multimedia.list where you need to insert line:
+
Before doing build-dep ffmpeg you need to edit sidux.list and debian.list in /etc/apt/sources.list.d/ and uncomment (remove #) in front of deb-src, and also for multimedia.list where you need to insert line:
  deb-src http://www.debian-multimedia.org/ unstable main
+
  deb-src http://www.deb-multimedia.org/ unstable main
 
1)
 
1)
 
  apt-get update
 
  apt-get update
 
  apt-get build-dep ffmpeg
 
  apt-get build-dep ffmpeg
  svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-14-09-2008
+
  svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg_12.10.2008
  cd ffmpeg-14-09-2008
+
  cd ffmpeg_12.10.2008
  ./configure --prefix=/usr --enable-shared --enable-gpl --enable-postproc --enable-liba52 --enable-libmp3lame --enable-libvorbis --enable-pthreads --enable-swscale --arch=x86_64 --cpu=k8
+
  ./configure --prefix=/usr --enable-shared --enable-pthreads --enable-postproc --enable-swscale --enable-avfilter --enable-avfilter-lavf --enable-gpl --enable-x11grab --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid  --extra-cflags="-mtune=native -march=native -O4 -pipe"
 +
Note: --enable-liba52 should not be used anymore as ffmpeg now have native ac3 and eac3 decoders, the external library support is removied
 
  make
 
  make
 
  make install
 
  make install
 
  ldconfig
 
  ldconfig
 +
 
=== xine-lib ===
 
=== xine-lib ===
 
# download xine-lib from Mercurial Repositories (xine-lib, gxine)
 
# download xine-lib from Mercurial Repositories (xine-lib, gxine)
Zeile 254: Zeile 330:
 
  apt-get install autogen cvs libXext-dev libcdio-dev libvcdinfo-dev libpostproc-dev libpng12-dev libxt-dev
 
  apt-get install autogen cvs libXext-dev libcdio-dev libvcdinfo-dev libpostproc-dev libpng12-dev libxt-dev
 
  cd /usr/local/src/
 
  cd /usr/local/src/
  hg clone http://hg.debian.org/hg/xine-lib/xine-lib-1.2 xine-lib-1.2-14-09-2008
+
  hg clone http://hg.debian.org/hg/xine-lib/xine-lib-1.2 xine-lib-1.2_14.10.2008
  cd xine-lib-1.2-14-09-2008
+
  cd xine-lib-1.2_14.10.2008
# IMPORTANT for latest ffmpeg snapshoot you need to patch xine-lib-1.2 to get it compiled with external ffmpeg, thnx to _ds_ for patch.
+
 
{{Box Code|patch.diff|<pre>
+
'''* Patching of xine-lib.1.2 isnt needed anymore as the source is updated and now contain the patch which was here posted before.'''
diff --git a/src/combined/ffmpeg/ff_audio_decoder.c b/src/combined/ffmpeg/ff_audio_decoder.c
+
--- a/src/combined/ffmpeg/ff_audio_decoder.c
+
+++ b/src/combined/ffmpeg/ff_audio_decoder.c
+
@@ -321,7 +321,7 @@ static void ff_audio_decode_data (audio_
+
+
    if (!this->output_open) {
+
      if (!this->audio_bits || !this->audio_sample_rate || !this->audio_channels) {
+
-        avcodec_decode_audio (this->context,
+
+        avcodec_decode_audio2 (this->context,
+
                              (int16_t *)this->decode_buffer,
+
                              &decode_buffer_size,
+
                              &this->buf[0],
+
diff --git a/src/combined/ffmpeg/ffmpeg_decoder.h b/src/combined/ffmpeg/ffmpeg_decoder.h
+
--- a/src/combined/ffmpeg/ffmpeg_decoder.h
+
+++ b/src/combined/ffmpeg/ffmpeg_decoder.h
+
@@ -31,6 +31,10 @@
+
#  include <libavcodec/avcodec.h>
+
#endif
+
+
+#if LIBAVCODEC_VERSION_MAJOR > 51
+
+#define bits_per_sample bits_per_coded_sample
+
+#endif
+
+
+
typedef struct ff_codec_s {
+
  uint32_t          type;
+
  enum CodecID      id;
+
</pre>
+
}}
+
  
Copy the code above in to the new file:
 
vi patch.diff <-- Hit I for Insert and Paste that code; Hit escape and write :wq -->
 
patch -p1 -i patch.diff
 
 
  ./autogen.sh --prefix=/usr --with-external-ffmpeg --disable-dxr3  
 
  ./autogen.sh --prefix=/usr --with-external-ffmpeg --disable-dxr3  
 
  make  
 
  make  
 
  make install  
 
  make install  
 
  ldconfig
 
  ldconfig
 +
 
=== xine-ui ===
 
=== xine-ui ===
 
  apt-get update
 
  apt-get update
Zeile 300: Zeile 346:
 
  cvs -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine login
 
  cvs -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine login
 
  cvs -z3 -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine co -P xine-ui
 
  cvs -z3 -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine co -P xine-ui
  mv xine-ui xine-ui-14-09-2008
+
  mv xine-ui xine-ui_12.10.2008
  cd xine-ui-14-09-2008
+
  cd xine-ui_12.10.2008
 
  ./autogen.sh --prefix=/usr --enable-vdr-keys  
 
  ./autogen.sh --prefix=/usr --enable-vdr-keys  
 
  make  
 
  make  
Zeile 311: Zeile 357:
 
  apt-get install libncurses-dev libncursesw5-dev libfreetype6-dev libfontconfig1-dev libxft-dev libjpeg62-dev libcap-dev
 
  apt-get install libncurses-dev libncursesw5-dev libfreetype6-dev libfontconfig1-dev libxft-dev libjpeg62-dev libcap-dev
 
  cd /usr/local/src/
 
  cd /usr/local/src/
  wget ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.7.0.tar.bz2
+
  wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.0.tar.bz2
 
  tar -xjf vdr-1.7.0.tar.bz2
 
  tar -xjf vdr-1.7.0.tar.bz2
 
  mv vdr-1.7.0 vdr
 
  mv vdr-1.7.0 vdr
 
  cd vdr
 
  cd vdr
# patch for h264
+
# patch for h264 and S2API support
 +
First we will need Reinhard's vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
 
  wget http://www.linuxtv.org/pipermail/vdr/attachments/20080413/1054bcfb/attachment-0001.bin
 
  wget http://www.linuxtv.org/pipermail/vdr/attachments/20080413/1054bcfb/attachment-0001.bin
 
  mv attachment-0001.bin vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
 
  mv attachment-0001.bin vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
 
  bunzip2 vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
 
  bunzip2 vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
 
  patch -p1 -i vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff
 
  patch -p1 -i vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff
 +
 +
wget http://www.linuxtv.org/pipermail/vdr/attachments/20081007/edcd3fcc/attachment-0001.obj
 +
mv attachment-0001.obj vdr-1.7.0-s2api-07102008-h264-clean.patch.gz
 +
gunzip vdr-1.7.0-s2api-07102008-h264-clean.patch.gz
 +
patch -p1 -i vdr-1.7.0-s2api-07102008-h264-clean.patch
 +
 +
# patch for h264 ONLY IF USING MULTIPROTO OR MULTIPROTO_PLUS
 +
wget http://www.linuxtv.org/pipermail/vdr/attachments/20080413/1054bcfb/attachment-0001.bin
 +
mv attachment-0001.bin vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
 +
bunzip2 vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
 +
patch -p1 -i vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff
 +
 
# now xine-vdr.0.8.2 from Reinhard Nißl http://home.vrweb.de/~rnissl/  
 
# now xine-vdr.0.8.2 from Reinhard Nißl http://home.vrweb.de/~rnissl/  
 
  cd PLUGINS/src/
 
  cd PLUGINS/src/
Zeile 330: Zeile 389:
 
  vi Make.config <-- hit i for Insert mode paste the code above and hit escape and type :wq -->
 
  vi Make.config <-- hit i for Insert mode paste the code above and hit escape and type :wq -->
 
{{Box Code|Make.config|<pre>
 
{{Box Code|Make.config|<pre>
 +
# cat Make.config
 
#
 
#
 
# User defined Makefile options for the Video Disk Recorder
 
# User defined Makefile options for the Video Disk Recorder
Zeile 354: Zeile 414:
 
   
 
   
 
### The directory environment:
 
### The directory environment:
+
#change it to dvb if using multiproto or multiproto_plus
DVBDIR  = /usr/local/src/dvb/linux
+
DVBDIR  = /usr/local/src/s2api/linux
 
MANDIR  = /usr/man
 
MANDIR  = /usr/man
 
BINDIR  = /usr/bin
 
BINDIR  = /usr/bin
Zeile 364: Zeile 424:
 
VDRSCRIPTDIR= /usr/lib/vdr/scripts
 
VDRSCRIPTDIR= /usr/lib/vdr/scripts
 
VIDEODIR = /video
 
VIDEODIR = /video
CONFDIR  = /etc/vdr
+
CONFDIR  = /etc/vdr/
 
   
 
   
 
### The remote control:
 
### The remote control:
 
   
 
   
LIRC_DEVICE = /dev/lirc0
+
LIRC_DEVICE = /dev/lircd
 
RCU_DEVICE  = /dev/ttyS1
 
RCU_DEVICE  = /dev/ttyS1
 
   
 
   
 
## Define if you want vdr to not run as root
 
## Define if you want vdr to not run as root
 
#VDR_USER = vdr
 
#VDR_USER = vdr
 +
 
REMOTE= LIRC
 
REMOTE= LIRC
 
VFAT= 1
 
VFAT= 1
FFMDIR= /usr/local/src/ffmpeg-14-09-2008 #dont forget to change if ffmpeg folder have diferent name
+
FFMDIR= /usr/local/src/ffmpeg_12.10.2008  
 +
#dont forget to change if ffmpeg folder have diferent name
 
FFMPEG_STATIC= 1
 
FFMPEG_STATIC= 1
 
FFMPEG_SVN= 1
 
FFMPEG_SVN= 1
Zeile 490: Zeile 552:
 
LIRC.Channel-  Channel-
 
LIRC.Channel-  Channel-
 
LIRC.Record    Record
 
LIRC.Record    Record
 +
remote-tcp:3333.Up        0000000000415B1B
 +
remote-tcp:3333.Down      0000000000425B1B
 +
remote-tcp:3333.Menu      000000000000006D
 +
remote-tcp:3333.Ok        0000000000000A0D
 +
remote-tcp:3333.Back      0000000000000062
 +
remote-tcp:3333.Left      0000000000445B1B
 +
remote-tcp:3333.Right      0000000000435B1B
 +
remote-tcp:3333.Red        0000007E30325B1B
 +
remote-tcp:3333.Green      0000007E31325B1B
 +
remote-tcp:3333.Yellow    0000007E33325B1B
 +
remote-tcp:3333.Blue      0000007E34325B1B
 +
remote-tcp:3333.0          0000000000000030
 +
remote-tcp:3333.1          0000000000000031
 +
remote-tcp:3333.2          0000000000000032
 +
remote-tcp:3333.3          0000000000000033
 +
remote-tcp:3333.4          0000000000000034
 +
remote-tcp:3333.5          0000000000000035
 +
remote-tcp:3333.6          0000000000000036
 +
remote-tcp:3333.7          0000000000000037
 +
remote-tcp:3333.8          0000000000000038
 +
remote-tcp:3333.9          0000000000000039
 +
remote-tcp:3333.Channel+  000000000000002B
 +
remote-tcp:3333.Channel-  000000000000002D
 +
remote-tcp:3333.Volume+    000000007E355B1B
 +
remote-tcp:3333.Volume-    000000007E365B1B
 
</pre>
 
</pre>
 
}}
 
}}
Zeile 530: Zeile 617:
 
  wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-channellogos-xpm-hi-20070702.tgz
 
  wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-channellogos-xpm-hi-20070702.tgz
 
  wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-fonts-20080225.tgz
 
  wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-fonts-20080225.tgz
  tar xzvf skinenigmang-channellogos-xpm-hi-20070702.tgz
+
  tar xzvf skinenigmang-logos-xpm-hi-20070702.tgz
 
  tar xzvf skinenigmang-channellogos-xpm-hi-20070702.tgz
 
  tar xzvf skinenigmang-channellogos-xpm-hi-20070702.tgz
 
  tar xzvf skinenigmang-fonts-20080225.tgz
 
  tar xzvf skinenigmang-fonts-20080225.tgz
Zeile 538: Zeile 625:
 
  wget http://www.muempf.de/down/vdr-premiereepg-0.0.8.tar.gz
 
  wget http://www.muempf.de/down/vdr-premiereepg-0.0.8.tar.gz
 
  tar -xzvf vdr-premiereepg-0.0.8.tar.gz
 
  tar -xzvf vdr-premiereepg-0.0.8.tar.gz
 +
mv premiereepg-0.0.8 premiereepg
 +
cd ../..
 
  make plugins
 
  make plugins
 
  make install
 
  make install
 +
 
== Edit runvdr script==
 
== Edit runvdr script==
 
For runvdr we will use runvdr-extreme script from http://www.udo-richter.de/vdr/scripts.html#runvdr-extreme
 
For runvdr we will use runvdr-extreme script from http://www.udo-richter.de/vdr/scripts.html#runvdr-extreme
Zeile 545: Zeile 635:
 
  wget http://www.udo-richter.de/vdr/files/runvdr-extreme-0.4.0.tgz
 
  wget http://www.udo-richter.de/vdr/files/runvdr-extreme-0.4.0.tgz
 
  tar -xvif runvdr-extreme-0.4.0.tgz
 
  tar -xvif runvdr-extreme-0.4.0.tgz
  cd runvdr-extreme-0.4.0.tgz
+
  cd runvdr-extreme-0.4.0/
 
  cp init.d.runvdr.Debian /etc/init.d/runvdr
 
  cp init.d.runvdr.Debian /etc/init.d/runvdr
 
  chmod a+x /etc/init.d/runvdr
 
  chmod a+x /etc/init.d/runvdr
Zeile 551: Zeile 641:
 
  chmod a+x /usr/bin/runvdr
 
  chmod a+x /usr/bin/runvdr
 
  cp runvdr.conf.example /etc/runvdr.conf
 
  cp runvdr.conf.example /etc/runvdr.conf
# Edit the /etc/runvdr.conf and add your plugins/settings.
+
Edit the '''/etc/runvdr.conf''' and '''/etc/init.d/runvdr''' to add your plugins/settings,
 +
set "'''/usr/bin/runvdr'''" as Path for the Deamon script.
 +
 
 +
# runxine.desktop script ==
 +
Login with normal user, go to your /home/USERNAME/Desktop (Change USERNAME with username you using) and make a new file:
 +
nano /home/USERNAME/Desktop/runxine
 +
And paste code belowe:
 +
{{Box Code|remote.conf|<pre>
 +
[Desktop Entry]
 +
Version=1.0
 +
Encoding=UTF-8
 +
Name=runxine
 +
Comment=
 +
Comment[de]=
 +
Exec=xine -V xv -A alsa -Dtvtime:method=use_vo_driver,cheap_mode=1,pulldown=none,use_progressive_frame_flag=1 -pqhf --post vdr_video --post vdr_audio --post upmix_mono "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
 +
GenericName=dvb
 +
GenericName[de]=dvb
 +
Icon=video
 +
MimeType=video/mp4;video/mpeg;video/quicktime;video/x-flic;video/x-msvideo;video/x-ogm;video/x-theora;
 +
Name[de]=xine-vdr
 +
Path=
 +
ServiceTypes=
 +
StartupNotify=false
 +
Terminal=false
 +
TerminalOptions=
 +
Type=Application
 +
X-DCOP-ServiceType=none
 +
X-KDE-SubstituteUID=false
 +
X-KDE-Username=
 +
GenericName[de_DE@euro]=dvb
 +
</pre>
 +
}}
 +
Double click on that file and xine should be launched and you should see something.
 +
After first run of runxine script close it and edit config file /home/USERNAME/.xine/config
 +
nano /home/USERNAME/.xine/config
 +
And uncomment these line and change at the ende of line to match the line belowe.
 +
video.processing.ffmpeg_choose_speed_over_accuracy:1
 +
video.processing.ffmpeg_pp_quality:0
 +
video.processing.ffmpeg_skip_loop_filter:all
 +
video.processing.ffmpeg_thread_count:2
 +
 
 +
== Thanks to ==
 +
* Klaus Schmidinger for VDR
 +
* Reinhard Nißl for xine-vdr plugin
 +
* V4L Dev team
 +
* S2API Dev team
 +
* FFMPEG Dev team
 +
* x264 Dev team
 +
* xine Dev team
 +
* Shalafi the one who helped me a lot in debuing stuff and helping in this vdr-wiki. Thanks a lot.
 +
*''' And big thanks goes to #ES, without ppl overthere this wiki would never been writen.'''
 +
 
 +
[[Kategorie:Installationsanleitungen]]

Aktuelle Version vom 29. August 2013, 18:15 Uhr

Inhaltsverzeichnis

[Bearbeiten] Description

This install proces will show you how to install vdr and dvb-s2 drivers from source on sidux (debian sid based distribution). I know that compiling the source under Debian distribution isnt common and some ppl will say Debian isnt for you if you do it that way. Well if you wanna have latest developer version of VDR and DVB-S2 drivers and also ffpmeg and xine player then you need to use sources.

[Bearbeiten] Hardware

For this you can use what you have. This to be Howto is based on DVB-S2 cards, and the software needed to play VDR over VGA cards aka xine-vdr plugin.

[Bearbeiten] Used Hardware

This is my VDR HTPC based system:

Case:       Thermaltake Bach black
PSU:        LC Power 420 Watt - Green Power
Mainboard:  Gigabyte GA-P35-DS4 rev 1.0
CPU:        Intel Core 2 Duo E6420 Boxed
RAM:        Super Talent DIMM Kit 2GB PC2-6400U
HDD:        Samsung SpinPoint T166 500GB SATA II (HD501LJ)
DVB-S2:     Technotrend-budget DVB S2-3200 <-- remote not used -->
DVB-S2:     Hauppauge WinTV Nova-HD-S2 (PCI/DVB-S/DVB-S2)
VGA:        nVidia 9500 GT 512MB
Remote:     Medion USB X10

[Bearbeiten] Getting the distribution and installing it

To obtain sidux distribution go to http://www.sidux.com/ and download latest version. In time of writing this HowTo it was "sidux-2008-02" and for my VDR HTPC i used 64bit lite version, and i testet it on xfce and kde lite: sidux-2008-02-erebos-xfce-amd64-200806252108.iso or sidux-2008-02-erebos-kde-lite-amd64-200806252050.iso . Update: As the ourea-sidux-2008-03 is now awaible we will use sidux-2008-03-ourea-xfce-amd64-200809221848.iso in future with this wiki, and wiki will be updated to match this version. System is updated on 12.10.2008 and whole wiki is updated to match rls on 12.10.2008

Download link from Mirrors (iso 470MB) http://sidux.com/Article303.html Some note from sidux.com

THIS IS VERY IMPORTANT: sidux, as a Linux LIVE-CD, is based on high compression technology, and because of that, special care is needed when burning
the ISO image. Only use high quality CD-media [or DVD+RW] and burn in DAO-mode (disk-at-once) and not faster than x8.

You my use this boot cheatcode if you get Font to be to Big when you boot live cd and this is my boot cheatcode for installing sidux on 40" LCD TV: Just press Tab before booting live cd and add at end this:

vga=0x37B dpi=75
vga=0x37B is cheatcode for resolution 1280x720x32
dpi=75 is cheatcode for Dot´s Per Inch for your display 

More info about Cheatcodes for sidux you can find here: http://manual.sidux.com/en/cheatcodes-en.htm

After installing distribution make shure your sidux distribution is updated to latest version, we will first get latest debian.list and source.list

cd /etc/apt/sources.list.d && wget -O debian.list http://sidux.com/files/misc/sources.list.d/debian.list && wget -O sidux.list http://sidux.com/files/misc/sources.list.d/sidux.list

We will also need extras, for the extras use as root:

wget -qO /usr/local/bin/extras http://extras.741.com/extras && cd /usr/local/bin && chmod +x extras && extras

You dont need to install anything here ist important to have deb-multimedia source list named: multimedia.list in /etc/apt/sources.d/ for installing some -dev library which are not found in other sources list. Dist-upgrade

init 3
apt-get update
apt-get dist-upgrade -d (only download files)
apt-get dist-upgrade (update files)

If you got warning that public key for deb-multimedia isnt valid like the text belowe then do:

  Reading package lists... Done
  W: GPG error: http://www.deb-multimedia.org unstable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 07DC563D1F41B907
  W: You may want to run apt-get update to correct these problems
apt-get install sidux-keyrings 
gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 1F41B907 && apt-key add /root/.gnupg/pubring.gpg
or
wget http://deb-multimedia.org/gpgkey.pub -O - | apt-key add - && apt-get install deb-multimedia-keyring

If new kernel is installed then reboot and boot in new kernel. After booting in the new Kernel we need also to install graphics driver for our nVidia card, and for that we will use smxi sidux Maintenance script from h2. We will switch to terminal:

Ctrl+Alt+F1 

then login with root and your root password switch to init 3 (shoot down X)

init 3

install smxi script

cd /usr/local/bin; wget techpatterns.com/smxi.zip;unzip smxi.zip;smxi

Configure script, but dont do dist upgrade or anything with it, we will use it only for graphics driver:

sgfxi -o 173.14.12
or
sgfxi -o 177.80 (to use latest beta)

switch to init 5 (start X)


init 5

Setup your resolution with nvidia tool, i am using 1920x1080@60Hz for Full HD resolution on my Samsung LE-40M86BD LCD TV. If you are looged as user in X (and you should) you will not have rights to write nvidia settings to X11 configuration file /etc/X11/xorg.conf but you can copy that code from nvidia settings window and paste in X11 as root user from console.

su
mv /etc/X11/xorg.conf /etc/X11/xorg.conf_orig
vi /etc/X11/xorg.conf

Press I for insert Paste that settings from nvidia configuration tool, Press Escape and type

:wq

Now you can reboot to see if you will get it working on resolution you just setup (or restart X : init 3 and init 5 from terminal or CTRL+Alt+Backspace) Now we setup everything for building VDR on our system.

[Bearbeiten] Lirc

I will use Medion USB X10 remote control, here is what you need to do to get it working:

apt-get install lirc-modules-source
dpkg-reconfigure lirc-modules-source

Check atiusb from the list rest uncheck. Copy lircd.conf from this wiki Fernbedienung - USB X10 and save to /etc/lirc/lircd.conf Edit hardware.conf file and add that lirc_atiusb modules

vi /etc/lirc/hardware.conf <-- and change settings to match with code belove -->
Code: hardware.conf part of it
# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# If DEVICE is set to /dev/lirc and udev is in use /dev/lirc0 will be
# automatically used instead
DEVICE="/dev/lirc0"
MODULES="lirc_atiusb"

#Module compile and install
apt-get install module-assistant
module-assistant -f auto-install lirc-modules-source 

Blacklist the atiremote

vi /etc/modprobe.d/blacklist 
#Hit I for Insert mode, and add to the end of file 
blacklist ati_remote
#Hit Escape and write :wq to save and quite vi editor
reboot

And check with "/usr/bin/irw" if remote is working when you press some buttons on it.

[Bearbeiten] DVB-S2 Drivers Hauppauge WinTV NOVA-HD-S2

Because of lock issue with Technotrend DVB-S2 3200 i buyed Hauppauge card and here is how you install driver for it. We will need firmware for this card, and we will use windows driver to extract only a firmware:

cd /usr/local/src
wget http://www.wintvcd.co.uk/drivers/88x_2_122_26109_WHQL.zip
unzip -jo 88x_2_122_26109_WHQL.zip Driver88/hcw88bda.sys
dd if=hcw88bda.sys of=dvb-fe-cx24116.fw skip=75504 bs=1 count=32501
cp dvb-fe-cx24116.fw /lib/firmware/

Lets install driver for this card. We will use now S2API for this card, and not multiproto or multiproto_plus.

apt-get update
apt-get install mercurial
cd /usr/local/src
hg clone http://linuxtv.org/hg/~stoth/s2 s2api
cd /usr/local/src/s2api/linux/include/linux/
ln -s /usr/src/linux-headers-`uname -r`/include/linux/compiler.h compiler.h
cd /usr/local/src/s2api
make
make install
depmod –a
reboot

Now when you type "dmesg" you should see something like this:

Linux video capture interface: v2.00
cx88/0: cx2388x v4l2 driver version 0.0.6 loaded
ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 20 (level, low) -> IRQ 20
cx88[0]: subsystem: 0070:6906, board: Hauppauge WinTV-HVR4000(Lite) DVB-S/S2 [card=69,autodetected]
cx88[0]: TV tuner type -1, Radio tuner type -1
logips2pp: Detected unknown logitech mouse model 127
cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
cx2388x alsa driver version 0.0.6 loaded
tveeprom 1-0050: Hauppauge model 69100, rev B2C3, serial# 3244518
tveeprom 1-0050: MAC address is 00-0D-FE-31-81-E6
tveeprom 1-0050: tuner model is Conexant CX24118A (idx 123, type 4)
tveeprom 1-0050: TV standards ATSC/DVB Digital (eeprom 0x80)
tveeprom 1-0050: audio processor is None (idx 0)
tveeprom 1-0050: decoder processor is CX882 (idx 25)
tveeprom 1-0050: has no radio, has IR receiver, has no IR transmitter
cx88[0]: hauppauge eeprom: model=69100
input: cx88 IR (Hauppauge WinTV-HVR400 as /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/input/input5
cx88[0]/0: found at 0000:05:00.0, rev: 5, irq: 20, latency: 32, mmio: 0xea000000
cx88[0]/0: registered device video0 [v4l2]
cx88[0]/0: registered device vbi0
cx88[0]/2: cx2388x 8802 Driver Manager
ACPI: PCI Interrupt 0000:05:00.2[A] -> GSI 20 (level, low) -> IRQ 20
cx88[0]/2: found at 0000:05:00.2, rev: 5, irq: 20, latency: 32, mmio: 0xec000000
ACPI: PCI Interrupt 0000:05:00.1[A] -> GSI 20 (level, low) -> IRQ 20
cx88[0]/1: CX88x/0: ALSA support for cx2388x boards
cx88/2: cx2388x dvb driver version 0.0.6 loaded
cx88/2: registering cx8802 driver, type: dvb access: shared
cx88[0]/2: subsystem: 0070:6906, board: Hauppauge WinTV-HVR4000(Lite) DVB-S/S2 [card=69]
cx88[0]/2: cx2388x based DVB/ATSC card
DVB: registering new adapter (cx88[0])
DVB: registering frontend 0 (Conexant CX24116/CX24118)...

All done lets continue.

[Bearbeiten] DVB-S2 Drivers Technotrend DVB S2-3200

We will use Manu´s multiproto tree: Install dvb driver from multiproto, for that we need mercurial for "hg clone etc"

apt-get update
apt-get install mercurial
cd /usr/local/src
hg clone http://jusst.de/hg/multiproto dvb
cd /usr/local/src/dvb/linux/include/linux/
ln -s /usr/src/linux-headers-`uname -r`/include/linux/compiler.h compiler.h
cd /usr/local/src/dvb/

We will also use two new patchs for TT-3200 card which should resolv lock on some channels/transponders posted on linux-dvb mailing list multiproto_channellock_fix.patch.diff and multiproto_fastlock_fix_new.patch.diff. 1)Create new file:

vi multiproto_channellock_fix.patch.diff
Code: multiproto_channellock_fix.patch.diff
 --- linux/drivers/media/dvb/frontends/stb0899_algo.c.org	2008-04-24 22:04:10.000000000 +0200
+++ linux/drivers/media/dvb/frontends/stb0899_algo.c	2008-07-16 18:54:25.000000000 +0200
@@ -205,7 +205,7 @@
 	struct stb0899_internal *internal = &state->internal;
 	struct stb0899_params *params = &state->params;
 
-	short int derot_step, derot_freq = 0, derot_limit, next_loop = 3;
+	short int derot_freq = 0, derot_limit, next_loop = 3;
 	int index = 0;
 	u8 cfr[2];
 
@@ -213,11 +213,10 @@
 
 	/* timing loop computation & symbol rate optimisation	*/
 	derot_limit = (internal->sub_range / 2L) / internal->mclk;
-	derot_step = (params->srate / 2L) / internal->mclk;
 
 	while ((stb0899_check_tmg(state) != TIMINGOK) && next_loop) {
 		index++;
-		derot_freq += index * internal->direction * derot_step;	/* next derot zig zag position	*/
+		derot_freq += index * internal->direction * internal->derot_step;	/* next zig zag position	*/
 
 		if (ABS(derot_freq) > derot_limit)
 			next_loop--; 

vi multiproto_fastlock_fix_new.patch.diff
Code: multiproto_fastlock_fix_new.patch.diff
--- linux/drivers/media/dvb/frontends/stb6100.c	2008-09-17 19:54:23.000000000 +0200
+++ linux/drivers/media/dvb/frontends/stb6100.c.new	2008-09-17 20:21:08.000000000 +0200
@@ -343,11 +343,18 @@
 		break;
 	}
 
+	regs[STB6100_DLB] = 0xDC;
+	/** Disable LPEN */
+	regs[STB6100_LPEN] &= ~STB6100_LPEN_LPEN;	/* PLL loop disabled		*/
+
+	if ((rc = stb6100_write_regs(state, regs)) < 0)
+		return rc;
+
 	/* Baseband gain.	*/
 	if (srate >= 15000000)
-		g = 9;  //  +4 dB
-	else if (srate >= 5000000)
-		g = 11; //  +8 dB
+		g = 8;
+	else if (state->srate >= 5000000)
+		g = 12;
 	else
 		g = 14; // +14 dB
 
@@ -399,9 +406,11 @@
 	/* Power up. */
 	regs[STB6100_LPEN] |= STB6100_LPEN_SYNP	| STB6100_LPEN_OSCP | STB6100_LPEN_BEN;
 
+	msleep(2);
 	if ((rc = stb6100_write_regs(state, regs)) < 0)
 		return rc;
 
+	msleep(2);
 	regs[STB6100_LPEN] |= STB6100_LPEN_LPEN;	/* PLL loop enabled		*/
 	if ((rc = stb6100_write_reg(state, STB6100_LPEN, regs[STB6100_LPEN])) < 0)
 		return rc;
@@ -410,13 +419,16 @@
 	if ((rc = stb6100_write_reg(state, STB6100_VCO, regs[STB6100_VCO])) < 0)
 		return rc;
 
-	msleep(10);					/* wait for LO to lock		*/
+	msleep(5);					/* wait for LO to lock		*/
 	regs[STB6100_VCO] &= ~STB6100_VCO_OSCH;		/* vco search disabled		*/
 	regs[STB6100_VCO] |= STB6100_VCO_OCK;		/* search clock off		*/
 	if ((rc = stb6100_write_reg(state, STB6100_VCO, regs[STB6100_VCO])) < 0)
 		return rc;
 	regs[STB6100_FCCK] &= ~STB6100_FCCK_FCCK;       /* LPF BW clock disabled	*/
-	if ((rc = stb6100_write_reg(state, STB6100_FCCK, regs[STB6100_FCCK])) < 0)
+// 	if ((rc = stb6100_write_reg(state, STB6100_FCCK, regs[STB6100_FCCK])) < 0)
+
+	stb6100_normalise_regs(regs);
+	if((rc = stb6100_write_reg_range(state, &regs[1], 1, STB6100_NUMREGS - 3)) < 0)
 		return rc;
 
 	msleep(30); 

Patch the files with:

patch -p0 -i multiproto_channellock_fix.patch.diff
patch -p0 -i multiproto_fastlock_fix_new.patch.diff

You should get info that files have been patched.

make
make install
reboot

Reboot and check dmesg for log about DVB-S2 device:

saa7146: register extension 'budget_ci dvb'.
ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 20 (level, low) -> IRQ 20
saa7146: found saa7146 @ mem ffffc20000334000 (revision 1, irq 20) (0x13c2,0x1019).
saa7146 (0): dma buffer size 192512
DVB: registering new adapter (TT-Budget S2-3200 PCI)
adapter has MAC addr = 00:00:00:00:00:00 <- changed
input: Budget-CI dvb ir receiver saa7146 (0) as /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/input/input6
stb0899_attach: Attaching STB0899
stb6100_attach: Attaching STB6100
DVB: registering frontend 0 (STB0899 Multistandard)...

[Bearbeiten] Xine ffpmeg

We will use latest snapshoot for xine-lib xine-ui, and as we are building xine-lib with external ffmpeg we will use latest ffmpeg to:

[Bearbeiten] x264

ffmpeg depent on x264 > 65 version, so we will install x264 from source

cd /usr/local/src
apt-get install yasm git-core
git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-shared
make
make install

[Bearbeiten] ffmpeg

cd /usr/local/src/
apt-get update
apt-get remove libxine1 libxine1-bin libxine1-dbg
<--above command will remove xinelib installed with distribution-->
The following packages will be REMOVED:
gxine gxineplugin libxine1 libxine1-bin libxine1-console libxine1-ffmpeg libxine1-misc-plugins libxine1-plugins
libxine1-x libxine1-xvdr

This will remove old xine1 library.

apt-get install autoconf libtool automake autoconf pkg-config gettext subversion
apt-get install liba52-0.7.4-dev libmp3lame-dev libvorbis-dev zlib1g-dev libpng12-dev libx11-dev libxv-dev libasound2-dev libogg-dev
apt-get install libxvidcore4-dev libtheora-dev libgsm1-dev libfaac-dev libfaad-dev

Before doing build-dep ffmpeg you need to edit sidux.list and debian.list in /etc/apt/sources.list.d/ and uncomment (remove #) in front of deb-src, and also for multimedia.list where you need to insert line:

deb-src http://www.deb-multimedia.org/ unstable main

1)

apt-get update
apt-get build-dep ffmpeg
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg_12.10.2008
cd ffmpeg_12.10.2008
./configure --prefix=/usr --enable-shared --enable-pthreads --enable-postproc --enable-swscale --enable-avfilter --enable-avfilter-lavf --enable-gpl --enable-x11grab --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid  --extra-cflags="-mtune=native -march=native -O4 -pipe"
Note: --enable-liba52 should not be used anymore as ffmpeg now have native ac3 and eac3 decoders, the external library support is removied
make
make install
ldconfig

[Bearbeiten] xine-lib

  1. download xine-lib from Mercurial Repositories (xine-lib, gxine)
apt-get update
apt-get install autogen cvs libXext-dev libcdio-dev libvcdinfo-dev libpostproc-dev libpng12-dev libxt-dev
cd /usr/local/src/
hg clone http://hg.debian.org/hg/xine-lib/xine-lib-1.2 xine-lib-1.2_14.10.2008
cd xine-lib-1.2_14.10.2008

* Patching of xine-lib.1.2 isnt needed anymore as the source is updated and now contain the patch which was here posted before.

./autogen.sh --prefix=/usr --with-external-ffmpeg --disable-dxr3 
make 
make install 
ldconfig

[Bearbeiten] xine-ui

apt-get update
apt-get install shared-mime-info 
cd /usr/local/src/
cvs -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine login
cvs -z3 -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine co -P xine-ui
mv xine-ui xine-ui_12.10.2008
cd xine-ui_12.10.2008
./autogen.sh --prefix=/usr --enable-vdr-keys 
make 
make install

[Bearbeiten] VDR

  1. Lets download vdr-1.7.0
apt-get update
apt-get install libncurses-dev libncursesw5-dev libfreetype6-dev libfontconfig1-dev libxft-dev libjpeg62-dev libcap-dev
cd /usr/local/src/
wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.0.tar.bz2
tar -xjf vdr-1.7.0.tar.bz2
mv vdr-1.7.0 vdr
cd vdr
  1. patch for h264 and S2API support
First we will need Reinhard's vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
wget http://www.linuxtv.org/pipermail/vdr/attachments/20080413/1054bcfb/attachment-0001.bin
mv attachment-0001.bin vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
bunzip2 vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
patch -p1 -i vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff

wget http://www.linuxtv.org/pipermail/vdr/attachments/20081007/edcd3fcc/attachment-0001.obj
mv attachment-0001.obj vdr-1.7.0-s2api-07102008-h264-clean.patch.gz
gunzip vdr-1.7.0-s2api-07102008-h264-clean.patch.gz
patch -p1 -i vdr-1.7.0-s2api-07102008-h264-clean.patch

  1. patch for h264 ONLY IF USING MULTIPROTO OR MULTIPROTO_PLUS
wget http://www.linuxtv.org/pipermail/vdr/attachments/20080413/1054bcfb/attachment-0001.bin
mv attachment-0001.bin vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
bunzip2 vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
patch -p1 -i vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff

  1. now xine-vdr.0.8.2 from Reinhard Nißl http://home.vrweb.de/~rnissl/
cd PLUGINS/src/
wget http://home.vrweb.de/~rnissl/vdr-xine-0.8.2.tgz
tar -xzvf vdr-xine-0.8.2.tgz
mv xine-0.8.2/ xine
mv vdr-xine-0.8.2.tgz /usr/local/src/ <-- maybe we will need it later to -->
cd ../../
  1. Use Make.config i posted here
vi Make.config <-- hit i for Insert mode paste the code above and hit escape and type :wq -->
Code: Make.config
# cat Make.config
#
# User defined Makefile options for the Video Disk Recorder
#
# Copy this file to 'Make.config' and change the parameters as necessary.
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Make.config.template 2.0 2008/01/13 12:54:09 kls Exp $
 
### The C compiler and options:
 
CC       = gcc
CFLAGS   = -g -O2 -Wall
 
CXX      = g++
CXXFLAGS = -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
 
ifdef PLUGIN
CFLAGS   += -fPIC
CXXFLAGS += -fPIC
endif
 
### The directory environment:
#change it to dvb if using multiproto or multiproto_plus
DVBDIR   = /usr/local/src/s2api/linux
MANDIR   = /usr/man
BINDIR   = /usr/bin
 
LOCDIR   = /usr/share/locale
PLUGINDIR= ./PLUGINS
PLUGINLIBDIR= /usr/lib/vdr/plugins
VDRSCRIPTDIR= /usr/lib/vdr/scripts
VIDEODIR = /video
CONFDIR  = /etc/vdr/
 
### The remote control:
 
LIRC_DEVICE = /dev/lircd
RCU_DEVICE  = /dev/ttyS1
 
## Define if you want vdr to not run as root
#VDR_USER = vdr
 
REMOTE= LIRC
VFAT= 1
FFMDIR= /usr/local/src/ffmpeg_12.10.2008 
#dont forget to change if ffmpeg folder have diferent name
FFMPEG_STATIC= 1
FFMPEG_SVN= 1
 
### You don't need to touch the following:
 
ifdef DVBDIR
INCLUDES += -I$(DVBDIR)/include
endif

make
make plugins
make install
  1. copy the .mpg files from xine-vdr plugin to plugins directory
mkdir -p /etc/vdr/plugins/xine/
cd /etc/vdr/plugins/xine/ 
cp -a /usr/local/src/vdr/PLUGINS/src/xine/data/* .
  1. make symlink to xineplayer
cd /usr/local/src/vdr/PLUGINS/src/xine/
ln -s $(pwd)/xineplayer /usr/bin/xineplayer
  1. config files copy to /etc/vdr
cd /usr/local/src/vdr/
cp -a svdrpsend.pl /usr/bin/
cp *.conf /etc/vdr
  1. Download new channels.conf from linowsat.de
cd /etc/vdr/
mv channels.conf channels.conf_orig
  1. I have AStra 19.2 and Hotbird 13.0 if you need something else then check http://www.linowsat.de/settings/vdr.html
wget http://www.linowsat.de/settings/vdr/01300192/ca/channels.conf
  1. remote.conf file
cd /etc/vdr/
vi remote.conf

Paste the code belove, save and quit.

Code: remote.conf
KBD.Up         00000000001B5B41
KBD.Down       00000000001B5B42
KBD.Menu       000000000000006D
KBD.Ok         000000000000000D
KBD.Back       0000000000000062
KBD.Left       000000000000006C
KBD.Right      0000000000000072
KBD.Red        0000001B5B32307E
KBD.Green      0000001B5B32317E
KBD.Yellow     0000001B5B32337E
KBD.Blue       0000001B5B32347E
KBD.0          0000000000000030
KBD.1          0000000000000031
KBD.2          0000000000000032
KBD.3          0000000000000033
KBD.4          0000000000000034
KBD.5          0000000000000035
KBD.6          0000000000000036
KBD.7          0000000000000037
KBD.8          0000000000000038
KBD.9          0000000000000039
KBD.Play       0000000000000070
KBD.Pause      0000000000000050
KBD.Stop       0000000000000073
KBD.Record     0000000000000052
KBD.FastFwd    0000000000000066
KBD.FastRew    0000000000000046
KBD.Power      0000000000000010
KBD.Channel+   000000000000002B
KBD.Channel-   000000000000002D
KBD.Volume+    00000000001B5B43
KBD.Volume-    00000000001B5B44
KBD.Schedule   0000000000000053
KBD.Channels   0000000000000063
KBD.Timers     0000000000000074
KBD.Recordings 0000000000001B72
KBD.Setup      0000000000000013
KBD.Commands   0000000000000043
KBD.User1      00000000001B4F50
KBD.User2      00000000001B4F51
KBD.User3      00000000001B4F52
KBD.User4      00000000001B4F53
KBD.User5      000000001B5B5B45
KBD.User6      0000001B5B31377E
KBD.User7      0000001B5B31387E
KBD.User8      0000001B5B31397E
LIRC.Up         Up
LIRC.Down       Down
LIRC.Menu       Menu
LIRC.Ok         Ok
LIRC.Back       Back
LIRC.Left       Left
LIRC.Right      Right
LIRC.Red        Red
LIRC.Green      Green
LIRC.Yellow     Yellow
LIRC.Blue       Blue
LIRC.0          0
LIRC.1          1
LIRC.2          2
LIRC.3          3
LIRC.4          4
LIRC.5          5
LIRC.6          6
LIRC.7          7
LIRC.8          8
LIRC.9          9
LIRC.Play       play
LIRC.Pause      pause
LIRC.Stop       stop
LIRC.FastFwd    fwd
LIRC.FastRew    rew
LIRC.Volume+    Volume+
LIRC.Volume-    Volume-
LIRC.Mute       Mute
LIRC.Channels   Yellow
LIRC.Channel+   Channel+
LIRC.Channel-   Channel-
LIRC.Record     Record
remote-tcp:3333.Up         0000000000415B1B
remote-tcp:3333.Down       0000000000425B1B
remote-tcp:3333.Menu       000000000000006D
remote-tcp:3333.Ok         0000000000000A0D
remote-tcp:3333.Back       0000000000000062
remote-tcp:3333.Left       0000000000445B1B
remote-tcp:3333.Right      0000000000435B1B
remote-tcp:3333.Red        0000007E30325B1B
remote-tcp:3333.Green      0000007E31325B1B
remote-tcp:3333.Yellow     0000007E33325B1B
remote-tcp:3333.Blue       0000007E34325B1B
remote-tcp:3333.0          0000000000000030
remote-tcp:3333.1          0000000000000031
remote-tcp:3333.2          0000000000000032
remote-tcp:3333.3          0000000000000033
remote-tcp:3333.4          0000000000000034
remote-tcp:3333.5          0000000000000035
remote-tcp:3333.6          0000000000000036
remote-tcp:3333.7          0000000000000037
remote-tcp:3333.8          0000000000000038
remote-tcp:3333.9          0000000000000039
remote-tcp:3333.Channel+   000000000000002B
remote-tcp:3333.Channel-   000000000000002D
remote-tcp:3333.Volume+    000000007E355B1B
remote-tcp:3333.Volume-    000000007E365B1B

[Bearbeiten] Other VDR plugins

[Bearbeiten] OSD Teletext (Teletext plugin)

cd /usr/local/src/vdr/PLUGINS/src
wget http://www.wiesweg-online.de/linux/vdr/vdr-osdteletext-0.5.1.tgz
wget http://www.vdr-portal.de/board/attachment.php?attachmentid=13339
mv attachment.php\?attachmentid\=13339 osdteletext-0.5.1-vdr-1.5.0.diff 
tar -xivf vdr-osdteletext-0.5.1.tgz
mv osdteletext-0.5.1 osdteletext
cd osdteletext
patch -p1 -i ../osdteletext-0.5.1-vdr-1.5.0.diff
cd ../../../
make plugins
make install
mkdir -p /vtx

[Bearbeiten] Femon (Signal plugin)

cd /usr/local/src/vdr/PLUGINS/src
wget http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/vdr-femon-1.6.1.tgz
tar -xzvf vdr-femon-1.6.1.tgz
mv femon-1.6.1 femon
cd ../../
make plugins
make install

[Bearbeiten] EnigmaNG (VDR skin)

"EnigmaNG" is a standalone skin for VDR based on the "Enigma" text2skin addon. URL: http://andreas.vdr-developer.org/enigmang/

cd /usr/local/src/vdr/PLUGINS/src
wget http://andreas.vdr-developer.org/enigmang/download/vdr-skinenigmang-0.0.6.tgz
tar -xivf vdr-skinenigmang-0.0.6.tgz
mv skinenigmang-0.0.6 skinenigmang
cd ../../
make plugins
make install

After make plugins and make install we need to download logos, channellogos and fonts in our plugins directory

mkdir -p /etc/vdr/plugins/skinenigmang
cd /etc/vdr/plugins
wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-logos-xpm-hi-20070702.tgz
wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-channellogos-xpm-hi-20070702.tgz
wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-fonts-20080225.tgz
tar xzvf skinenigmang-logos-xpm-hi-20070702.tgz
tar xzvf skinenigmang-channellogos-xpm-hi-20070702.tgz
tar xzvf skinenigmang-fonts-20080225.tgz

[Bearbeiten] PremiereEpg plugin

The plugin parses the extended EPG data which is send by Premiere on their portal channels (e.g. SPORT PORTAL). The EPG data is transmitted in a non-standard format on a non-standard PID. The resulting EPG events are feed into VDRs normale EPG database.

cd /usr/local/src/vdr/PLUGINS/src
wget http://www.muempf.de/down/vdr-premiereepg-0.0.8.tar.gz
tar -xzvf vdr-premiereepg-0.0.8.tar.gz
mv premiereepg-0.0.8 premiereepg
cd ../..
make plugins
make install

[Bearbeiten] Edit runvdr script

For runvdr we will use runvdr-extreme script from http://www.udo-richter.de/vdr/scripts.html#runvdr-extreme

cd /usr/local/src/
wget http://www.udo-richter.de/vdr/files/runvdr-extreme-0.4.0.tgz
tar -xvif runvdr-extreme-0.4.0.tgz
cd runvdr-extreme-0.4.0/
cp init.d.runvdr.Debian /etc/init.d/runvdr
chmod a+x /etc/init.d/runvdr
cp runvdr /usr/bin/runvdr
chmod a+x /usr/bin/runvdr
cp runvdr.conf.example /etc/runvdr.conf

Edit the /etc/runvdr.conf and /etc/init.d/runvdr to add your plugins/settings, set "/usr/bin/runvdr" as Path for the Deamon script.

  1. runxine.desktop script ==

Login with normal user, go to your /home/USERNAME/Desktop (Change USERNAME with username you using) and make a new file:

nano /home/USERNAME/Desktop/runxine

And paste code belowe:

Code: remote.conf
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=runxine
Comment=
Comment[de]=
Exec=xine -V xv -A alsa -Dtvtime:method=use_vo_driver,cheap_mode=1,pulldown=none,use_progressive_frame_flag=1 -pqhf --post vdr_video --post vdr_audio --post upmix_mono "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
GenericName=dvb
GenericName[de]=dvb
Icon=video
MimeType=video/mp4;video/mpeg;video/quicktime;video/x-flic;video/x-msvideo;video/x-ogm;video/x-theora;
Name[de]=xine-vdr
Path=
ServiceTypes=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=none
X-KDE-SubstituteUID=false
X-KDE-Username=
GenericName[de_DE@euro]=dvb 

Double click on that file and xine should be launched and you should see something. After first run of runxine script close it and edit config file /home/USERNAME/.xine/config

nano /home/USERNAME/.xine/config
And uncomment these line and change at the ende of line to match the line belowe.
video.processing.ffmpeg_choose_speed_over_accuracy:1
video.processing.ffmpeg_pp_quality:0
video.processing.ffmpeg_skip_loop_filter:all
video.processing.ffmpeg_thread_count:2

[Bearbeiten] Thanks to

  • Klaus Schmidinger for VDR
  • Reinhard Nißl for xine-vdr plugin
  • V4L Dev team
  • S2API Dev team
  • FFMPEG Dev team
  • x264 Dev team
  • xine Dev team
  • Shalafi the one who helped me a lot in debuing stuff and helping in this vdr-wiki. Thanks a lot.
  • And big thanks goes to #ES, without ppl overthere this wiki would never been writen.