I recently bought a Shuttle X27D to use as a Home Theater PC (HTPC). The reviews of this hardware run from disappointing to average, but I’m reasonably happy with it. It’s quiet (just one small fan for the GPU, and none for CPU, case, or power supply), uses little power (I measured it at 32 W in full operation), and the analog audio jack on the motherboard has no discernable noise in the audio stream (unlike my Dell Vostro 1500 laptop).
Unfortunately, the Intel 945G graphics processor can’t reliably handle 720p @24 frames video. I tested with a downloaded copy of Sita Sings the Blues, and it dropped frames as the animated fireworks exploded during the title sequence. It was fine with most of the rest of the film. Still, it means I’m likely to stick to upscaled 480p video. Which is far better for my bandwidth usage.
Naturally, I ran into some problems setting it up.
First, I discovered that Ubuntu 8.10 Intrepid amd64 won’t run on this hardware. The kernel panics as soon as you boot the Live CD. Ubuntu 9.04 beta works, and of course i386 is fine. Benchmarks of the Atom 330 suggest that the 32-bit kernel is actually faster on this CPU for integer operations, so I just went with 32-bit. Since I wanted to use this as the family Skype device, that was probably the better choice anyway.
The biggest reason I bought a Shuttle X27D was because it has a DVI port that I could connect to my TV. I have a Panasonic TX-37LZD70 37″ LCD HDTV which is capable of up to 1080p video (1920×1080) when using an HDMI input. I connected them via a DVI-to-HDMI adaptor (it’s just a difference in pinout, and lack of an audio signal). Unfortunately Ubuntu booted in 720p mode (1280×720 50 Hz). xrandr
reported a variety of other modes available, but none of them worked with my TV except for 640×480.
media@gozer:~$ xrandr Screen 0: minimum 320 x 200, current 1280 x 720, maximum 1680 x 1050 VGA disconnected (normal left inverted right x axis y axis) TMDS-1 connected 1280x720+0+0 (normal left inverted right x axis y axis) 697mm x 392mm 1280x720 50.0 + 60.0* 1680x1050 60.0 1600x1024 60.2 1400x1050 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1360x768 59.8 1152x864 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9
I started playing with xrandr, and eventually discovered that the TV isn’t giving complete resolution information in the EDID it offers digitally.
media@gozer:~$ xrandr --prop Screen 0: minimum 320 x 200, current 1280 x 720, maximum 1680 x 1050 VGA disconnected (normal left inverted right x axis y axis) TMDS-1 connected 1280x720+0+0 (normal left inverted right x axis y axis) 697mm x 392mm EDID_DATA: 00ffffffffffff0034a92ac149040000 2f110103800000780adaffa3584aa229 17494b00000001010101010101010101 010101010101011d00bc52d01e20b828 5540b9882100001e011d007251d01e20 6e285500b9882100001e000000fc0050 414e41534f4e49432d54560a000000fd 00173d0f440f000a2020202020200187 0203207250938414051f102012031102 16071506012309070166030c00200080 011d80d0721c1620102c2580b9882100 009e8c0ad090204031200c405500b988 21000018011d8018711c1620582c2500 b9882100009e8c0ad08a20e02d10103e 9600b98821000018023a80d072382d40 102c4580b98821000018000000000050
Decoding this by hand revealed that the TV is only announcing 1280×720 graphics modes. Some DVD players are willing to try to force graphics modes they don’t know will work, but a PC wisely does not do this without manual intervention.
By this point I’d learned a lot about setting display modes in X and tried creating modes myself, using gtf
and cvt
.
xrandr --newmode "1920x1080_50.00" 141.50 1920 2032 2232 2544 1080 1083 1088 1114 -hsync +vsync
xrandr --addmode TMDS-1 1920x1080_50.00
xrandr --output TMDS-1 --mode "1920x1080_50.00"
This didn’t work because the mode I was trying to create was too large for the maximum listed by xrandr. It turns out that this isn’t a hard setting, but is calculated when X starts based on the maximum resolution of the available displays. It is the size of the frame buffer X uses for the total display area of all displays. Anyone having to set up dual monitors usually has to increase this in order to have two displays side by side. So I modified /etc/X11/xorg.conf and restarted X.
Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" Subsection "Display" Virtual 1920 1080 Endsubsection EndSection
Now the new mode worked, but was shifted to the right on my TV. This happened for all the modeline calculations I was able to produce with both gtf
and cvt
. So I gave up and installed DTDCalculator in my Windows virtual machine. It calculated a different set of modelines which worked perfectly on the first try. I set up modes for 24 Hz, 50 Hz, and 60 Hz.
xrandr --newmode "1920x1080_24.00" 74.25 1920 2558 2602 2750 1080 1084 1089 1125 -HSync +Vsync
xrandr --newmode "1920x1080_50.00" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 -HSync +Vsync
xrandr --newmode "1920x1080_60.00" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 -HSync +Vsync
xrandr --addmode TMDS-1 1920x1080_24.00
xrandr --addmode TMDS-1 1920x1080_50.00
xrandr --addmode TMDS-1 1920x1080_60.00
Now I can switch to any of the new modes, and I have full 1080p video! The last thing I want to do is make this change permanent. There are several ways to do this. The best way is to edit xorg.conf:
Section "Device" Identifier "Configured Video Device" Option "Monitor-TMDS-1" "Configured Monitor" EndSection Section "Monitor" Identifier "Configured Monitor" ModeLine "1920x1080_60.00" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 -hsync +vsync ModeLine "1920x1080_50.00" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 -hsync +vsync ModeLine "1920x1080_24.00" 74.25 1920 2558 2602 2750 1080 1084 1089 1125 -hsync +vsync Option "PreferredMode" "1920x1080_60.00" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" Subsection "Display" Virtual 1920 1080 Endsubsection EndSection
This sets up the larger virtual frame buffer, creates the new resolutions, and tells X that the display TMDS-1 (the DVI port on this graphics card) should use the settings for “Configured Monitor” (normally only the first detected device will use these).
Another way to do this is to edit either /etc/xprofile or ~/.profile for your user. This is a shell script that is executed as X starts. If you want just your user to have these changes, use the latter. If you want all users including the login greeter to have them, use the former.
#!/bin/bash # 2009-04-10 tyler - add missing 1080p video modes to DVI output xrandr --newmode "1920x1080_24.00" 74.25 1920 2558 2602 2750 1080 1084 1089 1125 -HSync +Vsync xrandr --newmode "1920x1080_50.00" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 -HSync +Vsync xrandr --newmode "1920x1080_60.00" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 -HSync +Vsync xrandr --addmode TMDS-1 1920x1080_24.00 xrandr --addmode TMDS-1 1920x1080_50.00 xrandr --addmode TMDS-1 1920x1080_60.00 xrandr --output TMDS-1 --mode "1920x1080_60.00"
If you’ll excuse me, I’m going to get back to watching all my favourite shows without commercials.
-
I appreciate the info here. I purchased a X27D for a media pc. Running Mythbuntu JJ from live cd won’t display smooth HD on a VGA CRT. A bit of spelunking reveals “Intel XvMC decoder disabled” in Xorg.0.conf. A bit of surfing led me to
http://www.x.org/wiki/IntelGraphicsDriver
& to
http://xorg.freedesktop.org/archive/individual/driver/
where I downloaded xf86-video-intel-2.7.1.tar.bz2 dated 12-May-2009; don’t know if this will fix XvMC or not. I was hoping to run the X27D from cd…oh well. Now I’ll have to see if I can get it to boot from usb hard drive; if not, will have to find a 2.5 old laptop pata to either pata or sata converter to use existing laptop hard drives I have. If I have to buy a new hard drive, I’ll be up to the price of a Dell Studio Hybrid. This is yet another case of “so close, yet so far”.-
Okay, I admit it, it was the virtual thing that I needed to make my new HDTV work. I owe you a beer.
-
I have this PC connected to my samsung 37″ TV working perfectly decoding FullHD Videos on WinXp with CoreAVC.
But connected with VGA + Analog Audio-
Pingback from Nation Pigeon » Xrandr 1080p on 2012-08-06 at 20:11 +00:00
-
9 comments
Comments feed for this article
Trackback link: https://www.tolaris.com/2009/04/14/enabling-1080p-video-on-the-shuttle-x27d-htpc/trackback/