Gentoo HD-vdr experimentel

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (Multiproto DVB Treiber im amd64-chroot per Hand installieren)
(Multiproto DVB Treiber im amd64-chroot per Hand installieren)
Zeile 102: Zeile 102:
 
  - emerge gentoo-sources ( selben Kernel wie außerhalb des chroot auswählen, wir wollen uns unsere eigen DVB Treiber bauen, die müssen also zum "Außen" Kernel passen )
 
  - emerge gentoo-sources ( selben Kernel wie außerhalb des chroot auswählen, wir wollen uns unsere eigen DVB Treiber bauen, die müssen also zum "Außen" Kernel passen )
  
==Multiproto DVB Treiber im amd64-chroot per Hand installieren==
+
==s2-liplianin DVB Treiber im amd64-chroot per Hand installieren==
 +
cd /usr/local/src
 +
hg clone http://mercurial.intuxication.org/hg/s2-liplianin/
 +
cd s2-liplianin
 +
cd linux/include/linux
 +
ln -s /usr/src/linux-headers-`uname -r`/include/linux/compiler.h ./
 +
cd ../../../
 +
make
 +
make install
 +
depmod -a
 +
 
 +
==Alternativ Multiproto DVB Treiber im amd64-chroot per Hand installieren==
  
 
( im chroot )
 
( im chroot )

Version vom 12. März 2009, 23:13 Uhr

Inhaltsverzeichnis

Beschreibung

Autor: Alexander Richter - 21.04.2008

Ich stelle hier eine Variante der Installation vor, die in einem Working System 64 Bit ( gentoo )ein chroot erstellt, in dem die aktuellen Entwicklervarianten von ffmpeg xine-lib, xine-ui und vdr laufen können, ohne die Main Installation zu gefährden.

Der zusätzliche Platzaufwand beläuft sich auf rund 2 Gbyte. Backups des ganzen chroots sind ebenfalls möglich, was bei einer misslungenen Installation komfortabel ist.

WRITE TODO

- locales overlay im chroot anlegen
- im localen Overlay ffmpeg bauen
- im localen Overlay xine-lib bauen
- im localen Overlay xine-ui bauen
- im localen Overlay plugins bauen
- im localen Overlay patches einbinden

Entwicklungsumgebung Hardware

- Amd Phenom 9500 auf Asrock AliveNF7G-Hdready
- 1x TT S3200
- 4 Gig Ram
- 24" Zoll Acer via 7050 Chipsatz des Boards

Entwicklungsumgebung Software

- Gentoo 2007.1, kernel 2.6.24-gentoo-r4, x86_64

make.conf :

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O3 -pipe"
ACCEPT_KEYWORDS="amd64"
MAKEOPTS="-j5
LINGUAS="de"
USE="X gtk alsa 3dnow a52 aac acl acpi aim ao apm arts \
audiofile bash-completion bcmath berkdb bindist bzip2 caps cdb cddb \
cdinstall cdparanoia cdr cgi crypt curl dbase dbm dbus dga dirctfb \
dri dts dv dvb dvd dvdr dvdread encode esd evo exif fam fastcgi fbcon \
ffmpeg firefox flac ftp gd gdbm gif gimp gphoto2 gstreamer hal \
icq ieee1394 imagemagick imap imlib innodb ipv6 jabber jack java \
javascript jbig jingle jpeg jpeg2k kde kdexdeltas ladspa lame lesstif \
libnotify libsamplerate libwww lirc lm_sensors lzo mad matroska mime \
mmap mmx mng mjpeg motif mozilla mp3 mpeg mplayer msql multilib musepack \
mysql ncurses networkmanager nls nntp nptl nsplugin nvidia ogg openal \
opengl osc oss pcre pdf perl png posix postgres python qt3 qt4 quicktime \
raw readline rss scanner sdl smartcard sndfile slang sockets socks5 \
sox sqlite sqlite3 sse sse2 sse3 ssl subversion suid svg svga symlink \
tcl tcpd theora threads tiff tk truetype unicode usb v4l v4l2 vcd \
vorbis wavpack win32codecs wmf wxwindows x264 xcomposite xine xinetd xml \
xpm xv xvid zlib"

Einrichten einer amd64-chroot Umgebung

amd64-chroot Umgebung Vorbereitung und Betreten

- Verzeichnis anlegen, hineinwechseln : mkdir /vdr cd /vdr

