Gentoo VdrDXR3
Anmerkung: Neben dieser Möglichkeit eine DXR3 Karte zur Ausgabe bei vdr zu nehmen, kann man auch das xine plugin nehmen und dort als Ausgabe den entsprechenden dxr3 device angeben (lief bei mir besser, wobei das ja nichts heißen soll).
Inhaltsverzeichnis |
Installation des DXR3-Plugins
Diese Informationen sind für die sowohl "per Hand" Installation als auch per Ebuild (wenn die mal fertig sind).
Versionskompatibilität der einzelnen Pakete
Diese Tabelle soll einen Überblick geben, welche Versionen zueinander passen. Also welche Pakete mit einander kompilierbar sind. Ob Ihr das dann per Ebuild oder von Hand macht, könnt Ihr selbst entscheiden. Beide Wege sind hier beschrieben.
VDR | em8300 | ffmpeg | Dxr3 Plugin |
---|---|---|---|
1.2.x | - | - | - |
1.3.x | - | - | - |
1.3.22 1.3.24 |
cvs (20031209-r1.ebuild) | 0.4.9_p20050226-r5.ebuild | cvs (0.0.2.ebuild) |
Installation des DXR3-Treibers per Hand
Um das DXR3-Plugin zu installieren braucht man die Treiber für die DXR3-Karte oder die Hollywood+ Karte.
Ausserdem braucht man die ffmpeg-Bibliothek. Zu bekommen unter http://ffmpeg.sourceforge.net oder für Gentoo-User emerge ffmpeg. rtretDie Treiber bekommt man auf der Homepage des DXR3-Projekts: http://dxr3.sourceforge.net, oder direkt unter http://prdownloads.sourceforge.net/dxr3/em8300-0.14.0.tar.gz?download. Wir empfehlen die CVS-Version des Treibers da der letzte Release schon sehr alt ist. Dieses Dokument bezieht sich daher auf die CVS-Version.
Zuerst die Sourcen auspacken:
tar xzf em8300-0.14.0.tar.gz
Dann ggfs das Makefile der Treibermodule bauen:
cd em8300-0.14.0/modules joe Makefile
Interessant sind hier die Sektion:
KERNEL_LOCATION?=/lib/modules/$(shell uname -r)/build
Wenn der aktuelle Kernel aber selbst compiliert wurde und auch läuft gibt es hier nichts zu ändern, ansonsten bitte hier den Pfad zu den Kernelsourcen eintragen. Ausserdem kann man noch
DEM8300_VIDEOMODE_DEFAULT=EM8300_VIDEOMODE_PAL
anpassen, aber diese Einstellung sollte für uns Deutsche eigentlich passen.
Danach kann man die Module bauen lassen und installieren:
make make install
Im gleichen Verzeichnis wie die Module befindet sich auch das Script ldm welches die Module lädt. Gentoo-User können aber den Inhalt dieser Datei auch nach /etc/mdoules.autoload eintragen:
i2c-algo-bit adv717x bt865 em8300
Dann werden noch Tools für den Betrieb benötigt: Ins Hauptverzeichnis des Pakets wechseln:
cd .. ./configure make make install
Diese Befehle bauen das Programm em8300setup, welches vor der Nutzung der Karte (aber nach Laden des Treibers) ausgeführt werden muss. Wenn em8300setup funktioniert gibt es folgendes aus:
Microcode uploaded to /dev/em8300-0 Current settings are: Video Aspect Audio Spuwqeqw PAL 4:3 ANALOG OFF
FIXME: wie und wann führt man dieses em8300setup unter einer Gentoo am Besten aus? /etc/init.d/bootmisc vielleicht?
Vorschlag: "( delay 5; /usr/bin/em8300setup -p ) &" in "/etc/init.d/vdr" vor dem eigentlichen vdr-Aufruf einfügen. Alternativ vdr-dxr3-0.2.1 benutzen (s. Changelog).
Installion des DXR3-Treibers per Portage
...am ebuild wird nochgearbeitet. Dennoch sind diese in einem relativ stabilen Zustand und lassen sich wie folgt emergen:
emerge -va media-video/em8300-modules media-video/em8300-libraries
Installation des Plugins per Hand
Die Installation des Plugins verläuft wieder wie immer
- Source des Plugins nach PLUGINS/src kopieren,
- Archiv auspacken: tar xzf vdr-dxr3-0.2.0.tgz
- Symbolischen Link anlegen: ln -s dxr3-0.2.0 dxr3
- Ins VDR-Rootverzeichnis wechseln: cd ../..
- Plugins compilieren: make plugins
- VDR mit dem Plugin starten: vdr -Pdxr3
Installation des Plugins per Portage
probiert mal bitte mein ebuild aus:
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/gentoo-deutsch/ebuilds/media-video/vdrplugin-dxr3/
installiert nur das plugin, die em8300setup problematik muss selbst gelöst werden. ich bin auch für die anpassung in der /etc/init.d/vdr.
hat jemand lust ein ebuild für die em8300-modules-cvs zu basteln? mit den 'normalen' (uralt-) em8300-modules-0.13.0 lief es bei mir nicht...
mail an phil@alpha-centauri.org
DXR3-Plugin ohne X11
Falls man dxr3 mittels emerge vdrplugin-dxr3 installieren möchte und KEIN X11 dazu emergen möchte sollte man ähnliche USEFALGS verweden:
USE="dvb lirc -qt -kde -gnome -X -arts -opengl -gtk -gtk2"
Wichtig hier bei: -gtk -gtk2 -opengl
Gruss Christian {christian at visual-page dot de}
EM8300-CVS
Ich habe nun endlich die em8300-libraries-cvs und em8300-modules-cvs zum compilen gebracht. Nun sollten nur die weiterlesen, welche kein X11 emergen wollen und dennoch den CVS verwenden möchte.
vdr root # emerge -p em8300-libraries-cvs em8300-modules-cvs These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] media-libs/fontconfig-2.2.1 [ebuild N ] x11-misc/ttmkfdir-3.0.9-r1 [ebuild N ] app-arch/cabextract-0.6 [ebuild N ] x11-base/opengl-update-1.5 [ebuild N ] x11-base/xfree-4.3.0-r3 [ebuild N ] dev-libs/glib-2.2.3 [ebuild N ] x11-libs/pango-1.2.5-r1 [ebuild N ] dev-libs/atk-1.4.1 [ebuild N ] x11-libs/gtk+-2.2.4-r1 [ebuild N ] media-video/em8300-modules-0.13.0 [ebuild N ] media-video/em8300-libraries-cvs-20031209 [ebuild N ] media-video/em8300-modules-cvs-20031209
Das ebuild braucht bis jetzt noch gtk+ und somit X11. Doch das wollen wir ändern :)
Als erstes machen wir eine kleine Änderung im ebuild: nano /usr/portage/media-video/em8300-libraries-cms/em8300-libraries-cvs-20031209.ebuild
Dann editieren wir das so:
Vorher:
# Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: /cvsroot/gentoo-deutsch/ebuilds/media-video/em8300-libraries-cvs/em8300-libraries-cvs-20031209.ebuild,v 1.1 2003/1$ ECVS_SERVER="cvs.dxr3.sourceforge.net:/cvsroot/dxr3" ECVS_MODULE="em8300" ECVS_TOP_DIR="${DISTDIR}/cvs-src/${PN}" inherit cvs debug flag-o-matic strip-flags S=${WORKDIR}/${ECVS_MODULE} DESCRIPTION="em8300 (RealMagic Hollywood+/Creative DXR3) video decoder card cvs libraries" HOMEPAGE="http://dxr3.sourceforge.net/" SRC_URI= LICENSE="GPL-2" SLOT="0" KEYWORDS="~x86" IUSE="" DEPEND="media-video/em8300-modules x11-libs/gtk+" RDEPEND="${DEPEND} >=sys-apps/portage-1.9.10"
Nachher:
# Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: /cvsroot/gentoo-deutsch/ebuilds/media-video/em8300-libraries-cvs/em8300-libraries-cvs-20031209.ebuild,v 1.1 2003/1$ ECVS_SERVER="cvs.dxr3.sourceforge.net:/cvsroot/dxr3" ECVS_MODULE="em8300" ECVS_TOP_DIR="${DISTDIR}/cvs-src/${PN}" inherit cvs debug flag-o-matic strip-flags S=${WORKDIR}/${ECVS_MODULE} DESCRIPTION="em8300 (RealMagic Hollywood+/Creative DXR3) video decoder card cvs libraries" HOMEPAGE="http://dxr3.sourceforge.net/" SRC_URI= LICENSE="GPL-2" SLOT="0" KEYWORDS="~x86" IUSE="" DEPEND="media-video/em8300-modules" # x11-libs/gtk+" RDEPEND="${DEPEND} >=sys-apps/portage-1.9.10" Siehe da: <verbatim> vdr root # emerge -p em8300-libraries-cvs em8300-modules-cvs These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] media-video/em8300-modules-0.13.0 [ebuild N ] media-video/em8300-libraries-cvs-20031209 [ebuild N ] media-video/em8300-modules-cvs-20031209
Schon viel besser. Jetzt werden die Gurus denken - Was macht der Typ den da, der kann doch nicht einfach eine Abhängigkeit entferen. Das geht nie und nimma.
Warten wirs ab...
Jetzt emergen wir uns die Quellen auf die Festplatte.
vdr root # emerge -O em8300-libraries-cvs em8300-modules-cvs
O... Hier werden nur die angegebenen Packete heruntergeladen, OHNE ABÄNGIGKEITEN --> das "alte" em8300-modules-0.13.0 wird somit nicht installiert.
Und was sehen deine müden Augen da?
* Copying em8300 from /usr/portage/distfiles/cvs-src/em8300-libraries-cvs... * Module em8300 is now in /var/tmp/portage/em8300-libraries-cvs-20031209/work >>> Source unpacked. aclocal: configure.in: 62: macro `AM_PATH_GTK' not found in library You should add the contents of `/usr/share/aclocal/libtool.m4' to `aclocal.m4'. Putting files in AC_CONFIG_AUX_DIR, `autotools'. automake: configure.in: installing `autotools/install-sh' automake: configure.in: installing `autotools/mkinstalldirs' automake: configure.in: installing `autotools/missing' automake: Makefile.am: installing `./INSTALL' configure.in: 24: required file `include/config.h.in' not found autoconf: Undefined macros: configure.in:63: AC_MSG_RESULT(*** GTK not found ***)]) creating cache ./config.cache checking for gcc... gcc checking whether the C compiler (gcc -O3 -mcpu=pentium3 -march=pentium3 -pipe -g -g -g ) works... yes checking whether the C compiler (gcc -O3 -mcpu=pentium3 -march=pentium3 -pipe -g -g -g ) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes ./configure: line 780: syntax error near unexpected token `"em8300",' ./configure: line 780: `AM_INIT_AUTOMAKE("em8300", $EM8300_MAJOR.$EM8300_MINOR.$EM8300_SUB$EM8300_PRE)' !!! ERROR: media-video/em8300-libraries-cvs-20031209 failed. !!! Function econf, Line 338, Exitcode 2 !!! econf failed
Jetzt müssen wir ein letztes mal eine Datei editieren und wir haben es geschaft.
Wie aus der Meldung ersichtlich ist, stimmt etwas mit der Datei configure.in nicht. Deswegen öffnen wir diese nun mit unserem Lieblingseditor.
nano /usr/portage/distfiles/cvs-src/em8300-libraries-cvs/em8300/configure.in
Nun gehen wir an die Zeile wo es heißt
AC_SUBST(DEBUG_CFLAGS) AC_SUBST(GLOBAL_CFLAGS) dnl Common cflags for all platforms COMMON_CFLAGS="-Wall -D_FILE_OFFSET_BITS=64" GLOBAL_CFLAGS="$GLOBAL_CFLAGS $CFLAGS $COMMON_CFLAGS" DEBUG_CFLAGS="$GLOBAL_CFLAGS $CFLAGS $COMMON_CFLAGS -DDEBUG" AM_PATH_GTK(1.2.0, has_gtk=yes, [has_gtk=no AC_MSG_RESULT(*** GTK not found ***)]) if test x$has_gtk = xyes; then AC_DEFINE(HAVE_GTK) fi AM_CONDITIONAL(HAVE_GTK, test x$has_gtk = "xyes")
Diese Datei patchen wir nun, damit das Ganze dann so aussieht.
AC_SUBST(DEBUG_CFLAGS) AC_SUBST(GLOBAL_CFLAGS) dnl Common cflags for all platforms COMMON_CFLAGS="-Wall -D_FILE_OFFSET_BITS=64" # Der kleine Patch #AM_PATH_GTK(1.2.0, has_gtk=yes, [has_gtk=no # AC_MSG_RESULT(*** GTK not found ***)]) # Wir haben und wollen kein gtk :) has_gtk=no if test x$has_gtk = xyes; then AC_DEFINE(HAVE_GTK) fi AM_CONDITIONAL(HAVE_GTK, test x$has_gtk = "xyes")
Das letzt mal ein emerge
cdr root # emerge -O em8300-libraries-cvs em8300-modules-cvs Calculating dependencies ...done! >>> emerge (1 of 1) media-video/em8300-libraries-cvs-20031209 to / >>> Unpacking source... * Fetching cvs module em8300 into /usr/portage/distfiles/cvs-src/em8300-libraries-cvs... cvs.dxr3.sourceforge.net:/cvsroot/dxr3 * Running cvs -q -f -z3 -d ":pserver:anonymous:@cvs.dxr3.sourceforge.net:/cvsroot/dxr3" login Logging in to :pserver:anonymous@cvs.dxr3.sourceforge.net:2401/cvsroot/dxr3 * Running cvs -q -f -z3 -d ":pserver:anonymous@cvs.dxr3.sourceforge.net:/cvsroot/dxr3" update -dP em8300 M em8300/configure.in * Copying em8300 from /usr/portage/distfiles/cvs-src/em8300-libraries-cvs... * Module em8300 is now in /var/tmp/portage/em8300-libraries-cvs-20031209/work >>> Source unpacked. Putting files in AC_CONFIG_AUX_DIR, `autotools'. automake: configure.in: installing `autotools/install-sh' automake: configure.in: installing `autotools/mkinstalldirs' automake: configure.in: installing `autotools/missing' automake: Makefile.am: installing `./INSTALL' creating cache ./config.cache checking for gcc... gcc checking whether the C compiler (gcc -O3 -mcpu=pentium3 -march=pentium3 -pipe -g -g -g ) works... yes checking whether the C compiler (gcc -O3 -mcpu=pentium3 -march=pentium3 -pipe -g -g -g ) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking for a BSD compatible install... /bin/install -c checking whether build environment is sane... yes checking whether make sets ${MAKE}... yes checking for working aclocal-1.4... found checking for working autoconf... found checking for working automake-1.4... found checking for working autoheader... found checking for working makeinfo... found checking host system type... i686-pc-linux-gnu checking for Cygwin environment... no checking for mingw32 environment... no checking how to run the C preprocessor... gcc -E checking build system type... i686-pc-linux-gnu checking for ld used by GCC... /usr/i686-pc-linux-gnu/bin/ld checking if the linker (/usr/i686-pc-linux-gnu/bin/ld) is GNU ld... yes checking for /usr/i686-pc-linux-gnu/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking for a sed that does not truncate output... /bin/sed checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all
So nun hab ihr die CVS version für eure DXR3 Karte - sollte besser laufen als die normale im Portage Tree, da die CVS immer (top) aktuell ist.
So das wieder von mir Gruss Christian {christian at visual-page dot de}