Preliminay: the Margi DVD-to-Go card works the best using
the Zoomed Video on the PCMCIA port. Not all laptops have the ZV port (any
more) and not all PCMCIA slots are ZV enabled. Check the documentation of the laptop.
In it's current implementation it will work on the
I'm using Gentoo Linux but the kernel is a vanilla
2.6.24.3 kernel.
To allow the Margi DVD-to-Go to run on Linux 2.6.24.3 there are
several issues that need to be addressed:
The dvd player is written using libdvdnav and is dependent on libdvdread and libdvdcss. The program uses the Xv() interface to allow the display of Zoomed Video in an overlay plane. Issues are:
It should be able to play DVD's directly of a DVD player but
I have choosen to fatten my Libretto with a 120Gb HD and I used dvdbackup (dvdbackup –I /dev/<your dvd player> -M
–o </where you want to place the files>)
to place the DVD files. Note that dvdbackup doesn't shrink your dvd's. See here: dvdbackup for linux
On my libretto this is dvdbackup –I /dev/hdc –M –o /dvd where /dvd is my dvd store.
The margi-player has several options which I seldom use: use -? to display them.
Two options are not documented:
-D
<debug level> : this
will generate a lot of trace out.
-d
<initial screen division> : use a
number between 0 and 7. This will determine the initial screen size
most of the times I for example use:
./margi-player –d 1
–D 0 /dvd/MATRIX
The DVD player code is here. The DVD Player is still a bit archaic so don’t expect any miracles although the menu's work, including subtitles (which might wander out-of-sync). The mouse is also supported (more or less J )
It should display the video frames using the Zoomed Video and you should hear sound if you have installed everything correctly, recompiled your kernel and updated the neomagic_drv.so when using X windows.
Currently I'm using the Gentoo distribution as it allows the
compilation of Linux using an optimized set of flags for the
The files needed for the 2.6.28.7 files in a tarball is here. Note: it contains a linux-margi/2.6.28.7/.config file that I currently use.
This config contains a bit more that what is needed for the Libretto 110CT.
The kernel driver is mostly taken from the margi2 base code, which was written in a previous DVB framework. The driver has been adapted to accept the 2.6 driver .ko architecture, the newer PCMCIA handling, the new DVB architecture.
The Margi DVD-to-Go uses the 16 bit ZV port.
The driver is in 2.6.28.7/drivers/media/dvb/margi
To enable the ZV on the TOPIC Toshiba PCMCIA controller a small patch must be applied to the topic.h file. The correct enabling of the ZV port is an important step for a correct operation of the Margi DVD-to-Go. Both the Video Pins and the Audio Pins need to be enabled. The tarball contains an updated linux-margi/2.6.28.7/drivers/pcmcia/topic.h and a updated linux-margi/2.6.28.7/sound/isa/opl3sa2.c
The OPL-SA3 in the
The Neomagic driver is enhanced to have a better handling of the driver side Xv(3) interface. This includes better handling of the overlay plane including scaling of the overlay. Adapted code is based on reverse engineering the neo20xx.dll Windows DLL which contains the Direct X code for handling overlays. The rest of the work is based on the work of Shigehiro Nomura.
Details of the reverse engineering of neo20xx.dll is found <here>. The reverse engineering was needed since there are no technical details available for the NeoMagic 2160 chip used in the Libretto.
Since this code lies in user space it easy to debug using gdb.
The adapted source code is in neovideo.c and a shared lib which contains the update Neomagic driver is here
The 2.4 stuff can be found here. But I lost my 2.4 installation so no guarantees J
This section will probably get me in trouble:
here is the manual of the L64014, L64020, the cs4952-3 chip used, the 4333 and the eeprom that is hidden somewhere.
You can see how a Margi DVD-to-Go looks internally on the home page.