Display cloning on Linux — xrandr1.2 and xorg-driver-ati

Following a few notes on the new way on Debian GNU/Linux to clone a notebook screen to an external video device. First please note there are already documents available on the background of it. Not necessarily Debian related: two links for that:

http://wiki.debian.org/XStrikeForce/HowToRandR12
http://www.thinkwiki.org/wiki/Xorg_RandR_1.2

For the latest news on the software please see the xorg-driver-ati archives on

http://lists.x.org/archives/xorg-driver-ati/

The hints here are meant for Debian Linux, and for the new ati radeon driver. The following from playing the software on an Apple PowerBook5,8. Display managing was done with KDE/KDM. Here’s xorg.conf I have installed. Please note, that these drivers are work in progress. Their behavior sometimes seems to be completely unpredictable. So the following few hints on how to use them do not necessarily take into account the intentions of the programmers of this software. That is the following procedures were found to work. No guarantees they’re right, whatsoever.

Help – if things go wrong

If you’re running into problems with the software please make sure – before changing anything like suggested below – that you have a second Linux driven computer handy to ssh into the machine with the changed radeon drivers. Make sure you can shutdown your computer safely via an ssh connection.
First a few basics on X on a friendly Apple page :

http://developer.apple.com/opensource/tools/runningx11.html

The page above might help understand the following few emergency commands:

*** 1:
If you need to run xrandr on a remote computer via ssh – for example to switch on or off its display – you need to login to this computer with the 'Y' flag, something like

ssh -Y xxx.xxx.xxx.xxx

where the xxx … part above is the IP of the remote client

*** 2:
If you now run on the remote client ‘xrandr -q’ it might yield the values for the computer where you were coming from. This indicates you won’t be able to change display settings for this remote client. So run this, on the remote machine:

echo $DISPLAY

If your shell is answering with something like

localhost:10.0

you probably will need to change that. Run

export DISPLAY=:0

Again running ‘echo $DISPLAY’ this time should give something like

:0

So, e.g. if the notebook display on the remote client was shut down accidentally, with the now changed $DISPLAY environment it should be possible to switch it on again with something like:

xrandr –output LVDS –auto

Thanks:
Brice Goglin
Xavier Bestel

Getting the software

This seems to be a definite preliminary:

  • xrandr1.2 (can be checked with a ‘xrandr -v’) and a
  • xserver-xorg-video-ati 6.7.19x and newer

xrandr1.2, e.g., comes on Debian unstable with newer x11-xserver-utils packages.

And a relatively fresh Debian from the unstable branch might be needed, too.

There’s also an option to compile the necessary ati drivers by yourself. Not quite necessarily the Debian way:

apt-get build-dep xserver-xorg-video-ati
git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-ati
cd xf86-video-ati/
./autogen.sh
MAKEFLAGS="CC=gcc-4.3" make

You might even try to just compile what you need, with the last line above changed to something like

MAKEFLAGS="CC=gcc-4.3" make -C src {ati,radeon}_drv.la

gcc-4.3 is the compiler I would use.
After the succeeded compile, for a PowerBook5,8 it should be enough to just manually copy those resulting drivers:

  • ati_drv.so
  • radeon_drv.so

to

/usr/lib/xorg/modules/drivers

Be careful: If you are in a running X session don’t copy these new drivers with the usual 'cp': If you do you might get thrown out of your X very ugly, with the keyboard being unavailable for further use. I recommend to either log out of X completely, and then copy the mentioned drivers to

/usr/lib/xorg/modules/drivers

Even better perhaps the solution I was told, something like

cp –remove-destination <your driver> /usr/lib/xorg/modules/driver

Cloning your screen

Two scenarios for the notes following:

  • Connecting the notebook to an external VGA
  • Connecting the notebook to a TV set

Cloning the notebook screen both to VGA and TV works.

Connecting the notebook to an external TV monitor

