[vdr] vdr 1.2.6 and 1.3.17

Reinhard Nissl rnissl at gmx.de
Sun Feb 20 10:07:58 CET 2005


Hi,

Simon Baxter wrote:

> This is the first time I'v tried to get VDR working.  Have a budget card 
> (with no decoder) so had to extend xine with the vdr plugins.  This 
> seems to be working.  when I run "xine --verbose=2" I can see the vdr 
> drivers being loaded.  Next step get VDR working
>  
> I've followed all the xine plugin directions and got as far as ./runvdr 
> "'-Pxine -r'" in the INSTALL
>  
> [root at nzbaxters VDR]# ./runvdr "'-Pxine -r'"
> /bin/sh: line 0: cd: /usr/src/linux-2.6.9-rc4: No such file or directory
> head: cannot open 
> `/fifty/data/Packages/video/DVB/driver/DVB/include/linux/dvb/version.h' 
> for reading: No such file or directory
> /bin/sh: line 0: cd: /usr/src/linux-2.6.9-rc4: No such file or directory
> Makefile:113: /fifty/data/Packages/video/DVB/driver/Rules.make: No such 
> file or directory
> make: *** No rule to make target 
> `/fifty/data/Packages/video/DVB/driver/Rules.make'.  Stop.
> [root at nzbaxters VDR]#
>  
> I'm not sure why it's trying to call linux-2.6.9-rc4 but suspect I 
> needed to get a new VDR source and start again.  Since first playing 
> with all this I have moved from FC2 to FC3 and changed kernels several 
> times, until getting the DVB card working properly (as tested with xine 
> natively and mplayer, tzap, scan, etc etc).

runvdr is the typical way, a self compiled VDR is started. But this is 
most often not the correct way for any precompiled VDRs that are part of 
typical distributions. Most likely they provide a service to start VDR 
in the background.

The error messages above result from runvdr trying to load DVB drivers 
and it does it by compiling it's own drivers. So you would need to have 
the  DVB sources in the appropriate directory and you'll also need your 
configured kernels sources to get it working.

But this is no must if your distribution already loads the DVB drivers. 
Maybe there is a service script that does this.