- Stage entpacken : tar xfjpv stage3-amd64-2008.0_beta1.tar.bz2

- Portage tree entpacken tar xvjf portage-latest.tar.bz2 -C /vdr/usr


- mounten der benötigten Verzeichnisse ins chroot (Pfade des Chroot anpassen !)

#!/bin/bash
echo "mounting vs"
mount -o bind /dev /vdr/dev 
mount -o bind /dev/pts /vdr/dev/pts
mount -o bind /dev/shm /vdr/dev/shm
mount -o bind /proc /vdr/proc
mount -o bind /proc/bus/usb /vdr/proc/bus/usb
mount -o bind /sys /vdr/sys
mount -o bind /tmp /vdr/tmp
mount -o bind /usr/portage/distfiles /vdr/usr/portage/distfiles
# optional weitere
#mount -o bind /video /vdr/video
#mount -o bind /home/alex/mpeg2avi/ /vdr/home/alex/mpeg2avi/
#mount -o bind /home/alex/.vdrtransxvid/ /vdr/home/alex/.vdrtransxvid/
#mount -o bind /dev/sdb1/ /vdr/archiv/

- Xserver Zugang für Programme aus dem chroot ( hier xine )

$ xhost local:localhost 

- chroot

$ chroot /vdr

- im chroot System - Vorbereitung

env-update
source /etc/profile
export PS1="(chroot) $PS1"
- emerge --sync
- emerge --update world --deep
- emerge gentoo-sources ( selben Kernel wie außerhalb des chroot auswählen, wir wollen uns unsere eigen DVB Treiber bauen, die müssen also zum "Außen" Kernel passen )

s2-liplianin DVB Treiber im amd64-chroot per Hand installieren

cd /usr/local/src hg clone http://mercurial.intuxication.org/hg/s2-liplianin/ cd s2-liplianin cd linux/include/linux ln -s /usr/src/linux-headers-`uname -r`/include/linux/compiler.h ./ cd ../../../ make make install depmod -a

Alternativ Multiproto DVB Treiber im amd64-chroot per Hand installieren

( im chroot )

mkdir -p /data/installfiles/dvb
cd /data/installfiles/dvb

wenn noch nicht vorhanden

