[mythtv] Matrox G200 TV out works! HOWTO!

Bernard Johnson mythtv-dev@snowman.net
Wed, 18 Dec 2002 08:44:18 -0700


It seems to be an order independent problem....

----- Original Message -----
From: "Michael D. Cencula" <mythtvuser@cencula.com>
To: <mythtv-dev@snowman.net>
Sent: Wednesday, December 18, 2002 6:26 AM
Subject: Re: [mythtv] Matrox G200 TV out works! HOWTO!


> Read my post to the list earlier this morning.
>
> On Wednesday 18 December 2002 06:00, Bernard Johnson wrote:
> > I have a Matrox Marvel G400-TV (from what I read, it should work the
same
> > as what you are performing below).  However, when I execute the two
> > matroxset commands, I get:
> >
> > root@localhost# matroxset -f /dev/fb0 -m 3
> > ioctl failed: Invalid argument
> > root@localhost# matroxset -f /dev/fb0 -o 1 2
> > ioctl failed: Invalid argument
> >
> > "matroxset -f /dev/fb0 -m 1", however, works fine.
> >
> >
> > lspci says:
> > "VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 04)"
> >
> > I would think that this would be a result of not using the right option
> > somewhere when compiling something into the kernel, but I basically have
> > the same thing you do except for the Matrox /proc interface, which I
don't
> > think is actually required.
> >
> > I was mostly using this information:
> > http://www.flashdance.cx/tv-out-mga-fb.html
> >
> > If anyone could help me along, I would really appreciate it.  And yes, I
> > can provide you with the config file for the kernel that I've built.
> >
> > Thanks.
> >
> > ----- Original Message -----
> > From: "Colin Panisset" <mythtv@clabber.com>
> > To: <mythtv-dev@snowman.net>
> > Sent: Tuesday, December 17, 2002 5:17 PM
> > Subject: [mythtv] Matrox G200 TV out works! HOWTO!
> >
> > > Since I've just spent a hair-pulling time getting this lot going, I
> >
> > figured
> >
> > > I'd share the joy and perhaps help others work out how to get this
beast
> > > set up. Perhaps it'll even be useful for those using a G400 with
TV-out
> > > on the second head.
> > >
> > > This is kinda long...
> > >
> > > WARNINGS:
> > > ** keep a rescue floppy/CD!
> > > ** don't blame me if you fry your hardware/TV/monitor trying this.
> >
> > Tweaking
> >
> > > video card settings at the register level can cause signals which may
> >
> > drive
> >
> > > display hardware beyond their design specs. You can kill hardware like
> > > this.
> > > ** no warranty expressed or implied, contents under pressure, not
> > > suitable for children, not a floatation device, sell-by date on bottom
of
> > > package.
> > >
> > > So, here we go:
> > >
> > > Step 1: Upgrade the G200 BIOS
> > >
> > > Step 1.1: Download the latest BIOS for the card from
> > > http://www.matrox.com/mga/support/drivers/bios/home2.cfm
> > >
> > > Step 1.2: You'll need to use DOS to flash the BIOS -- I used the
FreeDOS
> > > install floppy (available from
> >
> >
http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/beta8
> >/ instdisk/1.44/)
> >
> > > as a temporary boot disk. dd the image to a floppy, then mount it.
Delete
> > > most of the contents, except for the command.com and kernel.sys. Copy
in
> > > all the .bin files from the bios .ZIP, plus ubiosdos.exe, dos4gw.exe,
> > > english.mmf,  and progbios.exe.
> > > Leave the disk writeable.
> > >
> > > Step 1.3: boot the machine from the FreeDOS floppy, and execute:
> > >
> > > ubiosdos
> > >
> > > I didn't make a backup disk, just pressed enter and let it flash
> > > (note: if things screw up, this could be your undoing)
> > >
> > > Step 1.4: force the G200 BIOS to turn on the TV out at boot time:
> > >
> > > progbios -maven ntsc (use pal for PAL, and off for, um, off)
> > >
> > > Step 1.5: reboot. At this point, I already had my TV connected to the
> > > external breakout box, and was delighted to see the Award BIOS boot
> > > messages. I was able to alter PC BIOS settings, and all. This could be
> > > important... :)
> > >
> > > Step 2: Build an appropriate kernel
> > >
> > > Step 2.1: I built the following into the kernel (not built as
modules):
> > > Character devices -> I2C support -> I2C support
> > > Character devices -> I2C support -> I2C bit-banging interfaces
> > > Character devices -> I2C support -> I2C device interface
> > > Character devices -> I2C support -> I2C /proc interface
> > > Console drivers -> Frame-buffer support -> Matrox acceleration
> > > Console drivers -> Frame-buffer support -> G100/G200/ ...
> > > Console drivers -> Frame-buffer support -> Matrox I2C support
> > > Console drivers -> Frame-buffer support -> G400 second head support
> > > Console drivers -> Frame-buffer support -> Matrox /proc interface
> > >
> > > NOTE: you need the G400 second head support even if you have a G200.
It
> > > builds the driver for the MAVEN chip, which actually does the TV-out
> > > conversion.
> > >
> > > Step 2.2: make dep, make bzImage, make modules, make modules_install.
> > > Copy bzImage to the boot wherever and lilo it. Read
> > > /usr/src/linux/Documentation/fb/matroxfb.txt for options you can pass
to
> > > the Matrox framebuffer driver through lilo
> > >
> > > You could boot the new kernel at this point if you liked, but make
sure
> > > you've kept your monitor attached to the PC, because the MGA console
> >
> > driver
> >
> > > switches to a VESA mode that my TV couldn't display.
> > >
> > > Step 3: Set up XFree86
> > >
> > > Step 3.1: In your /etc/X11/XF86Config-4, put something like this:
> > >
> > > ---- Begin snippet ----
> > >
> > > Section "Monitor"
> > >         Identifier "TV"
> > >         VendorName "Unknown"
> > >         ModelName  "Unknown"
> > >         HorizSync 31-50
> > >         VertRefresh 60 # This is for NTSC. PAL should use 50
> > > EndSection
> > >
> > > Section "Device"
> > >         Identifier "My Video Card"
> > >         Driver "mga"
> > >         BoardName "Unknown"
> > >         Option "UseFBDev" "on"
> > >         Option "HWCursor" "off"
> > > EndSection
> > >
> > > Section "Device"
> > >         Identifier "Linux Frame Buffer"
> > >         Driver "fbdev"
> > >         BoardName "Unknown"
> > > EndSection
> > >
> > > Section "Screen"
> > >         Identifier "Screen0"
> > >         Device "My Video Card"
> > >         Monitor "TV"
> > >         DefaultDepth 16
> > >         Subsection "Display"
> > >                 Depth 16
> > >                 Modes "800x600"
> > >         EndSubSection
> > > EndSection
> > >
> > > ---- End snippet ----
> > >
> > > Step 3.2: restart X (ctrl-alt-backspace) to make sure it's using the
fb
> > > device. Check /var/log/XFree86.0.log to make sure.
> > >
> > > Step 3.3: Get matroxset from the MPlayer distribution
> > > (http://www.mplayerhq.hu/homepage/), build and install it (it's in the
> > > TVout subdirectory of the source). Also build and install fbset from
the
> > > same distribution.
> > >
> > > Get maven-prog from http://platan.vc.cvut.cz/~vana/matroxfb.html --
build
> > > it (it'll end up being called "matrox", but you can rename it) and
> > > install it.
> > >
> > > Step 3.4: Mirror the framebuffer onto the TV out with matroxset:
> > >
> > > matroxset -f /dev/fb/0 -m 3 # use -m 1 for monitor-only, -m 2 for TV
only
> > > matroxset -f /dev/fb/0 -o 1 2 # set output 1 to NTSC. Use -o 1 1 for
PAL
> > >
> > > Step 3.5: Tweak the display
> > >
> > > This is where you may end up typing blind. See
> > > http://davedina.apestaart.org/download/doc/Matrox-TVOUT-HOWTO-0.1.txt
for
> >
> > a
> >
> > > great explanation
> > >
> > > When you have the size and location of the screen set to your liking,
use
> > > "maven-prog" (or "matrox", if you didn't rename it) from above to set
the
> > > black level, white level, saturation, hue, antialiasing, and whatnot.
My
> > > settings are:
> > >
> > > matrox 0x0e 0x3f # sets the black level
> > > matrox 0x1e 0xcf # sets the white level
> > > matrox 0x22 0x76 # sets the hue
> > >
> > > See http://platan.vc.cvut.cz/~vana/maven/mavenreg.html for a
description
> >
> > of
> >
> > > the MAVEN chip registers.
> > >
> > > I put the resulting fbset and matrox commands in my mythtv user's
> > > .xsession.
> > >
> > > Step 3.6: To put the text console back on the TV after the boot
process
> > > turns it off, I put the following lines in /etc/rc.sysinit, right
after
> > > devfsd is launched:
> > >
> > > /sbin/matroxset -f /dev/fb/0 -m 3       # both monitor and TV
> > > /sbin/matroxset -f /dev/fb/0 -o 1 2     # set TV to NTSC
> > >
> > > Step 4: Beer (or tea, coffee, wine, spring water, or whatever)
> > >
> > > That's it. I only wish it had been as quick and easy to figure out as
it
> >
> > was
> >
> > > to type this up :)
> > >
> > > Notes:
> > > ** if you built ALSA drivers for a previous kernel, you'll probably
have
> >
> > to
> >
> > > build and install them again.
> > > ** The G200 (and, presumably, the G400) will display up to 1024x768
> >
> > through
> >
> > > the miracle of scan conversion, but 800x600 works well for MythTV for
me.
> > > ** don't be concerned if it seems like X is taking a long time to
start
> > > up in a mode that the TV can sync to. My TV also flashes like crazy
for
> > > about 5 seconds while this is going on. Eventually, it gets there.
> > > ** My Shuttle SV24 locks up sometimes with this card. It's
reproducible,
> >
> > so
> >
> > > must be a driver problem. It happens when running "make xconfig" from
the
> > > linux kernel tree, and sometimes when dragging the scrollbar up or
down
> > > in Mozilla. Turning off various acceleration features may resolve
this,
> > > but I haven't tried that yet.
> > > ** I have run mplayer with the normal Xvideo output in this mode, and
> > > it's just fine. You could also build it with the mga driver and have
it
> > > use the hardware acceleration, but I haven't got there yet.
> > >
> > >
> > > _______________________________________________
> > > mythtv-dev mailing list
> > > mythtv-dev@snowman.net
> > > http://www.snowman.net/mailman/listinfo/mythtv-dev
> >
> > _______________________________________________
> > mythtv-dev mailing list
> > mythtv-dev@snowman.net
> > http://www.snowman.net/mailman/listinfo/mythtv-dev
>
>
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev@snowman.net
> http://www.snowman.net/mailman/listinfo/mythtv-dev
>