MythTV in Framebuffer
From MythTV
I will try to collect here all information regarding DirectFB and qt embedded support in Mythtv. This is work in progress and needs some editing to be really useful.
For Gentoo Users is here an Installation summary for DirectFB and QT embedded.
Here is what i found until today:
1. Install DirectFB (for video playback)
2. Install QT embedded (for the menus via Framebuffer)
3. Install Mythtv
Step by Step
Based on http://www.freevohelp.com/mythTvDirectFB.html which seems to be offline:
Download DirectFB from http://www.directfb.org/index.php?path=Main%2FDownloads and install it.
Download qt-embedded from ftp://ftp.trolltech.com/qt/source/ Direct link
Compiling qt-embedded-free-3.3.5: Add the folloing environmental variables:
export QTDIR="/usr/local/qt-3.3.5" export QTBIN="$QTDIR/bin" export QTLIB="$QTDIR/lib" export QMAKESPEC="$QTDIR/mkspecs/qws/linux-x86-g++" export LD_LIBRARY_PATH="$QTLIB"
Add "QTDIR/bin" to your PATH variable
Edit $QTDIR/mkspecs/qws/linux-x86-g++/qmake.conf to remove the no-rtti flag for the compiler
Change the line:
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -DQWS -fno-exceptions -fno-rtti
To:
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -DQWS -fno-exceptions
Add the following line to your /etc/ld.so.conf
/usr/local/qt-3.3.5/lib/
Change to your qt directory:
cd /usr/local/src/qt-embedded-free-3.3.5/
Start compiling qt
./configure -qt-gfx-matrox -depths 8,16,24,32 -prefix /usr/local/qt-3.3.5 -thread -qt-sql-mysql -platform qws/linux-x86-g++ -I/usr/include/mysql gmake && gmake install
Change to you mythtv directory:
cd /usr/local/src/mythtv-0.19
Start some mythTv hacking: In libs/libmythui/mythmainwindow.cp change:
d->painter = new MythOpenGLPainter(); //d->painter = new MythQtPainter();
to:
//d->painter = new MythOpenGLPainter(); d->painter = new MythQtPainter();
In programs/Makefile remove this line:
sub-mythuitest \
You will also need to move the fonts directory because it doesn't do it automatically:
cd /usr/local/src/qt-embedded-free-3.3.5/lib/ cp -r fonts/ /usr/local/qt-3.3.5/lib/ cd /usr/local/qt-3.3.5/lib/fonts/
Start compiling mythtv
./configure --enable-directfb --disable-x11 --disable-xv qmake mythtv.pro && qmake && qmake install
Useful resources for troubleshooting
- The patches in this thread helped me a lot to get mythTV compiled with Qt-embedded.
- In some configurations, the use of distcc leads to linking problems of mythTV. Append --disable-distcc to your configure or unset DISTCC_HOSTS.
If you get an error like "videoout_directfb.cpp:XXX error: too many initializers for...", edit the file videoout_directfb.cpp and delete the following line:
{0xffff,0x00}, // DIKS_ALTGR not sure what QT Key is
- If you get an error like
main.o(.gnu.linkonce.r._ZTI6QGList+0x8): undefined reference to `typeinfo for QPtrCollection' ../../libs/libmyth/libmyth-0.xx.so: undefined reference to `typeinfo for QPushButton' ../../libs/libmyth/libmyth-0.xx.so: undefined reference to `typeinfo for QLibrary' ../../libs/libmythtv/libmythtv-0.xx.so: undefined reference to `typeinfo for QGArray' ../../libs/libmyth/libmyth-0.xx.so: undefined reference to `typeinfo for QComboBox' ...
see this mailing list entry for a possible solution
- when using DirectFB 1.0, try checking out and compiling the mythtv-vid branch instead of the main trunk (March 2007)
svn co http://cvs.mythtv.org/svn/branches/mythtv-vid/
