I wanted to do this a long ago, but a lot of things prevented me from doing it. Yesterday I had many many kernel compile sessions, image restore and reconfiguration. But all of them ended in disk corruption during ubuntu-desktop install in UML (chrooted env was OK).
So today I got the default kernel config from my Ubuntu 9.10, made some nice changes (see below), had a nice chat with GDM (does not like me so far) and...
This is Gnome session from Karmic 9.10 running in UML connected to separate X server running at host computer. Unfortunately, Xnest does not work in such conditions generously exiting on
X Error of failed request: BadDrawable (invalid Pixmap or Window parameter) Major opcode of failed request: 70 (X_PolyFillRectangle) Resource id in failed request: 0x0 Serial number of failed request: 51056 Current serial number in output stream: 51056
The nice changes included: Virtual block device was not compiled in by default, right, no support for virtual hard drive - CONFIG_BLK_DEV_UBD :). Additionally, MAKE SURE that you have CONFIG_HIGHMEM disabled - will not compile otherwise. CONFIG_BLK_DEV_UBD_SYNC MUST BE enabled, otherwise you will get the same filesystem corruption I tried to battle for several hours.
You might also need a set of patches for various compile-time errors. I have no idea why they were not included in the tree, but... The actual set of the links to patches will be provided here once I get to recompile the vanilla kernel again with a customized config to exclude the hardware that cannot be physically present in UML instance.
So far I am happy.