emerge mercurial 
hg clone http://jusst.de/hg/multiproto_plus
mv multiproto_plus/ dvb-multiproto_plus-cvs-17-04-2008
mkdir -p /usr/local/src/dvb 
cd /usr/local/src/dvb
cp -a /data/installfiles/dvb/dvb-multiproto_plus-cvs-17-04-2008/* .
make distclean

Link auf compiler.h setzen

cd /usr/local/src/dvb/linux/include/linux
ln -s /usr/src/linux/include/linux/compiler.h compiler.h

Kernelkonfiguration erstellen und abspeichern

cd /usr/src/linux
make menuconfig
Device Drivers  ---> Multimedia devices  ---> <M> DVB For Linux
"Exit"
"Exit"
"Exit"
Do you wish to save your new kernel configuration?
"Yes"

DVB Treiber installieren

cd /usr/local/src/dvb/
make && make install

Prüfen der DVB Treiber Installation


cd /lib/modules/$(uname -r)/kernel/drivers/media/dvb/ttpci
ls -l
-rw-r--r-- 1 root root  58888 Jan 29 19:36 budget-av.ko
-rw-r--r-- 1 root root  54424 Jan 29 19:36 budget-ci.ko
-rw-r--r-- 1 root root  35344 Jan 29 19:36 budget-core.ko
-rw-r--r-- 1 root root  33008 Jan 29 19:36 budget-patch.ko
-rw-r--r-- 1 root root  39112 Jan 29 19:36 budget.ko
-rw-r--r-- 1 root root 179112 Jan 29 19:36 dvb-ttpci.ko
-rw-r--r-- 1 root root  21416 Jan 29 19:36 ttpci-eeprom.ko

Bei Problemen auch : SUSE - Artikel , der Grundlage für diesen Part ist der Artikel OpenSUSE VDR DVB-S2 - Teil2: DVB Treiber

- im chroot System - dvb Treiber laden und Zugriffsrechte ändern, um als unprivilegierter User zugreifen zu können (hier mit TT S3200 und TT budget ci)

#!/bin/bash
echo "lade dvb-s2 kernel module"
modprobe stb6100
modprobe stb0899
modprobe stv0299
modprobe lnbp21
modprobe budget-ci
echo "ändere Zugriffsrechte des dvb Adapters 0" 
chmod a+rwx /dev/dvb/adapter0/demux0
chmod a+rwx /dev/dvb/adapter0/dvr0
chmod a+rwx /dev/dvb/adapter0/frontend0
chmod a+rwx /dev/dvb/adapter0/net0
echo "ändere Zugriffsrechte des dvb Adapters 1"
chmod a+rwx /dev/dvb/adapter1/ca0
chmod a+rwx /dev/dvb/adapter1/demux0
chmod a+rwx /dev/dvb/adapter1/dvr0
chmod a+rwx /dev/dvb/adapter1/frontend0
chmod a+rwx /dev/dvb/adapter1/net0

im chroot vdr via local ebuild bauen

- Abhängigkeiten von vdr bauen

ebuild -pvt --onlydeps vdr
ebuild --onlydeps vdr

- locales Overlay anlegen

TODO Write

- ebuild für vdr-1.5.14 ( dev version ) in ( z.B. ) (chroot Verzeichnis)/usr/local/overlay/media-video/vdr/vdr-1.5.14.ebuild

# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-video/vdr/vdr-1.5.14.ebuild,2008/04/21 18:05:23 zzam Exp $ 

inherit eutils flag-o-matic multilib 

IUSE_EXTENSIONS="cmdsubmenu cutterlimit cutterqueue cuttime ddepgentry
	dolbyinrec dvbplayer dvbsetup dvdarchive dvdchapjump graphtft hardlinkcutter iptv
	jumpplay liemikuutio lnbshare mainmenuhooks menuorg noepg osdmaxitems pinplugin
	rotor settime setup sortrecords sourcecaps submenu livebuffer
	ttxtsubs timercmd timerinfo validinput yaepg
	syncearly dvlfriendlyfnames dvlrecscriptaddon dvlvidprefer
	volctrl wareagleicon lircsettings premiereepgfix"

IUSE="debug vanilla ${IUSE_EXTENSIONS}" 

EXT_V="45"
EXT_P=VDR-Extensions-Patch-${EXT_V}
EXT_DIR=${WORKDIR}/${EXT_P}/
# Set if != $PV
EXT_VDR_PV=1.5.14

DESCRIPTION="Video Disk Recorder - turns a pc into a powerful set top box for DVB"
HOMEPAGE="http://www.cadsoft.de/vdr/"
SRC_URI="ftp://ftp.cadsoft.de/vdr/Developer/${P}.tar.bz2"
#	http://www.zulu-entertainment.de/files/patches/${EXT_P}.tar.bz2" 

KEYWORDS="amd64 ~ppc ~x86"
SLOT="0"
LICENSE="GPL-2"


DEPEND="media-libs/jpeg
	sys-apps/gawk
	sys-libs/libcap
	>=media-libs/fontconfig-2.4.2
	>=media-libs/freetype-2
	dev-util/unifdef
	sys-devel/gettext"

# rausgenommen um Platz für den ( per hand zu installierenden ) multiproto teiber zu schaffen
#	media-tv/linuxtv-dvb-headers 


RDEPEND="${DEPEND}
	dev-lang/perl"
#	>=media-tv/gentoo-vdr-scripts-0.4.2"

# pull in vdr-setup to get the xml files, else menu will not work
PDEPEND="setup? ( >=media-plugins/vdr-setup-0.3.1-r1 )"

CONF_DIR=/etc/vdr
CAP_FILE=${S}/capabilities.sh
CAPS="# Capabilities of the vdr-executable for use by startscript etc."

pkg_setup() {
	use debug && append-flags -g
	PLUGIN_LIBDIR="/usr/$(get_libdir)/vdr/plugins"
}

add_cap() {
	local arg
	for arg; do
		CAPS="${CAPS}\n${arg}=1"
	done
}

enable_patch() {
	local arg ARG_UPPER
	for arg; do
		ARG_UPPER=$(echo $arg|tr '[:lower:]' '[:upper:]')
		echo "${ARG_UPPER} = 1" >> Make.config
	done
}

extensions_add_make_conf()
{
	# copy all ifdef for extensions-patch to Make.config
	sed -e '1,/need to touch the following:/d' \
		-e '/ifdef DVBDIR/,/^$/d' \
		Make.config.template >> Make.config
}

extensions_all_defines() {
	# extract all possible settings for extensions-patch
	sed -e '/^#\?[A-Z].*= 1/!d' -e 's/^#\?//' -e 's/ .*//' \
		Make.config.template \
		| sort \
		| tr '[:upper:]' '[:lower:]'
}

