Gentoo VdrDXR3

Aus VDR Wiki
Wechseln zu: Navigation, Suche

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).
Anmerkung 2: Ein separater Beitrag zur Installation und Konfiguration des Xine-Plugins als solches und der Verwendung des DXR3 Ausgabe-Modus wäre sinnvoll. Ein Querverweis könnte dann an hiesige Stelle.

Inhaltsverzeichnis

Installation des DXR3-Plugins

Diese Informationen sind für die sowohl "per Hand" Installation als auch per Ebuild (wenn die mal fertig sind).

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 em8300-modules em8300-libraries

Installation des Plugins per Portage

Nachdem die Treiber emerget wurden zum Installieren des Plugins einfach

emerge -va vdr-dxr3

ausführen oder 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

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).

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

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 Pakete 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}

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)