Gentoo HD-vdr experimentel

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(amd64-chroot Umgebung Vorbereitung und Betreten)
K
 
(14 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Beschreibung==
 
==Beschreibung==
'''Autor:''' Alexander Richter - '''17.04.2008'''
+
'''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
+
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.
 
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.
 
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.
+
Backups des ganzen chroot-Umgebung sind ebenfalls möglich, was bei einer misslungenen Installation komfortabel ist.
  
 
==WRITE TODO==
 
==WRITE TODO==
  
  - Einrichten einer amd64-chroot Umgebung
+
  - lokales overlay im chroot anlegen
- Kernel im chroot bauen
+
  - im lokalen Overlay ffmpeg bauen
- Multiproto Teiber ohne ebuild bauen
+
  - im lokalen Overlay xine-lib bauen
- locales overlay im chroot anlegen
+
  - im lokalen Overlay xine-ui bauen
  - im localen Overlay vdr bauen
+
  - im lokalen Overlay plugins bauen
- im localen Overlay ffmpeg bauen
+
  - im lokalen Overlay patches einbinden
  - im localen Overlay xine-lib bauen
+
  - im localen Overlay xine-ui bauen
+
  - im localen Overlay plugins bauen
+
  - im localen Overlay patches einbinden
+
  
 
==Entwicklungsumgebung Hardware==
 
==Entwicklungsumgebung Hardware==
Zeile 70: Zeile 66:
  
  
- mounten der benötigten Verzeichnisse ins chroot (Pfade des Chroot anpassen !)
+
- mounten der benötigten Verzeichnisse ins chroot (Pfade zum chroot anpassen !)
  
 
  #!/bin/bash
 
  #!/bin/bash
Zeile 102: Zeile 98:
 
  export PS1="(chroot) $PS1"
 
  export PS1="(chroot) $PS1"
  
- emerge-sync
+
- emerge --sync
- emerge --update world --deep
+
- 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 )
+
- emerge gentoo-sources ( selben Kernel wie außerhalb des chroot auswählen, wir wollen uns unseren eigenen DVB Treiber bauen, die müssen also zum "Außen" Kernel passen )
  
- im chroot System - dvb Treiber laden und Zugriffsrechte ändern, um als unpriveligierter User zugreifen zu können (hier mit TT S3200 und TT budget ci)
+
==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
 
  #!/bin/bash
Zeile 121: Zeile 180:
 
  chmod a+rwx /dev/dvb/adapter0/net0
 
  chmod a+rwx /dev/dvb/adapter0/net0
 
  echo "ändere Zugriffsrechte des dvb Adapters 1"
 
  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/demux0
 
  chmod a+rwx /dev/dvb/adapter1/dvr0
 
  chmod a+rwx /dev/dvb/adapter1/dvr0
 
  chmod a+rwx /dev/dvb/adapter1/frontend0
 
  chmod a+rwx /dev/dvb/adapter1/frontend0
 
  chmod a+rwx /dev/dvb/adapter1/net0
 
  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
 +
<pre>
 +
# 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.tvdr.de/"
 +
SRC_URI="ftp://ftp.tvdr.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
 +
}
 +
</pre>
  
 
==im chroot vdr im Vordergrund starten==
 
==im chroot vdr im Vordergrund starten==
Zeile 221: Zeile 667:
 
  umount /home/alex/vs/home/alex/.vdrtransxvid/
 
  umount /home/alex/vs/home/alex/.vdrtransxvid/
 
  umount /home/alex/vs/archiv/
 
  umount /home/alex/vs/archiv/
 +
 +
 +
 +
 +
[[Kategorie:Gentoo]]

Aktuelle Version vom 26. Februar 2010, 14:56 Uhr

Inhaltsverzeichnis

[Bearbeiten] 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 chroot-Umgebung sind ebenfalls möglich, was bei einer misslungenen Installation komfortabel ist.

[Bearbeiten] WRITE TODO

- lokales overlay im chroot anlegen
- im lokalen Overlay ffmpeg bauen
- im lokalen Overlay xine-lib bauen
- im lokalen Overlay xine-ui bauen
- im lokalen Overlay plugins bauen
- im lokalen Overlay patches einbinden

[Bearbeiten] Entwicklungsumgebung Hardware

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

[Bearbeiten] 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"

[Bearbeiten] Einrichten einer amd64-chroot Umgebung

[Bearbeiten] 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 zum 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 unseren eigenen DVB Treiber bauen, die müssen also zum "Außen" Kernel passen )

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] 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.tvdr.de/"
 SRC_URI="ftp://ftp.tvdr.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
 }

[Bearbeiten] 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/