extensions_all_defines_unset() {
	# extract all possible settings for extensions-patch
	# and convert them to -U... for unifdef
	sed -e '/^#\?[A-Z].*= 1/!d' -e 's/^#\?/-UUSE_/' -e 's/ .*//' \
		Make.config.template \
		| tr '\n' ' '
}

do_unifdef() {
	ebegin "Unifdef sources"
	local mf="Makefile.get"
	cat <<'EOT' > $mf
include Makefile
show_def:
	@echo $(DEFINES)
show_src_files:
	@echo $(OBJS:%.o=%.c)
EOT

	local DEFINES=$(extensions_all_defines_unset)

	local RAW_DEFINES=$(make -f "$mf" show_def)
	local VDR_SRC_FILES=$(make -f "$mf" show_src_files)
	local KEEP_FILES=""
	rm "$mf"

	local def
	for def in $RAW_DEFINES; do
		case "${def}" in
			-DUSE*)
				DEFINES="${DEFINES} ${def}"
				;;
		esac
	done

	local f
	for f in *.c; do

		# Removing the src files the Makefile does not use for compiling vdr
		if ! has $f ${VDR_SRC_FILES} ${KEEP_FILES}; then
			rm -f ${f} ${f%.c}.h
			continue
		fi

		unifdef ${DEFINES} "$f" > "tmp.$f"
		mv "tmp.$f" "$f"
	done
	for f in *.h; do
		unifdef ${DEFINES} "$f" > "tmp.$f"
		mv "tmp.$f" "$f"
		 -s $f  || rm "$f"
	done
	eend 0
}