At least with xorg packages on Debian unstable/powerpc software is getting installed, that enables screen cloning to an external PAL TV monitor, in color mode. This is accomplished here via the S-Video connector on the computer.

Please note the Debian/unstable/ppc packages being used for screen cloning to a TV set as reported here, have been fresh as of around June 10 2008.

A color video as being played here with mplayer on the laptop, seen on the telly, if the LCD is switched off:

(The girl is Kellemarie, from a video that was available via http://www.goodmagazine.com/section/Transparency/Internet_Porn – and no, it’s no porn video … :)

Cloning was done like along the line of that:

1:
xrandr –output S-video –set load_detection 1

2:
xrandr –output S-video –set tv_standard pal

3:
xrandr –addmode S-video 800×600

4:
xrandr –output S-video –off

5:
xrandr –output S-video –mode 800×600

Seems one can omit step 4.

An S-video to composite adapter was used (see http://www0.info.apple.com/images/kbase/33001/33001_23.gif for more), which was connected via an adapter to a SCART cable. The latter connected to a rather cheap 800×600 PAL color TV set. I’m no sure whether this device is really an 800×600 one. But at least it works with these values given to xrandr.

Sound for the movie was played on the notebook, due to the fact the audio out connector on the Apple PowerBook is not installed near the S-video out port on the same side of the machine, but on the opposite one. Which leaves the audio adapter cable, that is connected to the SCART cable to the TV set, too short to reach the audio out port.

Note: to get the complete LCD screen to the external screen (VGA or TV-set): I switch off my LCD:

xrandr –output LVDS –off

and after that the screen on the VGA/TV is complete. On the TV-set, that is, nearly complete: its corners are rounded, contrary to the LCD, where they’re angular.

Connecting the notebook to an external VGA

Two scenarios are being discussed here:

  • Setting the LCD screen to the largest possible common mode with the VGA
  • Setting the VGA to its largest mode

The first option implies the possibility of having both screens switched on, with the drawback of a somewhat reduced picture quality at least for the now lower moded LCD screen, where fonts now look fuzzy, and the whole screen is considerably smaller. That is, the LCD picture is looking a bit ugly now. Please have a look at the output of "xrandr -q" below for the highest possible common mode for both screens, which in that case is "1280 x 800"
These are the commands executed on the notebook:

xrandr –output LVDS –mode 1280×800
xrandr –output DVI-0 –auto

Result:

$ xrandr -q
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 2720 x 1024
LVDS connected 1280×800+0+0 (normal left inverted right x axis
y axis) 321mm x 214mm
1440×960 59.9 +
1280×800 60.0*
1280×768 60.0
1024×768 60.0
800×600 60.3
640×480 59.9
DVI-0 connected 1280×1024+0+0 (normal left inverted right x axis
y axis) 300mm x 225mm
1280×1024 60.0*
1280×960 59.9
1280×800 60.0
1280×768 60.0
1024×768 85.0 84.9 75.1 70.1 60.0
800×600 84.9 85.1 75.0 60.3
640×480 85.0 84.6 75.0 60.0 59.9
720×400 70.1
S-video connected (normal left inverted right x axis y axis)
800×600 59.9 + 60.3

Please note that the VGA is in its highest possible mode, i.e. '1280×1024', while the notebook screen is not.

If you don’t like the reduced mode on your notebook screen, simply switch it off while the VGA attached to it is on. This latter approach might also be useful if parts of the LCD display are missing on the VGA.

Please note there’s much more you might want to try with this new driver. Please ask a search engine on that, something like this, perhaps …
'man {xrandr,radeon}' might be useful, too.

Thanks:
Michel Dänzer
Brice Goglin
Xavier Bestel
Everyone out there who made this new software possible

kmix – stopping the OSD popups

Took me some time to find how to stop the on-screen pop-up’s when changing the volume on KDE:

Finding KMilo and stopping/disabling it did the trick:
KDE Control center –> KDE Components –> Service Manager

And gtkpbbuttons OSD’s do the same as the ones from KMilo – except that the former look better … :)