The problem is not RandR, your video driver is not configuring the monitor based on the EDID information from the Monitor. Check the Xorg?.log file to see how the driver is configuring the monitor.
It is possible to configure the monitor in the xorg.conf configuration. I haven't tried this for a plug and play setup. Configuring a dual monitor setup might work better.
You could script the configuration so it is easier to do.
EDIT No, the module that is responsible for this is common and used by all the drivers. The video card manufacturers don't provide a common interface, so we need different drivers. The Xorg drivers factor out the common functionality and provide a standard application interfaces, which is why RandR works. xorg.conf is common to all the drivers.
If you are booting with the monitor turned on, it appears it is not providing an EDID (this is the monitor's responsibility). Look at /var/log/Xorg.0.log
after starting with and without the monitor connected and turned on when you boot. This should give you some idea what is or isn't happening.
This is the solution I used with a dual monitor setup where one monitor didn't supply an EDID. I have moved this solution into my xorg.conf file, but that took a while to configure. This setup is simpler if you are using gdm
. Similar solutions can be used for kdm
or xdm
. Replace my setup with what you are entering when you startup.
I created the file /etc/gdm/Init/Default
containing:
#!/bin/sh
PATH="/usr/bin:$PATH"
#WAT - Setup dual displays
# Define new modes (60 and 75 hz)
xrandr --newmode 1280x1024 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync
xrandr --newmode 1280x1024x75 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
# Add modes to screen
xrandr --addmode VGA-0 1280x1024
xrandr --addmode VGA-0 1280x1024x75
# Select the output mode
xrandr --output HDMI-0 --mode 1920x1080 --output VGA-0 --mode 1280x1024 --left-of HDMI-0
# EOF
intel(0): EDID for output VGA1
, then it shows the probed modes (which range from 800x600 to 1024x768 only). So well, the monitor is probably transmitting a wrong EDID; if I can I'll try using a different computer/OS in order to see if this is really the case. – peoro Apr 25 '11 at 14:26