src_unpack() {

	unpack ${A}
	cd "${S}"

	ebegin "Changing pathes for gentoo"

	sed \
	  -e 's-ConfigDirectory = VideoDirectory;-ConfigDirectory = CONFDIR;-' \
	  -i vdr.c

	cat > Make.config <<-EOT
		#
		# Generated by ebuild ${PF}
		#
		PREFIX			= /usr
		DVBDIR			= /usr/local/src/dvb/linux
		PLUGINLIBDIR	= ${PLUGIN_LIBDIR}
		CONFDIR			= ${CONF_DIR}
		VIDEODIR		= /video
		LOCDIR			= \$(PREFIX)/share/vdr/locale

		DEFINES			+= -DCONFDIR=\"\$(CONFDIR)\"

	EOT
	eend 0

	epatch "${FILESDIR}"/vdr-1.5.14-makefile-install-header.diff
#	epatch "${FILESDIR}"/vdr-1.5.14-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff
	epatch "${FILESDIR}"/vdr-1.5.14-multiproto-nodelivery.diff
	epatch "${FILESDIR}"/vdr-1.5.14-E45-h264.diff
#	epatch "${FILESDIR}"/vdr-1.5.14-channels.conf_plus_HD_Astra.diff
#	epatch "${FILESDIR}"/vdr-1.5.14_recording_length-0.3.diff
	epatch "${FILESDIR}"/vdr-premiereepgfix-1.5.14.diff
#	epatch "${FILESDIR}"/vdr-1.5.14-alex2.diff 

#	epatch "${FILESDIR}"/vdr-1.5.14_extensions-gentoo.diff	 

	sed -i i18n-to-gettext.pl \
		-e '/MSGIDBUGS/s/""/"automatically created from i18n.c by vdr-plugin.eclass <vdr\\@gentoo.org>"/'

	# Do not install runvdr script and plugins
	sed -i Makefile \
		-e 's/runvdr//' \
		-e 's/ install-plugins//' \
		-e 's/INCLUDES = -I\/usr\/include\/freetype2/INCLUDES = -I\/usr\/include\/freetype2 -I${DVBDIR}\/include/'

	if ! use vanilla; then

		cd "${S}"
		# Now apply extensions patch # deaktiviert weil kein 1.5.14er verfügbar
#		local fname="${PN}-${EXT_VDR_PV:-${PV}}_extensions.diff"
#		epatch "${EXT_DIR}/${fname}"


		# other gentoo patches
		epatch "${FILESDIR}/vdr-set-dumpable.diff"

		# This allows us to start even if some plugin does not exist
		# or is not loadable.
		enable_patch PLUGINMISSING

		# Patch necessary for media-plugins/vdr-reelchannelscan
		# it does not change anything when plugin is not used
		enable_patch CHANNELSCAN

		if [[ -n ${VDR_MAINTAINER_MODE} ]]; then
			einfo "Doing maintainer checks:"

			# these patches we do not support
			# (or have them already hard enabled)
			local IGNORE_PATCHES="channelscan pluginapi pluginmissing" 

			extensions_all_defines > "${T}"/new.IUSE
			echo $IUSE_EXTENSIONS $IGNORE_PATCHES|tr ' ' '\n' |sort > "${T}"/old.IUSE
			local DIFFS=$(diff -u "${T}"/old.IUSE "${T}"/new.IUSE|grep '^[+-][^+-]')
			if [[ -z ${DIFFS} ]]; then
				einfo "IUSE_EXTENSIONS is up to date."
			else
				ewarn "IUSE differences!"
				local diff
				for diff in $DIFFS; do
					ewarn "$diff"
				done
			fi
		fi

		ebegin "Enabling selected patches"
		local flag
		for flag in $IUSE_EXTENSIONS; do
			use $flag && enable_patch ${flag}
		done
		eend 0

		extensions_add_make_conf 

		ebegin "Make depend"
		emake .dependencies >/dev/null
		eend $? "make depend failed"

		do_unifdef

		use iptv && sed -i sources.conf -e 's/^#P/P/'
	fi

	# apply local patches defined by variable VDR_LOCAL_PATCHES_DIR
	if test -n "${VDR_LOCAL_PATCHES_DIR}"; then
		local dir_tmp_var
		local LOCALPATCHES_SUBDIR=${PV}
		for dir_tmp_var in allversions-fallback ${PV%_p*} ${PV} ; do
			if [[ -d ${VDR_LOCAL_PATCHES_DIR}/${dir_tmp_var} ]]; then
				LOCALPATCHES_SUBDIR="${dir_tmp_var}"
			fi
		done

		echo
		if [[ ${LOCALPATCHES_SUBDIR} == ${PV} ]]; then
			einfo "Applying local patches"
		else
			einfo "Applying local patches (Using subdirectory: ${LOCALPATCHES_SUBDIR})"
		fi

		for LOCALPATCH in ${VDR_LOCAL_PATCHES_DIR}/${LOCALPATCHES_SUBDIR}/*.{diff,patch}; do
			test -f "${LOCALPATCH}" && epatch "${LOCALPATCH}"
		done
	fi

	if [[ -n "${VDRSOURCE_DIR}" ]]; then
		cp -r "${S}" "${T}"/source-tree
	fi


	add_cap CAP_UTF8

	add_cap CAP_IRCTRL_RUNTIME_PARAM \
			CAP_VFAT_RUNTIME_PARAM \
			CAP_CHUID \
			CAP_SHUTDOWN_AUTO_RETRY

	echo -e ${CAPS} > "${CAP_FILE}"
}

src_install() {
	# trick makefile not to create a videodir by supplying it with an existing
	# directory
	emake install DESTDIR="${D}"

	keepdir "${CONF_DIR}"/plugins
	keepdir "${CONF_DIR}"/themes

	keepdir "${PLUGIN_LIBDIR}"

	exeinto /usr/share/vdr/bin
	doexe i18n-to-gettext.pl

	dohtml *.html
	dodoc MANUAL INSTALL README* HISTORY* CONTRIBUTORS

	cd "${EXT_DIR}"
	local f
	rm *vdr-1.4* 2>/dev/null
	for f in BUGS README* HISTORY* patch.list; do
	 	[[ -f ${f} ]] || break
		newdoc "${f}" "${f}".ExtensionsPatch || die "Could not install extensions-patch doc ${f}"
	done

	cd "${S}"

	insinto /usr/share/vdr
	doins "${CAP_FILE}"

	if [[ -n "${VDRSOURCE_DIR}" ]]; then
		einfo "Installing sources"
		insinto "${VDRSOURCE_DIR}/${P}"
		doins -r "${T}"/source-tree/*
		keepdir "${VDRSOURCE_DIR}/${P}"/PLUGINS/lib
	fi

	if use setup; then
		insinto /usr/share/vdr/setup
		doins "${S}"/menu.c
	fi
#	chown -R vdr:vdr "${D}/${CONF_DIR}"
}

pkg_postinst() {
	elog "It is a good idea to run vdrplugin-rebuild now."
	if has_version "<media-video/vdr-1.3.36-r3"; then
		ewarn "Upgrade Info:"
		ewarn
		ewarn "If you had used the use-flags lirc, rcu or vfat"
		ewarn "then, you now have to enable the associated functionality"
		ewarn "in /etc/conf.d/vdr"
		ewarn
		ewarn "vfat is now set with VFAT_FILENAMES."
		ewarn "lirc/rcu are now set with IR_CTRL."
		ebeep
	fi

	if use setup; then
		if ! has_version media-plugins/vdr-setup || \
			! egrep -q '^setup$' "${ROOT}/etc/conf.d/vdr.plugins"; then

			echo
			ewarn "You have compiled media-video/vdr with USE=\"setup\""
			ewarn "It is very important to emerge media-plugins/vdr-setup now!"
			ewarn "and you have to loaded it in /etc/conf.d/vdr.plugins"
		fi
	fi

	local keysfound=0
	local key
	local warn_keys="JumpFwd JumpRew JumpFwdSlow JumpRewSlow"
	local remote_file="${ROOT}"/etc/vdr/remote.conf

	if [[ -e ${remote_file} ]]; then
		for key in ${warn_keys}; do
			if grep -q -i "\.${key} " "${remote_file}"; then
				keysfound=1
				break
			fi
		done
		if [[ ${keysfound} == 1 ]]; then
			ewarn "Your /etc/vdr/remote.conf contains keys which are no longer usable"
			ewarn "Please remove these keys or vdr will not start:"
			ewarn "#  ${warn_keys}"
		fi
	fi
}

im chroot vdr im Vordergrund starten

- vdr starten mit runvdr.sh

#!/bin/sh
# runvdr: Loads the DVB driver and runs VDR
#
# If VDR exits abnormally, the driver will be reloaded
# and VDR restarted.
#
# In order to actually use this script you need to implement
# the functions DriverLoaded(), LoadDriver() and UnloadDriver()
# and maybe adjust the VDRPRG and VDRCMD to your particular
# requirements.
#
# Since this script loads the DVB driver, it must be started
# as user 'root'. Add the option "-u username" to run VDR
# under the given user name.
#
# 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.19 2006/05/14 16:02:05 kls Exp $
export LANG=de_DE
export LC_COLLATE=de_DE
PATH=/usr/local/bin:$PATH
VDRPRG="/usr/bin/vdr"
VDRCMD="$VDRPRG -w 60 -c /etc/vdr \
	-P'femon' \
	-Pskinelchi \
	-Pdirector \
	-Ppremiereepg \
	-P'xine -r' \
	-r '/usr/bin/noad -a -j -o  -S' \
	-u alex
        $*"
KILL="/usr/bin/killall -q -TERM"
# Detect whether the DVB driver is already loaded
# and return 0 if it *is* loaded, 1 if not:
function DriverLoaded()
{
return 1
}
# Load all DVB driver modules needed for your hardware:
function LoadDriver()
{
 modprobe stb6100
 modprobe stb0899
 modprobe lnbp21
 modprobe budget-ci
}
# Unload all DVB driver modules loaded in LoadDriver():
function UnloadDriver()
{
 modprobe -r budget-ci
 modprobe -r lnbp21
 modprobe -r stb0899
 modprobe -r stb6100
}
# Load driver if it hasn't been loaded already:
#if ! DriverLoaded; then
#  LoadDriver
#  fi
while (true) do
     eval "$VDRCMD"
     if test $? -eq 0 -o $? -eq 2; then exit; fi
#     echo "`date` reloading DVB driver"
     $KILL $VDRPRG
     sleep 10
#     UnloadDriver
#     LoadDriver
     echo "`date` restarting VDR"
     done


- umounten nach verlassen des chroot

#!/bin/bash
echo "umounting vs"
umount /home/alex/vs/dev/pts/
umount /home/alex/vs/dev/shm/
umount /home/alex/vs/dev/
umount /home/alex/vs/proc/bus/usb/
umount /home/alex/vs/proc/
umount /home/alex/vs/sys/
umount /home/alex/vs/tmp/
umount /home/alex/vs/usr/portage/distfiles/
umount /home/alex/vs/video
umount /home/alex/vs/home/alex/mpeg2avi/
umount /home/alex/vs/home/alex/.vdrtransxvid/
umount /home/alex/vs/archiv/