Gentoo - Xorg 6.8.99 on Dell Inspiron 630m
Last updated: 13th April 2006
This is a bit of legacy info about Xorg 6.8.99 as both 6.9.0 and the new modular Xorg (7.0-r1) both support the i915 chipset natively and no longer need to be patched. I've retained this info as I know some people are forced into running 6.8.99 for political reasons :-)
For more up-to-date info on Xorg 6.9 (and soon 7.0) see the main Gentoo on Dell Inspiron 630m page.
Xorg is usually quite painless, however a couple of issues cropped up during this install.
Xorg 220.127.116.11-r4 does not like -Os!
Most of the software - with the notable exception of Xorg - has been compiled with the "Optimise for size" flag set, simply due to the reduced memory footprint this produces. However, Xorg segfaults on load if it's compiled with -Os, so it is the only package built with -O2. This worked fine.
i915 chipset graphics
Some things to note:
- The chipset BIOS does not natively support wierd and wonderful resolutions such as 1280x800 (i.e. the laptop's native resolution)
- Support for the i915-series is only available in the very latest (masked, unstable) versions of xorg in portage
- DRI support works but not out-of-the-box, hence it needs kicking a bit.
- Xorg 6.8.99.x is masked in portage. You'll need to unmask it manually.
Unmasking the latest v6.x Xorg(updated 14/02/2006)
Xorg 6.8.99 is hard-masked. Do the following to unmask it:
# echo "<x11-base/xorg-x11-7.0" >> /etc/portage/package.unmask
If you're running stable, you'll need to add the unstable keyword to xorg-x11:
# echo "x11-base/xorg-x11 ~x86" >> /etc/portage/package.keywords
Special video modes
To make the chipset's BIOS support non-4:3 resolutions (i.e. the 630m's 1280x800) a very useful gadget called 855resolution needs to be emerged:
# emerge 855resolution -pv
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] sys-apps/855resolution-0.4 6 kB
This gadget allows you to patch the i915 video BIOS with the appropriate mode by replacing one of the existing modes. You can see all the supported VESA modes by issuing the following:
# 855resolution -l
855resolution version 0.4, by Alain Poirier
Chipset: Unknown (id=0x25908086)
VBIOS type: 2
VBIOS Version: 1219
Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
Mode 3c : 1280x800, 8 bits/pixel
Mode 41 : 640x480, 16 bits/pixel
Mode 43 : 800x600, 16 bits/pixel
Mode 45 : 1024x768, 16 bits/pixel
Mode 49 : 1280x1024, 16 bits/pixel
Mode 4b : 1600x1200, 16 bits/pixel
Mode 4d : 1280x800, 16 bits/pixel
Mode 50 : 640x480, 32 bits/pixel
Mode 52 : 800x600, 32 bits/pixel
Mode 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1280x800, 32 bits/pixel
You can see in this listing that the final mode, 5c, has been patched to 1280x800 for use with the 630m's local flat panel.
Note that this only patches the copy of the BIOS that is in RAM, so you (A) don't modify your machine, but (B) have to do this every time you boot. Conveniently, those nice Gentoo folks have an init and config script to do this automagically at boot time. Just modify /etc/conf.d/855resolution:
# Config file for /etc/init.d/855resolution
# Since 855resolution alters the video RAM of your 855 card, it must be run
# on every boot.
# In this file you set which modes are to be replaced with what by the init
# script. The syntax should be self-explaining.
# To find out which modes are available, use "855resolution -l".
# Remember to add 855resolution to your default runlevel:
# rc-update add 855resolution default
# e.g's (it seems for most people 5c defaults to "1920x1440", which
# usually isn't used, so the example uses that one
Once that's done, just add 855resolution to whatever runlevels tend to end up running X:
# rc-update add 855resolution default battery
* 855resolution added to runlevel default
* 855resolution added to runlevel battery
In my xorg.conf, I also added a modeline for the display which probably isn't strictly necessary. I used gtf to generate a custom modeline for 1280x800@60Hz:
# gtf 1280 800 60
# 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
Modeline "1280x800_60.00" 83.46 1280 1344 1480 1680 800 801 804 828 -HSync +Vsync
Even with the unstable build of XOrg, I was not getting direct rendering (DRI) support:
#glxinfo |grep direct
direct rendering: No
OpenGL renderer string: Mesa GLX Indirect
Until something gets done about this upstream in XOrg, I had to resort to making an ebuild overlay as per the instructions in this post on the Gentoo forums.
To save the hassle of having to read the whole post (which is excellent, but requires you to make your own patch files and ebuilds), you can get each of the required files here:
To install the overlay and patches, simply do the following:
Make the appropriate overlay directory:
# mkdir -p /usr/local/portage/x11-base/xorg-x11/files
Edit your /etc/make.conf to ensure you have a portage overlay directory specified. It should read:
Make any necessary changes and save. Now, save the patched xorg-x11-18.104.22.168-r4.ebuild into /usr/local/portage/x11-base/xorg-x11 and the dri-lnx_agp.patch file to /usr/local/portage/x11-base/xorg-x11/files. Once this is done, use the ebuild command to make an up-to-date digest of these new files:
# cd /usr/local/portage/x11-base/xorg-x11
# ebuild xorg-x11-22.214.171.124-r4.ebuild digest
Conveniently, the author of this ebuild has made it easy to switch the modification on and off by the use of a new use flag, dri-patch. You must ensure that this use flag is enabled, either by adding it to make.conf or, preferably, to your /etc/portage/package.use file:
# echo "x11-base/xorg-x11 dri-patch" >> /etc/portage/package.use
Now you can simply emerge XOrg again, restart your X server and DRI should come alive:
# glxinfo |grep direct
direct rendering: Yes
5867 frames in 5.0 seconds = 1173.393 FPS
5942 frames in 5.0 seconds = 1188.339 FPS
5934 frames in 5.0 seconds = 1186.639 FPS
This page was last updated: 13th April 2006 at 10:18am BST