The initial cut of this section is the collaboration of a posting to the mythtv-users list by Ian Forde and personal experience setting up the connection to my own High-Definition TV. I knew pretty much zilch about HDTVs coming into this, outside of the fact I had one (a 47" Panasonic, can't recall the model number), it supported 1080i and had two component video inputs. I probably spent a good ten hours or so reading over numerous pages at AVSForum, Digital Connection, Brandon Beattie's Linux HTPC HOWTO, and a few other places I can't recall before making any purchase.
I started out thinking that I'd use a DVI-to-component video adapter, and found such a cable at a local shop, Pacific Custom Cable, for about $25. I took it home, tossed one of my GeForce 4 Ti cards with a DVI output into my MythTV box, and fired it up. Oops. Wrong cable type. A simple DVI to component video cable converts DVI to RGB component video. My HDTV takes YPbPr component video. You get really hideous colors on the screen (if/when you get any at all), because the signaling and color channels are swapped around a bit (think painful-on-the-eyes flourescent yellow-green). Unfortunately, this meant I had to take the cable back and get a VGA to YPbPr component video transcoder, which has a bit heftier price tag (about $110). Pacific Custom Cable just so happened to carry the Audio Authority 9A60, so that's what I got. Other popular products that provide the same functionality are the Key Digital KD-VCTA3 and RCA VHDC300. However, if you've got either DVI or VGA inputs on your HDTV, you'll probably be better off using those (especially if the set will send DDC info).
Given how very little I knew on the subject, I went home thinking "I'll hook it up, and it'll just work" (using one of the 1920x1080i modelines I'd already found), since my X-Box "just works" with its HD kit. WRONG!!! I spent several hours over the next few days beating my head against the wall, talking on the phone with some very helpful folks at Audio Authority, and cruising the AVSForum discussion boards. It was actually a modeline I'd never come across before that someone on AVSForum posted after hearing what TV I was using that got me close enough to what I needed that I finally started making some real headway.
Said mode was a 540p mode, which will make those of you only casually familiar with High-Defintion go "Huh? I thought the standard were 1080i, 720p and 480p." Well, this is true, but 540p and 1080i are electronically equivalent. A 1080i signal uses interlacing (thus the i), meaning only 540 lines are drawn in frame x, while the other 540 are drawn in frame x+1. A 540p mode simply draws all 540 lines every frame, and thus the TV has no idea of the difference. It just knows its getting 540 lines every frame to spit out to the display.
There are several ways to go about attempting to find just the right modeline for your HDTV. For someone without a great deal of understanding about what all the elements of an Xorg modeline are and a set (like mine) that won't send any display data channel (DDC) information back to the computer, you might be best off temporarily running Windows on your system, so you can take advantage of the excellent PowerStrip software, from EnTech. Chances are, you'll also want a monitor available to use along with PowerStrip, because you can't tweak it if you can't see it (you'll set a mode on the monitor, then hook up the TV to examine it, back to the monitor if you can't see anything, rinse and repeat). This should be a fairly new monitor, capable of displaying a wide variety of resolutions, since you may be having to hook it up to your system while you're pushing non-standard resolutions (an older monitor may fry or simply display garbled junk, if anything at all). An excellent reference for using PowerStrip can be found here: http://www.ramelectronics.net/html/powerstrip.html.
Before we get any further into this, you can find an example, fully working configuration I created for my HDTV, using a GeForce 4 MX for output (should work with any GF4 or FX card, I'm actually using an FX 5200 Ultra right now), right here: http://wilsonet.com/mythtv/xorg.conf-HD.txt
The steps for going the PowerStrip route are essentially (extrapolated from Ian's posting):
Simply copy the xorg.conf file I'm using into place on your system. Quite a few people have reported to me that it worked for them without modification. The abridged version of how to do that is (on your Linux/MythTV box, as root):
You could also try something similar with any of the modelines posted on Brandon Beattie's Linux HTPC HOWTO site, though not a single one of those modes worked for me (and I tried ALL of them, several times...). You can always ssh into your Linux/MythTV box if you want to copy and paste in different modes without having to keep switching over to a monitor (which is actually what I did for the bulk of my walk down this path).
If you've got all the timing parameters correct, it is entirely possible to run an arbitrary resolution within those timings. What I'm actually running on my HDTV right now is an 880x480 mode inside 540p timings, which means the desktop fits my screen just about perfectly. I also made some minor adjustments to some of the timings to shift the picture down and over to the left a little bit, though this is a bit more involved (see Eric S. Raymond's XFree86 Video Timings HOWTO for details -- applies equally to the X.org X server). Just about any change you make to any of the parameters of a modeline should be by a factor of 8, so keep that in mind if you decide to tweak. Below is the actual modeline I'm currently running for my MythTV GUI, based off the initial 960x540p mode above:
Now that MythTV has support for the X server xrandr (X resize and rotate) extension, and the latest nVidia Linux drivers support interlaced modelines, I've also got a custom 1080i mode, which I switch to when viewing High Definition Content. My in1080i mode is:
This mode was essentially derived by doubling all the values from my in540p mode. Can't recall why the flip in polarity of the hsync and vsync parameters, but the interlace flag is pretty obvious. :-)
Another route that may be worth investigating, if you know the horizontal sync and vertical refresh capabilities of your television, is the gtf program, which is distributed with most X servers these days. What gtf stands for is Generalized Timing Formula, and what you can do with it is feed it a resolution and vertical refresh rate. With those values, gtf will calculate a modeline, that in theory, should work for your set. If it produces hsync values outside the range your set says are acceptable, try adjusting the vertical refresh value you feed gtf up and down. For example, you might start with this:
In theory, the vertical refresh value you're feeding ought to always be around 59.94Hz for 720p modes and 29.97Hz for 1080i modes, but that unfortunately doesn't always seem to hold true. :\
There are now about a dozen HDTV capture cards supported under Linux. Check out the HDTV part of the capture card section of the main HOWTO document for details on setting them up. Some day, I'll actually complete 'em... :)