HOWTO Widescreen Resolutions (WSXGA)
From Gentoo Linux Wiki
| XOrg Index | Configuration | HIDevices | Fonts | Video Cards | Monitors |
There are so many places for this information, and with current drivers little extra knowhow is necessary for starting. However, since this is of course our favorite cache of HOWTOs, then it must exist here.
Contents |
[edit] Introduction
Widescreen monitors and display devices are becoming increasingly popular, with a recent surge in laptops. These devices go by a number of different names such as WSXGA, WSXGA+, WUXGA, WXGA and WXGA+ among many others, but also can include the different digital television protocols like EDTV and HDTV (for HDTV see this HOWTO). Instead of the typical 4:3 aspect ratio we are afforded more natural aspect ratios such as 16:10 and 16:9. However, the information on this page is generic and can be applied to any irregular or regular resolution.
You might be visiting this site to check the difficulty of such a screen in Linux before committing large amounts of cash to it. This HOWTO will hopefully convince you that it is relatively simple, by having the right sources of information available. The only required issue is to get it working in Xorg to be able to perform standard productivity tasks. Some individual applications require a little extra work, but it is more than worth it.
Here are the common resolutions for 16:10 aspect ratio:
- 2560x1600
- 1920x1200
- 1680x1050
- 1440x900
- 1280x800
- 1024x640
- 800x500
[edit] Xorg
The difficulty of this setup depends on the drivers used. If your drivers don't have a preset configuration for your resolution then you will have to place a modeline in your xorg.conf. For a while the nvidia drivers have supported 1920x1200 without this modeline, but only more recent drivers support 1680x1050 including Xorg. It is possible that by the time you read this the resolution that you require might already be supported by the appropriate drivers from nvidia, Xorg, ATI or another source. Without the extra work of modeline all you should have to do is add your resolution to the Display subsection of the Screen section of your xorg.conf.
| File: /etc/X11/xorg.conf |
Section "Screen"
....
Subsection "Display"
Depth 24
Modes "1680x1050" "1280x1024" ...
ViewPort 0 0
EndSubsection
|
If that works, well then congratulations you're done with all the required parts. Check below for xrandr configuration and any applications that you might want to fine tune.
[edit] If that fails - Use Modeline
If the above procedure fails then use your /var/log/Xorg.0.log logfile to search the problem. It will say something like it is out of bounds. This is because the modeline generated was not appropriate. Therefore a modeline must be manually specified. Modelines can be calculated, however it is much safer to go with EDID information, as inappropriate modelines can supposedly damage a screen. Xorg should post the EDID information in the log file to help you create a modeline. However there are various ways of getting a modeline, but the log is usually the least complicated.
| File: /var/log/Xorg.0.log |
... (II) NV(0): Supported additional Video Mode: (II) NV(0): clock: 119.0 MHz Image Size: 434 x 270 mm (II) NV(0): h_active: 1680 h_sync: 1728 h_sync_end 1760 h_blank_end 1840 h_border: 0 (II) NV(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1080 v_border: 0 ... |
Using the EDID information from the above log file, the following modline was added to xorg.conf. After inserting the modeline into xorg.conf, there was no problem with X.
| File: /etc/X11/xorg.conf |
Section "Monitor"
Identifier "My Monitor"
...
#modeline explained http://www.tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/synth.html
#from http://www.tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/index.html
# ___name____ clock _horizontal_timing_ __vertical_timing__ ____flag____
# <name> --DCF --HR -SH1 -SH2 -HFL --VR -SV1 -SV2 _VFL
ModeLine "1680x1050" 119.0 1680 1728 1760 1840 1050 1053 1059 1080
|
[edit] If ModeLine fails - try Video Card options
For larger screens (1920x1200) the driver might max out too early so turning off that check could help.
Section "Device"
Option "ModeValidation" "NoMaxPClkCheck"
Identifier "Card0"
...
[edit] If that fails - new drivers or new hardware
If both of the methods failed for your setup, it is quite possible that the drivers being used do not yet support widescreen resolutions, which is often the case of a lot of the integrated video cards. A solution might be to get newer drivers (in particular those using archaic distributions), if they exist. Another solution, though not particularly favored, might be to get new hardware from a linux friendly manufacturer. It might be worth the extra $30 to get a simple video card, rather than deal with hours of driver hassle (though buying a new laptop is not as pratical).
[edit] Xrandr and Rotate
Rotating your monitor in linux now has some functional value to it, thanks to widescreen resolutions. This can be accomplished in one of two ways, either permanently or on-the-fly. If you want to use the on-the-fly idea, make sure to include the following in your xorg.conf
| File: /etc/X11/xorg.conf |
Section "Device"
Identifier "my_video_card_id"
....
Option "RandRRotation" "on"
....
|
The command line program, xrandr, or one of its derivatives (krandr) will allow you to rotate on the fly. For instance:
xrandr -o left
will rotate the desktop to the left, or counter-clockwise 90 degrees. This is the oposite of the direction the screen is turned (ie. turn right, or clockwise).
You could alternatively choose to make a more permanent solution by using the rotate option in your xorg.conf, with values of "CCW" or "CW". For 180 degree rotations, the reflect option is necessary with value "XY". The same reversal is necessary as above for rotation.
| File: /etc/X11/xorg.conf |
Section "Device"
Identifier "my_video_card_id"
....
Option "Rotate" "CCW"
....
|
The login screen will now be rotated. This can be used in conjunction with xrandr in order to specify a default behavior to X, while allowing on-the-fly switching for the end user.
[edit] Preserving aspect ratio on flatpanels (nVidia)
If you would like to preserve the aspect ratio for applications or games that use full-screen modes but do not natively support widescreen, it can be set up on nVidia based cards by adding an option in your X11 config file. This way you can still use 4:3 modes without stretching the image to the full width of the screen.
| File: /etc/X11/xorg.conf |
Section "Device"
...
Option "FlatPanelProperties" "Scaling = aspect-scaled"
...
|
[edit] Using the DVI input on flatpannels
There is a huge difference in pixel sharpness at high resolutions between the VGA and the DVI inputs of LCDs. To drive the LCD monitor using the DVI output of your video card, you might need to overwrite the detected monitor type. This happened to me as I had installed the LCD while using the VGA input, and later got a DVI cable. The answer was found by reading the radeon manpage (man radeon).
| File: /etc/X11/xorg.conf |
Section "Device"
...
Option "MonitorLayout" "TDMS"
....
EndSection
|
Note that there are 3 types of DVI cables, DVI-A, DVI-I and DVI-D. Make sure you buy the right one for your graphics card and your LCD monitor.
[edit] Framebuffer and Bootsplash
[edit] Framebuffer
Setting up the framebuffer is straightforward, assuming that it can be done normally. See the gensplash HOWTO (previously fbsplash) and the framebuffer support HOWTO. Some specific implementations are explained on this site (see macbook ... \todo list more implementations).For a macbook I chose the vesa-tng driver and only needed to change my lilo.conf
| File: /etc/lilo.conf |
...
#append="noapic acpi=force irqpoll"
append="noapic acpi=force irqpoll video=vesafb:mtrr,ywrap,1280x800-24@60"
....
|
ATTENTION: remember that your bios must support widescreen resolution or the new console mode won't work. If you use vesafb-tng's successor, uvesafb, you can check the supported modes by
# cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
[edit] Bootsplash (aka fbsplash and gensplash)
For us gentoo users gensplash is the way to go. Yet to test, but I assume that only a specialized theme is necessary.
[edit] Applications (mostly games)
Fortunately most all software runs in a windowed mode, so not even a worry. However not all apps that can go full screen (the resizing kind of full screen) are designed for wide screen resolutions. Here are more or less a list of common full screen applications. Note that for 3-d games, for comfort, it might be necessary to set the fov to a different setting than the default. This is of course dependent on the distance your screen is from your eyes, and of course should also be the case for standard aspect ratio monitors.
[edit] Applications that work out of the box
Typically you must still select the proper resolution in a video settings menu. This list was compiled while keeping 1680x1050 in mind. Other resolutions might require more work. Some of these applications where the resolution is typed in, also work for very odd ratios like a rotated widescreen. Even if it does work it is often not as nice (for instance enemy-territory does not do fullscreen at 1050x1680 - a rotated screen).
- VMware (workstation)
- etqw - Enemy Territory: Quake Wars (see Doom3 also)
- Unreal Tournament 2004 (and 2003)
- America's Army
- Neverwinter Nights
- Planeshift (typein)
- Foobillard
- Globulation 2
- Drop Team
- X2: the threat
- Wormux
- GTR 2
- Farcry
- Video players should work and to be explicit: the major heavy-weights in video playing (i.e. vlc, xine-gui, mplayer) and their derivatives (e.g. kaffeine, kmplayer), all of whom do fullscreen, adapt quite well. Actually, it appears that mplayer needs a little help: (HOWTO MPlayer).
The following games, unfortunately require more work.
[edit] Quake 3 and Doom 3 derivatives
Any linux game based on the Quake 3 or Doom 3 engines can easily be fit for widescreen. These include Quake Wars (etqw), Quake4, Return to Castle Wolfenstein (rtcw), enemy-territory, Soldier of Fortune, Soldier of Fortune 2, and tremulous to name a few. Just bring down the console window with ` (the one with the ~ key above it), though sometimes ctrl-alt is necessary. Then type into it:
\r_customHeight 1050 \r_customWidth 1680 \r_mode -1 \vid_restart
Height and width are self explanatory. The r_mode is necessary or the game will ignore all values set with r_customHeight and r_customWidth. A simple vid_restart command will get you up and running with the new resolution. Another value is that of r_customAspect and r_aspectRatio (on newer games), which tells the game the aspect ratio. However r_customAspect seems to be ignored. A value of 1 means the typical 4:3, 2 means 16:9 and 3 means 16:10. You might be able to get away with the r_customAspect value only on some newer games like q4 (on older games it seems to have no effect). This value, r_customeAspect, will make normal 4:3 screen resolutions properly stretched as a 16:9 or 16:10 ratio.
It is also possible to put the above options into your doom3/DoomConfig.cfg file:
seta r_customHeight 1050 seta r_customWidth 1680 seta r_mode -1 seta vid_restart
[edit] Nexuiz
The way of setting the proper resolution in Nexuiz is very similar to the id software games. Open the console window with ` and then type the following:
vid_height 1050 vid_width 1680
[edit] Sauerbraten and Cube
Any game based off of the Cube or Sauerbraten (aka Cube 2) can be made widescreen with command line parameters (w and h) such as ./sauerbraten_unix -w1680 -h1050.
[edit] Unreal Tournament 2003
UT2003 can be made widescreen using the console window, similar to id software games. Open the console window with ` and then type the following:
setres 1680x1050x32
Where 1680 is the display width, 1050 is the display height, and 32 is the color depth in bits per pixel (bpp).
[edit] Northland
edit the file ~/.northland/config.xml in the approriate places.
| File: ~/.northland/config.xml |
<?xml version="1.0" encoding="UTF-8" ?>
<DexterXML>
<ScreenMode>Windowed</ScreenMode>
<ScreenWidth>1680</ScreenWidth>
<ScreenHeight>1050</ScreenHeight>
</DexterXML>
|
[edit] Battlefield 2 and 2142
With cedega add the command line parameters +szx 1680 +szy 1050.
[edit] Warcraft III and World of Warcraft
Change the following values in user.reg. These are hexadecimal for 1680x1050. This is only necassary for older versions of World Of Warcraft. Since Blizzard has released a patch, widescreen is supported.
| File: ~/.wine/user.reg |
[Software\\Blizzard Entertainment\\Warcraft III\\Video] ... ... "resheight"=dword:0000041a "reswidth"=dword:00000690 |
[edit] Applications with no available widescreen resolution
Here is the list of bad guys, though most are because widescreen was after their time.
- Starcraft, Diablo II and older Blizzard games.
- Chromium
- Frozen-Bubble
[edit] Hardware list and links
Beware, lots of these sites were generated long ago. Many go to extensive work to get appropriate modelines, which, as illustrated above, might not be necessary. For a comprehensive list search this site or google etc. for wxga / wuxga / wsxga / widescreen etc. If nothing else this list is great to help those searching for help on a certain device in linux. In fact chances are that you found it while googling 'linux $device' where device is one below. Forgive an incomplete list, if you don't see your device, add it here!
- Apple (all products)
- Dell's Ultrasharp series: 30" 3007WFP, 24" 2405FPW & 2407FPW, 20" 2005FPW (configuration above) & 2007WFP
- HP: 24" LP2465, 23" L2335, 21" f2105, 20" w2007, 19" w19b
- LG: 20.1" L204WT, 20.1" L203WTX
- NEC: 20.1" 20WGX2, 20.1" 20WGX2 Pro
- Philips: 20" 200W6CS & 200W6
- Samsung: 20" 205BW, 21" 215TW, 19" 940BW, 22" 225BW, 22" 226BW, 22" 2232BW/GW, 30" 305T
- ViewSonic: 28" VX2835wm 20.1" VX2025wm 19" VA19112wb
- Acer: 22" AL2216W
- HOWTO Xorg HDTV
[edit] Laptops
seemingly ubiquitous
- HP
- nc8230, nw8240, nc8430, nw8440, nw9440, nx9420,
- Pavilion: zv5000, SE L2005CL, dv8000, dv5000, dv2000, dv1000, zv6000
- Acer
- Aspire 3651WLMI
- Ferrari 4005WLMi
- Ferrari 5000WLMi Series
- Sony
- Apple
- MacBook and MacBook Pro
- Powerbook
- Dell
- Toshiba
- Gateway
- Fujitsu-Siemens
- Amoi
- Asus
- A6Km, M6VA, Z70VA, V6800V, Asus G2S-A1, Asus V1S-AK012E
- Compaq Presario: v5000, v3000, v2000z
- IBM/Lenovo
- ThinkPad Z60m (the Z61m works the same)
- Lenovo 3000 V100