> In looking for a new vdr source, saw the vdr-1.3.17-0.16.rpm was 
> available, so rpm -Uvh'd it.  I now have 1.2.6 complied and available in 
> one directory, and 1.3.17 rpm'd and installed in /usr/bin
>  
> When I try running the same commands:
> [root at nzbaxters bin]# pwd
> /usr/bin
> [root at nzbaxters bin]# ./runvdr "'-Pxine -r'"
> ./runvdr: line 32: cd: ../DVB/driver: No such file or directory
> make: *** No rule to make target `insmod'.  Stop.
> bash: ./vdr: No such file or directory
> Sat Feb 19 15:13:28 GMT 2005
> restarting VDR
> ./vdr: No such file or directory
> ./runvdr: line 42: cd: ../DVB/driver: No such file or directory
> make: *** No rule to make target `rmmod'.  Stop.
> make: *** No rule to make target `insmod'.  Stop.
> Sat Feb 19 15:13:38 GMT 2005
> bash: ./vdr: No such file or directory
> Sat Feb 19 15:13:38 GMT 2005
> restarting VDR
> ./vdr: No such file or directory

Once again, most errors are a result of trying to load DVB drivers. 
Strange is that ./vdr is not found!?

> [root at nzbaxters bin]# vdr
> vdr: warning: NPTL is active - there may be problems
> vdr: please turn off UTF-8 before starting VDR
> [root at nzbaxters bin]#

You seem to have a NPTL system but VDR has still some issues with NPTL 
so it asks you to switch it off.

	export LD_ASSUME_KERNEL=2.4.1

will do the trick.

Then, your system has UTF-8 enabled but once again, VDR has some issues 
in using UTF-8, and asks you to switch it off.

	set | grep -i utf

will tell you all environment variables that indicate to use UTF-8. Just 
set them to anything else e. g. on my system:

	export LC_CTYPE="de_DE at euro"

Now you should be able to start VDR.

> Any suggestions?  Should I get a recent 1.3.x VDR source and patch in 
> the xine plugin?  Can I get the 1.3.17 working 'out of the box' ?

Getting it working "out of the box" is no longer that easy as most 
systems use kernel 2.6, NPTL and UTF-8. So, you'll at least have to add 
the above mentioned exports into runvdr to get it working.

Using a recent VDR and recent dvb-kernel drivers might not be a bad idea 
anyway. But be aware of some modifications compared to documentation.

A) the DVB directory:

video:/soft/src/VDR # dir ../DVB
lrwxrwxrwx  1 root root 16 Feb  8  2004 ../DVB -> dvb-kernel/linux
video:/soft/src/VDR #

B) the way to load DVB drivers:

Please have a look into my attached runvdr. It won't work out of the box 
for you, but it should be easy to adjust it for your needs.

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:rnissl at gmx.de
-------------- next part --------------
#!/bin/sh
export LD_ASSUME_KERNEL=2.4.1
export LC_CTYPE="de_DE at euro"
ulimit -Sc1000000000

# runvdr: Loads the DVB driver and runs VDR
#
# If VDR exits abnormally, the driver will be reloaded
# and VDR restarted.
#
# Set the environment variable VDRUSR to the user id you
# want VDR to run with. If VDRUSR is not set, VDR will run
# as 'root', which is not necessarily advisable.
#
# Since this script loads the DVB driver, it must be started
# as user 'root'.
#
# Any command line parameters will be passed on to the
# actual 'vdr' program.
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: runvdr 1.11 2003/08/26 16:15:41 kls Exp $

VDRDIR=/soft/vdr-1.3.21

plugin()
{
  echo -n " '-P$*'"
}

PLUGINS=`
plugin xine -r;
plugin sc;
#plugin osdpip;
#plugin osdteletext -r;
#plugin femon;
plugin dvd;
plugin yaepg;
#plugin mp3 -m/soft/bin/mount.sh;
#plugin mplayer -m/soft/bin/mount.sh;
#plugin image -m/soft/bin/mount.sh -C/soft/bin/imageplugin.sh;
#plugin tvonscreen;
plugin text2skin;
#plugin epgsearch;
#plugin streamdev-server;
#plugin osdimage -d/data/bilder;
#plugin burn -D /dev/hdd -i /video;
##plugin analogtv;
`

#echo "$PLUGINS"
#exit

DVBDIR="/soft/src/DVB/driver"
DVBKERNELDIR="/soft/src/dvb-kernel/build-2.6"
VDRPRG="$VDRDIR/bin/vdr"
#VDRCMD="$VDRPRG -D 1 -w 60 $*"
#VDRCMD="$VDRPRG -c $VDRDIR/etc/vdr -E $VDRDIR/data -L $VDRDIR/lib/vdr '-Pxine -r' -Posdpip '-Posdteletext -r' -Ptvonscreen -Pcalendar -Pfemon -Ptimeline -w 60 -s /soft/bin/vdr-powerctrl.pl $*"
#VDRCMD="$VDRPRG -D 0 -c $VDRDIR/etc/vdr -E $VDRDIR/data -L $VDRDIR/lib/vdr '-Pxine -r' -Posdpip '-Posdteletext -r' -Pfemon '-Pmhp -L $VDRDIR/lib/vdr -a $VDRDIR/apps' -w 60 -s /soft/bin/vdr-powerctrl.pl $*"
VDRCMD="$VDRPRG -c $VDRDIR/etc/vdr -E $VDRDIR/data -L $VDRDIR/lib/vdr $PLUGINS -w 60 -s /soft/bin/vdr-powerctrl.pl $*"
#VDRCMD="$VDRPRG -c $VDRDIR/etc/vdr -E $VDRDIR/data -L $VDRDIR/lib/vdr $PLUGINS -s /soft/bin/vdr-powerctrl.pl $*"
#VDRCMD="$VDRPRG -c $VDRDIR/etc/vdr -E $VDRDIR/data -L $VDRDIR/lib/vdr '-Pgstreamer' -w 60 -s /soft/bin/vdr-powerctrl.pl $*"

DVD_CORE="`lsmod | grep dvb_core`"
if [ -n "$DVB_CORE" ] ; then
  if \! echo "$DVB_CORE" | grep -q 79400 ; then
    (cd $DVBKERNELDIR; ./insmod2.sh unload)
  fi
fi

LSMOD="`/sbin/lsmod | grep '^dvb' | wc -l`"
KILL="/usr/bin/killall -q -TERM"

# Load driver if it hasn't been loaded already:
if [ $LSMOD -eq 0 ] ; then
#   (cd $DVBDIR; make insmod)
   (cd $DVBKERNELDIR; ./insmod2.sh load)
   fi

while (true) do
#      su $VDRUSR -c "$VDRCMD"
      eval "$VDRCMD"
#      echo "$VDRCMD"
      if test $? -eq 0 -o $? -eq 2; then exit; fi
      date
      echo "restarting VDR"
      $KILL $VDRPRG
      sleep 10
#      (cd $DVBDIR; make rmmod; make insmod)
      (cd $DVBKERNELDIR; ./insmod2.sh unload; ./insmod2.sh load)
      date
      done


More information about the vdr mailing list