Hi all, This is going to be talking about how to test the newest X.org for your system. I had been having issues with having a GUI on my system on jaunty so had to do the same. Tormod Volden has been pretty helpful to get this working for me.
First some resources
https://launchpad.net/~xorg-edgers/+archive http://lists.ubuntu.com/archives/ubuntu-x/
IRC channel :- @ freenode #ubuntu-xSo from the page https://launchpad.net/~xorg-edgers/+archive here's the list one has to do. Some things could have been explained better which is not therein.
a. First add the Xorg jaunty archives either through System > Administration > Software Sources or /etc/apt/sources.list
deb http://ppa.launchpad.net/xorg-edgers/ubuntu jaunty main
deb-src http://ppa.launchpad.net/xorg-edgers/ubuntu jaunty main b. Then either Reload or run sudo apt-get update
c. Then install drm-modules-source
$ sudo apt-get install drm-modules-source
What works is :-
$ sudo env DRM_MODULES="i915" module-assistant -t auto-install drm-modules
After few minutes you get a drm-modules-2.6.28-2-ub-generic (depending on the kernel chosen)
If not there is a build log which one can use to find out what the issues are at /var/cache/modass/ named something like drm-modules-source kernel-version buildlog (some numbers)
For instance
drm-modules-source.buildlog.2.6.28-2-ub-generic.1228922933
The buildlog would be something like this
/usr/bin/make -C linux-core KERNELDIR=/usr/src/linux KVERREL=2.6.28-2-ub-generic clean
make[1]: Entering directory `/usr/src/modules/drm-modules/linux-core'
rm -rf *.o *.ko dristat drmstat .depend .*.flags .*.d .*.cmd *.mod.c drm_pciids.h .tmp_versions
make[1]: Leaving directory `/usr/src/modules/drm-modules/linux-core'
/usr/bin/make -f debian/rules kdist_clean kdist_config binary-modules
make[1]: Entering directory `/usr/src/modules/drm-modules'
/usr/bin/make -C linux-core KERNELDIR=/usr/src/linux KVERREL=2.6.28-2-ub-generic clean
make[2]: Entering directory `/usr/src/modules/drm-modules/linux-core'
rm -rf *.o *.ko dristat drmstat .depend .*.flags .*.d .*.cmd *.mod.c drm_pciids.h .tmp_versions
make[2]: Leaving directory `/usr/src/modules/drm-modules/linux-core'
for templ in ; do \
cp $templ `echo $templ | sed -e 's/_KVERS_/2.6.28-2-ub-generic/g'` ; \
done
for templ in `ls debian/*.modules.in` ; do \
test -e ${templ%.modules.in}.backup || cp ${templ%.modules.in} ${templ%.modules.in}.backup 2>/dev/null || true; \
sed -e 's/##KVERS##/2.6.28-2-ub-generic/g ;s/#KVERS#/2.6.28-2-ub-generic/g ; s/_KVERS_/2.6.28-2-ub-generic/g ; s/##KDREV##/2.6.28-2.2/g ; s/#KDREV#/2.6.28-2.2/g ; s/_KDREV_/2.6.28-2.2/g ' < $templ > ${templ%.modules.in}; \
done
dh_testroot
dh_clean -k
# Build the modules
/usr/bin/make -C linux-core KERNELDIR=/usr/src/linux KVERREL=2.6.28-2-ub-generic \
EXTRA_CFLAGS=-DGIT_REVISION=\\\"2.4.2~git20081208+modesetting-gem.12e68f80-0ubuntu0tormod\\\"
make[2]: Entering directory `/usr/src/modules/drm-modules/linux-core'
sh ../scripts/create_linux_pci_lists.sh < ../shared-core/drm_pciids.txt
make -C /lib/modules/2.6.28-2-ub-generic/build SUBDIRS=`/bin/pwd` DRMSRCDIR=`/bin/pwd` modules
make[3]: Entering directory `/usr/src/linux-headers-2.6.28-2-ub-generic'
fatal: Not a git repository
CC [M] /usr/src/modules/drm-modules/linux-core/drm_auth.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_bufs.o
/usr/src/modules/drm-modules/linux-core/drm_bufs.c: In function ‘drm_rmmap_locked’:
/usr/src/modules/drm-modules/linux-core/drm_bufs.c:405: warning: enumeration value ‘_DRM_GEM’ not handled in switch
CC [M] /usr/src/modules/drm-modules/linux-core/drm_context.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_dma.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_drawable.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_drv.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_fops.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_ioctl.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_irq.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_lock.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_memory.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_proc.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_stub.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_vm.o
/usr/src/modules/drm-modules/linux-core/drm_vm.c: In function ‘drm_vm_shm_close’:
/usr/src/modules/drm-modules/linux-core/drm_vm.c:252: warning: enumeration value ‘_DRM_GEM’ not handled in switch
CC [M] /usr/src/modules/drm-modules/linux-core/drm_sysfs.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_pci.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_agpsupport.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_scatter.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_memory_debug.o
CC [M] /usr/src/modules/drm-modules/linux-core/ati_pcigart.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_sman.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_hashtab.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_mm.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_compat.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_fence.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_ttm.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_bo.o
/usr/src/modules/drm-modules/linux-core/drm_bo.c: In function ‘drm_bo_delayed_delete’:
/usr/src/modules/drm-modules/linux-core/drm_bo.c:514: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’
CC [M] /usr/src/modules/drm-modules/linux-core/drm_bo_move.o
/usr/src/modules/drm-modules/linux-core/drm_bo_move.c: In function ‘drm_bo_move_zero’:
/usr/src/modules/drm-modules/linux-core/drm_bo_move.c:308: warning: unused variable ‘page’
CC [M] /usr/src/modules/drm-modules/linux-core/drm_crtc.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_edid.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_modes.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_crtc_helper.o
/usr/src/modules/drm-modules/linux-core/drm_crtc_helper.c: In function ‘drm_target_preferred’:
/usr/src/modules/drm-modules/linux-core/drm_crtc_helper.c:249: warning: unused variable ‘preferred’
CC [M] /usr/src/modules/drm-modules/linux-core/drm_regman.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_vm_nopage_compat.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_gem.o
CC [M] /usr/src/modules/drm-modules/linux-core/drm_uncached.o
CC [M] /usr/src/modules/drm-modules/linux-core/i810_drv.o
CC [M] /usr/src/modules/drm-modules/linux-core/i810_dma.o
CC [M] /usr/src/modules/drm-modules/linux-core/mach64_drv.o
CC [M] /usr/src/modules/drm-modules/linux-core/mach64_dma.o
CC [M] /usr/src/modules/drm-modules/linux-core/mach64_irq.o
CC [M] /usr/src/modules/drm-modules/linux-core/mach64_state.o
CC [M] /usr/src/modules/drm-modules/linux-core/mga_drv.o
CC [M] /usr/src/modules/drm-modules/linux-core/mga_dma.o
CC [M] /usr/src/modules/drm-modules/linux-core/mga_state.o
CC [M] /usr/src/modules/drm-modules/linux-core/mga_warp.o
CC [M] /usr/src/modules/drm-modules/linux-core/mga_irq.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_drv.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_state.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_fifo.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_mem.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_object.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_irq.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_notifier.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_swmthd.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_sgdma.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_dma.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_bo.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_fence.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv04_timer.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv04_mc.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv40_mc.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_mc.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv04_fb.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv10_fb.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv40_fb.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv04_fifo.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv10_fifo.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv40_fifo.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_fifo.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv04_graph.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv10_graph.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv20_graph.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv40_graph.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_graph.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv04_instmem.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_instmem.o
CC [M] /usr/src/modules/drm-modules/linux-core/nouveau_bios.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_crtc.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_cursor.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_lut.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_fb.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_output.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_sor.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_dac.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_connector.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_i2c.o
/usr/src/modules/drm-modules/linux-core/nv50_i2c.c: In function ‘nv50_i2c_xfer’:
/usr/src/modules/drm-modules/linux-core/nv50_i2c.c:336: warning: ‘rval’ may be used uninitialized in this function
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_display.o
CC [M] /usr/src/modules/drm-modules/linux-core/nv50_kms_wrapper.o
/usr/src/modules/drm-modules/linux-core/nv50_kms_wrapper.c: In function ‘nv50_kms_crtc_set_config’:
/usr/src/modules/drm-modules/linux-core/nv50_kms_wrapper.c:523: error: ‘struct drm_framebuffer’ has no member named ‘mm_handle’
make[4]: *** [/usr/src/modules/drm-modules/linux-core/nv50_kms_wrapper.o] Error 1
make[3]: *** [_module_/usr/src/modules/drm-modules/linux-core] Error 2
make[3]: Leaving directory `/usr/src/linux-headers-2.6.28-2-ub-generic'
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/usr/src/modules/drm-modules/linux-core'
make[1]: *** [binary-modules] Error 2
make[1]: Leaving directory `/usr/src/modules/drm-modules'
make: *** [kdist_build] Error 2
As can be seen there were errors in making this build.
One thing I didn't know what the drm module I use
Tromod gave this command to try on a stable system to see what module is being used.
As I have Intrepid on another hard disk I tried it on :-
$ lsmod | grep ^drm
drm 86056 3 i915
Now do an upgrade either through the Update manager or through command-line
$ sudo apt-get safe-upgrade
mesa-utils libpixman-1-0 libglu1-mesa xserver-common libx1-dev libdrm-intel1 mesa-common mesa-common-dev xserver-xorg-core libdrm2 libglu1-mesa-dev libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libxi6 xserver-xorg-video-intelRebooted, got the login screen but couldn't get the keyboard or the mouse to function.
Talking with Tromod on IRC came to know that xserver-xorg-input-evdev also needed to be done. Till that time the Warning now shown on Xorg-edgers-archive was not visisble so had to resort to
$ apt-cache policy xserver-xorg-input-evdev
xserver-xorg-input-evdev:
Installed: 1:2.1.0-0ubuntu1
Candidate: 1:2.1.0-0ubuntu1
Version table:
*** 1:2.1.0-0ubuntu1 0
500 http://archive.ubuntu.com jaunty/main Packages
100 /var/lib/dpkg/status
1:2.1.0~git-0ubuntu0tormod 0
500 http://ppa.launchpad.net jaunty/main Packages
xserver-xorg-input-evdev:
Installed: 1:2.1.0~git-0ubuntu0tormod
Candidate: 1:2.1.0-0ubuntu1
Version table:
1:2.1.0-0ubuntu1 0
500 http://archive.ubuntu.com jaunty/main Packages
*** 1:2.1.0~git-0ubuntu0tormod 0
500 http://ppa.launchpad.net jaunty/main Packages
100 /var/lib/dpkg/status
So installed it
$ sudo apt-get install xserver-xorg-input-evdev=1:2.1.0~git-0ubuntu0tormod
The only major annonyance was that while using gnome-terminal whenever I used the up arrow key I would get this error message.
[COLOR=Sienna]no command 33 has been defined [/COLOR] With Metacity written on the window.
Going back to the main archive was a little harder. This you should do after rebooting in an non-GUI single user mode/rescue mode environment.
remove or comment the archive files, remove the drm-modules-2.6.28-2-ub-generic (or whichever kernel version you are trying with) , do an apt-cache policy of each file and get the one which is in archive. For e.g.
$ sudo apt-get install xserver-xorg-input-evdev=1:2.1.0-0ubuntu1