OCT
30
2005

Guidance, displayconfig and eye candy

I've finally been able to put some much needed time in displayconfig, the screen/monitor/X11 configuration part of Guidance. Other things like writing a paper about Python, Qt and KDE for this NLUUG conference next month kept me distracted. I've now got some eye candy that I can show-and-tell at the end of this post.

One of the goals of displayconfig is to support dual-head configurations. This required a lot of hard work to come up with a structure or framework that would support this in addition to the much easier common case of single-head. Why is X11 configuration so hard? I hear you ask. For a start you want to be able to show the user the hardware in their system (gfx card and monitors) and let them tweak and select drivers, gfx card models and monitor models if they want to. This needs to be possible reguardless of how screwed up /etc/X11/xorg.conf is. This means hardware detection. And for the most part this means scanning the PCI bus and using datafiles of PCI, gfx card and monitor information to decode what is there, and also to detect things like dual-head capable gfx cards. Currently Mandriva have the best and most complete datafiles in their ldetect-lst package.

The next problem is that object model that /etc/X11/xorg.conf uses is different than how the graphics hardware is organised internally, which makes bridging these two viewpoints quite tricky at times. Yet another problem is that there are different flavours of dual-head with different capabilities and which require different sections and layouts inside /etc/X11/xorg.conf. It isn't as simple as placing a "Option dualhead on" line in /etc/X11/xorg.conf.

Finally, you also want to be able to use RandR when available to change the screen resolution and rotation on the fly without having to restart the X server. This also means that normal uses should be able configure their screen, while the administrator can configure the drivers and the default screen settings for everyone. The good news is that most of painful work has been done for implementing a sane layer to support all of this.

Now, that eye candy I promised. Displayconfig also supports normal single-head configurations as well as screen rotation and reflections where available. Of course you need funky preview showing what the user is going to get. And here it is:

The older version of this preview had some problems. It was implemented using widgets and layouts, and would stretch the dialog layout at times. This new version handles all drawing itself and composites each element of the preview on the fly. Notice how the window and kmenu change relative positions. I'm not just scaling a simple picture here. I'm compositing the screen background, window, kmenu and clock all separately. It is still fake of course but it should give the user a good impression of what they are going to get.

Comments

Will this support multiple graphics cards? At work I have two Matrox cards and three monitors (currently running Windows). I'd love to be able to get that running on Linux without editing xorg.conf by hand.


By stonedyak at Sun, 10/30/2005 - 12:17

The current goal is single-head followed by dual-head support. Sebas and I have access to ATI and NVidia dualhead gfx cards and monitors which means it is just a matter of time and work. Triple head is kind of tough since we don't have the hardware around for it. I would also like to get my hands on a PCI gfx card for testing purposes.

I'm not against the idea, it just a bit tricky to do right now.

--
Simon


By simon edwards at Mon, 10/31/2005 - 07:39

Hi!
If I remember correctly, I still have some old PCI gfx card laying around.
Maybe I could help you out with this?
(If sending the card doesn't cost more than buying one for yourself)
Please send me a mail to segfault_ii AT web DOT de if you're interested.
Meanwhile I will look after this gfx card.

Update:
I found 2 PCI gfx cards:
- Hercules Stingray64 (Chip: ARK200PV, Guessed 1 MB Memory)
- Diamond Stealth 64 (Chip: S3 Trio64, 2 Memory MB)

Please write me if you are interested.

2nd Update:
A friend who is interested in further improvements in Linux/KDE as well just offered his old PCI based Nvidia TNT2 Card.
So we could send you 3 PCI gfx cards.


By Christian Nitschkowski at Mon, 10/31/2005 - 10:44

Hey,

Some PCI cards and exotic chipsets would be a big help. Also AGP cards with exotic chipsets are interesting. Here is the list of Xorg drivers and what I've got covered:

ati - run one of these right now. :) (dual capable too)

glint -

vga - every card supports this.

apm -

ark - Barefooted's Hercules Stingray64 uses this.

chips -

cirrus -

cyrix - embedded/integrated???

glide -

i128 - embedded/integrated???

i740 - embedded/integrated???

i810 - embedded/integrated???

imstt -

mga - Sebas has a Matrox G450, so this covered.

neomagic -

newport -

nv - Got an AGP (1.0) TNT and a AGP Gforce 2 here, but PCI nvidia would be nice too for testing. Especially since everything second card that people have is an NVidia.

rendition -

r128 -

radeon -

vesa - like vga

s3 - Barefooted's Diamond Stealth 64 uses this.

s3virge -

savage -

siliconmotion -

sis -

tdfx -

tga -

trident -

tseng -

A lot of these chipsets are ancient history now. And a lot of the ones left over only show up in laptops and integrated motherboards.

I'm located in the Netherlands if anyone is interested. :-)

cheers,

--
Simon


By simon edwards at Mon, 10/31/2005 - 19:43

Should I now send you those cards?
I can't use them here to do any tests with them as I only have a notebook.
And as everybody knows, Notebooks don't have that many PCI slots ;-)


By Christian Nitschkowski at Mon, 10/31/2005 - 20:55

I sent you an email, which you should have by now.

I just found out that I can get a S3 based card in the neighborhood. (so I don't need the Diamond Stealth 64, assuming this other S3 works)

--
Simon


By simon edwards at Mon, 10/31/2005 - 22:02

I got and answered your eMail.
My bogofilter thought it would be SPAM and put it in my SPAM-folder :-)
I told it it would be HAM, so I hope your next mail won't hit bogofilter again.


By Christian Nitschkowski at Mon, 10/31/2005 - 22:20

I still have an ancient ATI Rage (PCI) here collecting dust.
If you ever come near Enschede, let me know.


By Thomas Zander at Tue, 11/08/2005 - 15:19

What do you think about using elektra instead of the xorg.conf.
Please have a look at:

http://lwn.net/Articles/113279/

and

http://www.libelektra.org

Maybe also interesting for other parts of guidance.


By kabelkasper at Mon, 10/31/2005 - 12:16

yes, I've heard about Elektra. The only problem is that it doesn't really help with the hard parts of dealing with X configuration, hardware detection and know what to put where in xorg.conf to get things working. Reading and writing xorg.conf is the easy part.

cheers,
--
Simon


By simon edwards at Mon, 10/31/2005 - 22:13