Diese HowTo ist nur als Beispiel zu verstehen wie ich es gemacht habe es ist noch nicht perfekt aber schonmal ein Anfang.
Nachdem ich mein TestSystem zerschossen hatte hab ich es neu aufgesetzt und einfach mal mit geschrieben.
An alle Digitainer(RealPC) User bitte die CFLAGS und CXXFLAGS anpassen, der Celeron unterstützt kein -m3dnow.Und ihr könnt march=pentium3 verwenden.
Hardware:
Epia ME6000, Nova-T Budget (die neue) mit Fernbedienung, 512MB und ne HDD,PAL-RöhrenTV
Software:
Gentoo Base System version 1.6.15 (2006.0)
DirectFB, softdevice-plugin, VDR, Lirc
Ich konnte wie in Quelle [a] beschrieben das viafb-modul nicht erzeugen.
Wie folgt habe ich das Problem gelöst.
Viafb Ihr solltet sämtliche FramebufferTreiber aus dem Kernel nehmen (Vesa o.ä.).
cd /usr/local/src
cvs -d:pserver:anonymous@cvs.directfb.org:/cvs/directfb -z3 co -P linux-viafb
cd linux-viafb/
Ich musste den Kernel patchen was aber nur russisch bei mir zu lösen war.(Warum auch immer)
make kpatch-copy (funktioniert nicht aber trotzdem ausführen)
nano /usr/src/linux/drivers/video/Makefile
Dann musste ich folgendes eintragen was kpatch-copy machen sollte.
Zitatobj-$(CONFIG_FB_I810) += vgastate.o
*obj-$(CONFIG_FB_CLE266) += cle266/ cfbfillrect.o cfbcopyarea.o cfbimgblt.o
obj-$(CONFIG_FB_NEOMAGIC) += neofb.o vgastate.o
Die Zeile mit dem Sternchen muss da eingetragen werden.
Dann noch die nötigen Daten kopieren.
mkdir -p /usr/src/linux/drivers/video/cle266/
cp linux/drivers/video/cle266/* /usr/src/linux/drivers/video/cle266/
cd /usr/src/linux
make menuconfig
Device Drivers --->
Graphics support --->
<M> VIA CLE266 support (sollte es nicht vorhanden sein ist oben was schief gelaufen)
make && make modules_install
Alles anzeigen
Ab Kernel 2.6.19 muss noch folgender Patch durchgeführt werden.Falls ihr diese Fehlermeldung bekommt(Thx to TSkora)
diff -ur linux-viafb-orig/linux/drivers/video/cle266/via_fbobj.c linux-viafb/linux/drivers/video/cle266/via_fbobj.c
--- linux-viafb-orig/linux/drivers/video/cle266/via_fbobj.c 2006-12-16 13:16:19.000000000 +0100
+++ linux-viafb/linux/drivers/video/cle266/via_fbobj.c 2006-12-16 13:17:18.000000000 +0100
@@ -16,7 +16,7 @@
*
*/
-#include <linux/config.h>
+//#include <linux/config.h>
#include <linux/module.h>
#include <linux/version.h>
#include <linux/fb.h>
@@ -1296,7 +1296,7 @@
return -ENOTTY;
}
-static irqreturn_t via_vga_irqhandler(int irq, void *ptr, struct pt_regs *regs)
+static irqreturn_t via_vga_irqhandler(int irq, void *ptr)
{
struct fb_info *info = (struct fb_info *)ptr;
struct via_par * p = (struct via_par *)info->par;
Alles anzeigen
Evtl. auftretende Fehlermeldung die sich auf das viafb-Modul beziehen könnt ihr getrost ignorieren.Und den neuen Kernel starten.
Nach dem Neustart checken wir mal ob wir gute Arbeit geleistet haben.
Wenn ab hier noch ein Fehler auftaucht dann noch mal von vorn.
liefert folgendes
ZitatAlles anzeigenName : UNICHROME
Address : 0xd8000000
Size : 33288192
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 0
YPanStep : 1
YWrapStep : 0
LineLength : 2880
MMIO Address: 0xdc000000
MMIO Size : 16777216
Accelerator : Unknown (77)
Wenn das da steht und ein Bild auf dem TV zusehen ist, können wir weiter machen.
Man sollte dann das Modul mit seinen Optionen beim Booten schon starten.
Bei mir in die /etc/modules.autoload.d/kernel-2.6 eintragen.
libcle266mpegdec:
cd /usr/local/src
Die DownloadUrl findet man hier - http://sourceforge.net/project/showfiles.php?group_id=176530&package_id=203064
wget http://url
tar xvf libcle266mpegdec-0.4.tar.gz
cd libcle266mpegdec-0.4
./configure --prefix=/usr CFLAGS="-O2 -march=c3 -pipe -fomit-frame-pointer -m3dnow -mmmx"
CXXFLAGS="-O2 -march=c3 -pipe -fomit-frame-pointer -m3dnow -mmmx"
make
make install
cd ..
FFmpeg:
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg/
./configure --prefix=/usr --disable-ffserver --disable-ffplay --disable-bktr --disable-ipv6 \ --enable-shared \
--enable-gpl --enable-pp --cpu=x86 --tune=i586 --disable-debug --disable-altivec \ --disable-audio-oss --disable-v4l \
--disable-dv1394 --disable-network --cc=i586-pc-linux-gnu-gcc
make && make install && make install-libs && make install-headers
cd ..
DirectFB:
cvs -d:pserver:anonymous@cvs.directfb.org:/cvs/directfb -z3 co -P DirectFB
cd DirectFB/
./autogen.sh
./configure --prefix=/usr --disable-video4linux --disable-x11 --disable-vnc --disable-sdl \ --disable-sse \
--with-gfxdrivers=cle266,unichrome --with-inputdrivers=lirc CFLAGS="-march=c3 \ -fomit-frame-pointer \
-m3dnow -mmmx" CXXFLAGS="-march=c3 -fomit-frame-pointer -m3dnow -mmmx"
make && make install
cd ..
DBF++:
# cvs -d:pserver:anonymous@cvs.directfb.org:/cvs/directfb -z3 co -P DFB++
cd DFB++/
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
./autogen.sh
./configure --prefix=/usr CFLAGS="-O2 -march=c3 -pipe -fomit-frame-pointer -m3dnow -mmmx" \
CXXFLAGS="-O2 -march=c3 -pipe -fomit-frame-pointer -m3dnow -mmmx"
make && make install
cd ..
erzeuge ne /etc/directfb
Zitatfbdev=/dev/fb0
mode=720x576
depth=32
pixelformat=ARGB
disable-module=cle266
no-vt
VDR: da gilt es nur die optionen zu beachten
wget ftp://ftp.cadsoft.de/vdr/vdr-1.4.1.tar.bz2
mv vdr-1.4.1.tar.bz2 /root
tar jxf /root/vdr-1.4.1.tar.bz2
cd vdr-1.4.1/PLUGINS/src/
mv * /tmp
cvs -d:pserver:anonymous@cvs.softdevice.berlios.de:/cvsroot/softdevice co softdevice
cd softdevice
wget http://www.mellander.org/per/projects/linux/softdevice-libcle266mpegdec-0.4.patch
patch -p0 < softdevice-libcle266mpegdec-0.4.patch
./configure --disable-vidix --disable-fb --disable-xv --disable-shm --disable-subplugins --disable-mmx2
Checking for pkg-config... Found.
Checking for ffmpeg... Ok.
Checking for ALSA sound... Enabled audio-alsa.
Checking for DirectFB and DFB++... Enabled video-dfb.
Checking for vidix... Not found.
Checking for libcle266mpegdec ... Enabled cle266 hardware decoding.
Checking for Xv... Not found.
Checking for Xinerama... Not found.
cd /usr/local/src/vdr-1.4.1/
Alles anzeigen
Nun musste ich noch das Make.config vom VDR anpassen brachte ein flüssigeres Bild.
# cp Make.config.template Make.config
nano Make.config (hier die Optionen ändern)
CFLAGS = -g -O3 -Wall -pipe -fomit-frame-pointer -m3dnow -mmmx
CXXFLAGS = -g -O3 -Wall -Woverloaded-virtual -pipe -fomit-frame-pointer -m3dnow -mmmx
make
make plugins
Check noch mal die Einstellungen und das Existieren von /etc/fb.modes und /etc/directfb.(Die waren weg zu diesem Zeitpunkt bei mir)
Dann kann man schonmal testen ob alles funktioniert.
Jetzt sollte der VDR ein Bild liefern.
Erläuterung:
Der Befehl unten laut Quelle [a] kann ich nicht nutzen da DirectFB Out-of-Sync das sind die Pluszeichen bei laufender Konsole liefert
top liefert bei videoplay
ZitatPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6135 root 15 0 165m 10m 3436 S 37.4 2.1 0:16.37 vdr
Gruß Tom
Quellenangabe
a: http://www.mellander.org/per/p…x/?chapter=epia-hw-cle266
Mein Dank gilt allen die mir das Bastelerlebnis beschert haben.
Bitte Alle die einen Verbesserungsvorschlag haben richtet sie per PN an mich damit der Thread übersichtlich bleibt.
P.S. Ich hab die Codezeilen überarbeitet könnt ihr jetzt mit Strg c+v übernehmen.