: Amazing linux stunts with 1920x1200 LCD monitor
Walter Dnes 2007-09-13, 11:05 PM Got my 1920x1200 Acer. First of all, the bad news. The monitor does *NOT* like "vga=6" in/etc/lilo.conf (and probably not in GRUB either). This eliminates my cute 80x48 display in console textmode. I can only get 80 columns by 40 rows using a 10-pixel-high font.
The LCD monitor works "automagically". I hooked up via the DVI connector and put it through its paces. At first, it's scarey just setting resolutions in xorg.conf without modelines, but I did just that, setting a resolution of 1920x1200. The text on Firefox is so crisp, it's like wow. And I can put 2 Firefox windows side-by-each.
<MODE="KTel commercial> But wait, there's more </MODE>
We all know that most lower resolutions suck on LCD monitors, because they're trying to interpolate partial pixels on top of a fixed physical resolution. However, if you can divide vertical and horizontal resolutions exactly by whole numbers, there's no interpolation, although the image may start being blocky. Dividing 1920 by 2, 3, 4, 5, and 6 yields 960, 640, 480, 384, and 320. Similarly, dividing 1200 by 2, 3, 4, 5, and 6 yields 600, 400, 300, 240, and 200. So the following resolutions...
960x600 and 640x400 and 480x300 and 384x240 and 320x200
...are interpolation-free. The lower resolutions are great for playing videos from Youtube etal.
<MODE="KTel commercial> But wait, there's even more </MODE>
You don't necessarily have to combine 1920/3 with 1200/3 or 1920/4 with 1200/4. Any valid X resolution with any valid Y resolution is OK. Most possible combinations look ridiculous, but 640x600, 480x400, 384x300, and 320x240 are usable, indeed just right, for some videos.
OK, so I have the following video modes...
1920x1200, 960x600, 640x600, 640x400, 480x400, 480x300, 384x300, 384x240, 320x240, and 320x200. Now, how do I invoke X with the desired resolutions? I start off with /etc/X11/xorg.conf, with only 1920x1200 selected. Then I make a bunch of copies like so...
m3000 X11 # ll -og *.conf
-rw-r--r-- 1 15165 Sep 13 20:43 320x200xorg.conf
-rw-r--r-- 1 15165 Sep 13 20:51 320x240xorg.conf
-rw-r--r-- 1 15165 Sep 13 19:51 384x240xorg.conf
-rw-r--r-- 1 15165 Sep 13 20:31 384x300xorg.conf
-rw-r--r-- 1 15165 Sep 13 19:50 480x300xorg.conf
-rw-r--r-- 1 15165 Sep 13 20:28 480x400xorg.conf
-rw-r--r-- 1 15165 Sep 13 19:49 640x400xorg.conf
-rw-r--r-- 1 15165 Sep 13 20:22 640x600xorg.conf
-rw-r--r-- 1 15165 Sep 13 19:48 960x600xorg.conf
-rw-r--r-- 1 15171 Sep 13 21:31 xorg.conf
Next, set the resolution in each copy to match the numbers in the filename (or else, you'll end up being very confused).
Next, create the file ~/bin/x, with the following lines...
#! /bin/bash
startx -- -nolisten tcp -config ${1}xorg.conf &
If you invoke it as "x", with no parameters, it'll load using xorg.conf. If you invoke it as "x abcxdef", it will try to start X using abcxdefxorg.conf. Give it the appropriate prefix, and it'll start X with the corresponding conf file, e.g. "x 384x300" uses 384x300xorg.conf.
Well done but you don't mention the model number!
Walter Dnes 2007-09-14, 10:43 AM Well done but you don't mention the model number!
The model is Acer X241W sd (purchased at Canada Computers), but I think that the resolutions should be doable with most 1920x1200 monitors. That's why I didn't bother with the model number in the first post.
The Acer X241W sd is a relatively low-end monitor. It costs less than $500, but PST+GST push it over $500. It comes with VGA and DVI connectors, and it also comes with VGA and DVI cables.
stampeder 2007-09-14, 01:46 PM Walter, which distro of Linux? What kind of video card?
I have a MythDora box running an Nvidia 7600GS card via DVI/HDMI into my Sony SXRD 60" HDTV. When I first installed MythDora with the Nvidia driver the video didn't require any configuration or input because the video card grabbed the proper parameters from the Sony TV.
The xorg.conf file doesn't use any modelines because of that. In fact it hardly has anything in it and yet everything works perfectly:Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules/extensions"
ModulePath "/usr/lib/xorg/modules"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSectionBy reading /var/log/Xorg.0.log I can see how the whole negotiation/transaction took place automagically @ 1920x1200. :)
My notebook runs Mandriva and installed the graphics automagically too.
I have 2 other Mandriva boxes, each with Nvidia 5XXX series cards using the Nvidia Legacy drivers and they were a hassle to set up for their LCD monitors. :rolleyes:
Walter Dnes 2007-09-14, 06:46 PM AMD64 K8 cpu, running 32 bit Gentoo linux. The video card is ATI Technologies Inc RV370 [Radeon X300SE]
stampeder 2007-09-14, 07:44 PM I've never tried running an ATI card with Linux but certainly the news is great from their new owners, AMD, that they will be working with xorg to make Linux drivers!
For now I can verify that the Nvidia cards in the 6/7/8000 series can read what they need over DVI and/or HDMI connected monitors and adjust their settings accordingly.
rsambuca 2007-09-14, 09:17 PM Stampeder, is that your entire xorg?! Man, that is TIGHT. Well done.
stampeder 2007-09-15, 01:32 AM That's it. All the configuration is automagically done each time the graphics server is called on to start. My HDTV is a 1080p model, and the PC puts out 1920x1080p video signal to it via DVI/HDMI.
Here's the /var/log/Xorg.0.log file so you can see what happens. Note that I've snipped out 3 very long sections of memory registers, PCI scans, and resource allocations in order to fit this into a DHC post:X Window System Version 7.1.1
Release Date: 12 May 2006
X Protocol Version 11, Revision 0, Release 7.1.1
Build Operating System: Linux 2.6.9-42.0.8.ELsmp i686 Red Hat, Inc.
Current Operating System: Linux xxxxxx 2.6.20-1.2944.fc6 #1 SMP Tue Apr 10 18:46:45 EDT 2007 i686
Build Date: 08 April 2007
Build ID: xorg-x11-server 1.1.1-47.8.fc6
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Fri Sep 14 21:59:09 2007
(==) Using config file: "/etc/X11/xorg.conf"
(==) ServerLayout "Default Layout"
(**) |-->Screen "Screen0" (0)
(**) | |-->Monitor "<default monitor>"
(**) | |-->Device "Videocard0"
(WW) No monitor specified for screen "Screen0".
Using a default monitor configuration.
(**) |-->Input Device "Keyboard0"
(==) |-->Input Device "<default pointer>"
(WW) The core pointer device wasn't specified explicitly in the layout.
Using the default mouse configuration.
(==) FontPath set to:
unix/:7100,
built-ins
(==) RgbPath set to "/usr/share/X11/rgb"
(**) ModulePath set to "/usr/lib/xorg/modules/extensions/nvidia,/usr/lib/xorg/modules/extensions,/usr/lib/xorg/modules"
(WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
(II) No APM support in BIOS or kernel
(II) Module ABI versions:
X.Org ANSI C Emulation: 0.3
X.Org Video Driver: 1.0
X.Org XInput driver : 0.6
X.Org Server Extension : 0.3
X.Org Font Renderer : 0.5
(II) Loader running on linux
(II) LoadModule: "bitmap"
(II) Loading /usr/lib/xorg/modules/fonts/libbitmap.so
(II) Module bitmap: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
Module class: X.Org Font Renderer
ABI class: X.Org Font Renderer, version 0.5
(II) Loading font Bitmap
(II) LoadModule: "pcidata"
(II) Loading /usr/lib/xorg/modules/libpcidata.so
(II) Module pcidata: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
ABI class: X.Org Video Driver, version 1.0
(++) using VT number 7
#### SNIP mind-numbing list of scan results ####
(II) LoadModule: "extmod"
(II) Loading /usr/lib/xorg/modules/extensions/libextmod.so
(II) Module extmod: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
Module class: X.Org Server Extension
ABI class: X.Org Server Extension, version 0.3
(II) Loading extension SHAPE
(II) Loading extension MIT-SUNDRY-NONSTANDARD
(II) Loading extension BIG-REQUESTS
(II) Loading extension SYNC
(II) Loading extension MIT-SCREEN-SAVER
(II) Loading extension XC-MISC
(II) Loading extension XFree86-VidModeExtension
(II) Loading extension XFree86-Misc
(II) Loading extension XFree86-DGA
(II) Loading extension DPMS
(II) Loading extension TOG-CUP
(II) Loading extension Extended-Visual-Information
(II) Loading extension XVideo
(II) Loading extension XVideo-MotionCompensation
(II) Loading extension X-Resource
(II) LoadModule: "dbe"
(II) Loading /usr/lib/xorg/modules/extensions/libdbe.so
(II) Module dbe: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
Module class: X.Org Server Extension
ABI class: X.Org Server Extension, version 0.3
(II) Loading extension DOUBLE-BUFFER
(II) LoadModule: "glx"
(II) Loading /usr/lib/xorg/modules/extensions/nvidia/libglx.so
(II) Module glx: vendor="NVIDIA Corporation"
compiled for 4.0.2, module version = 1.0.9755
Module class: X.Org Server Extension
ABI class: X.Org Server Extension, version 0.1
(II) Loading extension GLX
(II) LoadModule: "freetype"
(II) Loading /usr/lib/xorg/modules/fonts/libfreetype.so
(II) Module freetype: vendor="X.Org Foundation & the After X-TT Project"
compiled for 7.1.1, module version = 2.1.0
Module class: X.Org Font Renderer
ABI class: X.Org Font Renderer, version 0.5
(II) Loading font FreeType
(II) LoadModule: "type1"
(II) Loading /usr/lib/xorg/modules/fonts/libtype1.so
(II) Module type1: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.2
Module class: X.Org Font Renderer
ABI class: X.Org Font Renderer, version 0.5
(II) Loading font Type1
(II) LoadModule: "record"
(II) Loading /usr/lib/xorg/modules/extensions/librecord.so
(II) Module record: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.13.0
Module class: X.Org Server Extension
ABI class: X.Org Server Extension, version 0.3
(II) Loading extension RECORD
(II) LoadModule: "dri"
(II) Loading /usr/lib/xorg/modules/extensions/libdri.so
(II) Module dri: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
ABI class: X.Org Server Extension, version 0.3
(II) Loading sub module "drm"
(II) LoadModule: "drm"
(II) Loading /usr/lib/xorg/modules/linux/libdrm.so
(II) Module drm: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
ABI class: X.Org Server Extension, version 0.3
(II) Loading extension XFree86-DRI
(II) LoadModule: "nvidia"
(II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
(II) Module nvidia: vendor="NVIDIA Corporation"
compiled for 4.0.2, module version = 1.0.9755
Module class: X.Org Video Driver
(II) LoadModule: "kbd"
(II) Loading /usr/lib/xorg/modules/input/kbd_drv.so
(II) Module kbd: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.1.0
Module class: X.Org XInput Driver
ABI class: X.Org XInput driver, version 0.6
(II) LoadModule: "mouse"
(II) Loading /usr/lib/xorg/modules/input/mouse_drv.so
(II) Module mouse: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.1.1
Module class: X.Org XInput Driver
ABI class: X.Org XInput driver, version 0.6
(II) NVIDIA dlloader X Driver 1.0-9755 Mon Feb 26 23:23:13 PST 2007
(II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
(II) Primary Device is: PCI 01:00:0
(--) Assigning device section with no busID to primary device
(--) Chipset NVIDIA GPU found
(II) Loading sub module "fb"
(II) LoadModule: "fb"
(II) Loading /usr/lib/xorg/modules/libfb.so
(II) Module fb: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
ABI class: X.Org ANSI C Emulation, version 0.3
(II) Loading sub module "wfb"
(II) LoadModule: "wfb"
(II) Loading /usr/lib/xorg/modules/libwfb.so
(II) Module wfb: vendor="NVIDIA Corporation"
compiled for 7.1.99.2, module version = 1.0.0
(II) Loading sub module "ramdac"
(II) LoadModule: "ramdac"
(II) Loading /usr/lib/xorg/modules/libramdac.so
(II) Module ramdac: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 0.1.0
ABI class: X.Org Video Driver, version 1.0
### SNIP mind-numbing list of resource ranges ###
(II) Setting vga for screen 0.
(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
(==) NVIDIA(0): RGB weight 888
(==) NVIDIA(0): Default visual is TrueColor
(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
(**) NVIDIA(0): Enabling RENDER acceleration
(II) NVIDIA(0): Support for GLX with the Damage and Composite X extensions is
(II) NVIDIA(0): enabled.
(II) NVIDIA(0): NVIDIA GPU GeForce 7600 GS at PCI:1:0:0 (GPU-0)
(--) NVIDIA(0): Memory: 262144 kBytes
(--) NVIDIA(0): VideoBIOS: 05.73.22.40.01
(II) NVIDIA(0): Detected AGP rate: 8X
(--) NVIDIA(0): Interlaced video modes are supported on this GPU
(--) NVIDIA(0): Connected display device(s) on GeForce 7600 GS at PCI:1:0:0:
(--) NVIDIA(0): SONY TV (DFP-0)
(--) NVIDIA(0): SONY TV (DFP-0): 165.0 MHz maximum pixel clock
(--) NVIDIA(0): SONY TV (DFP-0): Internal Single Link TMDS
(II) NVIDIA(0): Assigned Display Device: DFP-0
(WW) NVIDIA(0):
(WW) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
(WW) NVIDIA(0): will be used as the requested mode.
(WW) NVIDIA(0):
(II) NVIDIA(0): Validated modes:
(II) NVIDIA(0): "nvidia-auto-select"
(II) NVIDIA(0): Virtual screen size determined to be 1920 x 1080
(--) NVIDIA(0): DPI set to (69, 68); computed from "UseEdidDpi" X config
(--) NVIDIA(0): option
(--) Depth 24 pixmap format is 32 bpp
(II) do I need RAC? No, I don't.
### SNIP mind-numbing list of resource ranges ###
(II) NVIDIA(0): Setting mode "nvidia-auto-select"
(II) Loading extension NV-GLX
(II) NVIDIA(0): NVIDIA 3D Acceleration Architecture Initialized
(II) NVIDIA(0): Using the NVIDIA 2D acceleration architecture
(==) NVIDIA(0): Backing store disabled
(==) NVIDIA(0): Silken mouse enabled
(II) Loading extension NV-CONTROL
(==) RandR enabled
(II) Initializing built-in extension MIT-SHM
(II) Initializing built-in extension XInputExtension
(II) Initializing built-in extension XTEST
(II) Initializing built-in extension XKEYBOARD
(II) Initializing built-in extension XC-APPGROUP
(II) Initializing built-in extension SECURITY
(II) Initializing built-in extension XINERAMA
(II) Initializing built-in extension XFIXES
(II) Initializing built-in extension XFree86-Bigfont
(II) Initializing built-in extension RENDER
(II) Initializing built-in extension RANDR
(II) Initializing built-in extension COMPOSITE
(II) Initializing built-in extension DAMAGE
(II) Initializing built-in extension XEVIE
(II) Initializing extension GLX
(**) Option "CoreKeyboard"
(**) Keyboard0: Core Keyboard
(**) Option "Protocol" "standard"
(**) Keyboard0: Protocol: standard
(**) Option "AutoRepeat" "500 30"
(**) Option "XkbRules" "xorg"
(**) Keyboard0: XkbRules: "xorg"
(**) Option "XkbModel" "pc105"
(**) Keyboard0: XkbModel: "pc105"
(**) Option "XkbLayout" "us"
(**) Keyboard0: XkbLayout: "us"
(**) Option "CustomKeycodes" "off"
(**) Keyboard0: CustomKeycodes disabled
(WW) <default pointer>: No Device specified, looking for one...
(II) <default pointer>: Setting Device option to "/dev/input/mice"
(--) <default pointer>: Device: "/dev/input/mice"
(==) <default pointer>: Protocol: "Auto"
(**) Option "CorePointer"
(**) <default pointer>: Core Pointer
(==) <default pointer>: Emulate3Buttons, Emulate3Timeout: 50
(**) <default pointer>: ZAxisMapping: buttons 4 and 5
(**) <default pointer>: Buttons: 9
(II) XINPUT: Adding extended input device "<default pointer>" (type: MOUSE)
(II) XINPUT: Adding extended input device "Keyboard0" (type: KEYBOARD)
(--) <default pointer>: PnP-detected protocol: "ExplorerPS/2"
(II) <default pointer>: ps2EnableDataReporting: succeeded
Warning: font renderer for ".pcf" already registered at priority 0
Warning: font renderer for ".pcf.Z" already registered at priority 0
Warning: font renderer for ".pcf.gz" already registered at priority 0
Warning: font renderer for ".snf" already registered at priority 0
Warning: font renderer for ".snf.Z" already registered at priority 0
Warning: font renderer for ".snf.gz" already registered at priority 0
Warning: font renderer for ".bdf" already registered at priority 0
Warning: font renderer for ".bdf.Z" already registered at priority 0
Warning: font renderer for ".bdf.gz" already registered at priority 0
Warning: font renderer for ".pmf" already registered at priority 0
(II) 3rd Button detected: disabling emulate3Button
jvillain 2007-09-16, 03:49 PM OK, so I have the following video modes...
1920x1200, 960x600, 640x600, 640x400, 480x400, 480x300, 384x300, 384x240, 320x240, and 320x200. Now, how do I invoke X with the desired resolutions? I start off with /etc/X11/xorg.conf, with only 1920x1200 selected. Then I make a bunch of copies like so...
Your working way to hard. throw all your resolutions into one sub section like so
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
Depth 24
Modes "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Then you can just hold down the alt+ctl keys and hit the plus key or minus key to switch between resolutions on the fly.
| |