Success: X on TV using ATI Xpert@Play98 (Rage Pro)

Success: X on TV using ATI Xpert@Play98 (Rage Pro)

Post by David Hwan » Wed, 14 Jul 1999 04:00:00



After much trial an error, I was able to get X windows to run on my TV

First, what I tried that did not work:
======================================
- atyfb frame buffer console (had trouble getting this to boot)
- Mach64 X Server with countless modelines (could not get TV to sync)
- I don't know exactly why the mach64 specific stuff did not work,
  though I suspect NTSC auto-detect/sync circuit doesn't like the modes
  that the mach64 drivers try to use.

Next, what does work:
=====================
- vesafb frame buffer console
- XFree86_FBDEV server
- I realize that this driver is not accelerated for the Mach64 arch,
  but this is the configuration that works and at 640x480, it seems good
  enough for my applications for now. At some point in the future, I may
  try to get the atyfb, and XF86_Mach64 to work.

The Rage Pro chip was able to detect whether or not I had a TV connected
to my composite video output, AND is also able to automatically resync
whenever the video mode is changed. (ie. display BIOS messages before
LILO, display graphical framebuffer console during linux boot, display
FBDEV X server). This was very helpful, in that I didn't need
programming information on how to activate and configure the NTSC
display driver.

Now, for a step by step description of what I did. Hopefully, if you
have a Rage Pro based card it should work for you, and other people can
try something similar. Standard disclaimer applies: This works for me, it
may not work for you. Be careful. I bear no responsibility for damage
that occurs to your hardware.

Step 1 - Compile a kernel with vesafb support.
==============================================
- you can follow the directions at:
  http://www.tahallah.demon.co.uk/programming/Framebuffer-HOWTO-1.0.html
- DO NOT select ATI mach64 frame buffer support, only vesafb

Step 2 - configure /etc/lilo.conf
=================================
- Modify your /etc/lilo.conf to select a graphical framebuffer mode by
  adding the line:
        vga = ask (if you want to be prompted for a mode)
  or
        vga = 0x312 (640x480x24bpp)

Step 3 - install your new kernel and reboot
===========================================
- You may want to install this as an alternate image and keep your
  current image so you can still boot if something went wrong with your
  build.
- If you selected vga = ask, you can enter '0312' at the prompt, or try
  one of the other modes listed in the Framebuffer HOWTO
- If all went well, you should be booting with the Tux the Penguin at
  the top of your screen.

Step 4 - Install the XFree86_FBDEV Xserver:
===========================================
- make sure that /etc/X11/X and /usr/X11R6/bin/X are both symlinks to
  /usr/X11R6/bin/XF86_FBDev
- you can check this by typing at your shell prompt:

        # ls -l /usr/X11R6/bin/X
        # ls -l /etc/X11/X

- if they do not point to the FBDev server:

        # rm /usr/X11R6/bin/X
        # rm /etc/X11/X
        # ln -s /usr/X11R6/bin/XF86_FBDev /usr/X11R6/bin/X
        # ln -s /usr/X11R6/bin/XF86_FBDev /etc/X11/X

Step 5 - Modify your /etc/X11/XF86Config:
=========================================
- configure your Screen Section to use the fbdev server with the
  "default" mode (I think this causes the FBDEV server to use the current
  vesa mode (0x0312, 640x480x24 which we selected at boot)

        Section "Screen"
            Driver      "fbdev"
            Device      "Mach64 GP (Rage Pro)"
            Monitor     "My Monitor"
            Subsection "Display"
                Depth       24
                Modes       "default"
                ViewPort    0 0
            EndSubsection
        EndSection
- You do not need to define any Modelines in the Monitor section of
  XF86Config

Step 6 - Check out your XF86Config:
===================================
- at your shell prompt run:

        # /usr/X11R6/bin/X -probeonly

  and check for (and correct) any errors

Step 7 - Start X:
=================
- at your shell prompt run:

        # startx

Hopefully, you now have X windows running on your TV.

Some comments:
==============
As you know, the resolution of a TV set is horrible compared to even the
worst monitors. In order to get readable text, I configured gnome to use
24 point fonts instead of the default 14 point font. Doubling the size
of the font makes the text very clear and readable, but effectively
makes your screen resolution more like 320x200, rather than 640x480.

Depending on what you want to do, and what applications you want to run,
you really need to play with your configuration to make things fit on
the screen. My plan is to use every app as "full-screen" as possible,
and use X and a pager to switch between apps by simply paging to the
next desktop. Graphical application with minimal text (ie. not web
browsing, USENET or email) are more usable.

One of the main uses for my X on TV desktop is to hook it up to my
stereo system and have a graphical MP3 jukebox in the living room. Other
uses include email notification, vgetty-based voicemail interface,
games, etc. Other "text-intensive" applications like web and email are
possible, but I don't know how much straining I'll be willing to
tolerate.  In order to use X on a TV, You really need to stop thinking
of "desktop" uses, and think of more non-text/minimal-text applications.

Anyway, if I get a usable configuration set up I'll try to make a theme
and upload it to themes.org.

Let me know if you have any success, questions, or comments.

Good luck,

Dave