site  contact  subhomenews

Compiling Xorg Nouveau driver

January 13, 2010 — BarryK
This has turned up some interesting stuff. I got xf86-video-nouveau from git, dated 2010-01-12.

util-macros
I had trouble configuring, then found that this package is required. I have installed version 1.4.1. I'll make sure that this is in the Quirky 'devx'.

aclocal
When I ran 'autogen.sh', to generate the 'configure' script, there was an error:

./configure: line 10956: syntax error near unexpected token `RANDR,'
./configure: line 10956: `XORG_DRIVER_CHECK_EXT(RANDR, randrproto)'


I found the reason here:

http://nouveau.freedesktop.org/wiki/FAQ#head-6f41727cc579ed3d7f42d67328466e2acbda9fc4

I created a file /usr/share/aclocal/dirlist, with this in it:

/usr/X11R7/share/aclocal

I have put this fix into the 'rootfs-skeleton' in Woof.

libdrm_nouveau
autogen.sh still gave an error:

checking for LIBDRM_NOUVEAU... configure: error: Package requirements (libdrm_nouveau) were not met:
No package 'libdrm_nouveau' found


...this is supposed to be part of package 'libdrm', that I do have installed. Hmmm. Ok, I am compiling libdrm, version 2.4.17 (the latest, 20 dec 2009):

UPDATE 13Jan2010: need CFLAGS to make it compile libdrm_intel:

# CFLAGS="-march=i486" ./configure --prefix=/usr/X11R7 --sysconfdir=/etc --localstatedir=/var --build=i486-t2-linux-gnu --enable-nouveau-experimental-api --enable-radeon-experimental-api --with-kernel-source=/usr/src/linux-2.6.31.5 --enable-intel
# make
# new2dir make install


xf86-video-nouveau 2010-01-12
We should be good to go now:

# ./autogen.sh
# ./configure --prefix=/usr/X11R7 --sysconfdir=/etc --localstatedir=/var --build=i486-t2-linux-gnu
# make


oh crap...
nv_accel_common.c: In function 'NVAccelInit2D_NV50':
nv_accel_common.c:470: error: 'NV50_2D_CLIP_ENABLE' undeclared


...I looked in an older version of xf86-video-nouveau and the actual numeric value is used, which I have substituted. It looks like the developers have some extra header file that I don't have.

But then it stops again, more undefined symbols. These symbols are undefined anywhere, can't find them by googling either:

nv10_exa.c: In function 'setup_combiners':
nv10_exa.c:493: error: 'NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE0' undeclared (first use in this function)
nv10_exa.c:493: error: (Each undeclared identifier is reported only once
nv10_exa.c:493: error: for each function it appears in.)
nv10_exa.c:495: error: 'NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT' undeclared (first use in this function)
nv10_exa.c:498: error: 'NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE1' undeclared (first use in this function)
nv10_exa.c:500: error: 'NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT' undeclared (first use in this function)


The file 'nv10_exa.c' has had a lot of work done on it recently. So, it's another case of the developers having the definitions of those symbols, but not me.

Finally...
Oh, man, it took me awhile. I tried several different versions of xf86-video-nouveau. I got some courtesy of the Arch guys:

http://mirror.leaseweb.com/archlinux/other/xf86-video-nouveau/

I tried most of them, got different errors. Finally, I tried 'xf86-video-nouveau-20091221.tar.bz2' and finally, it compiled. Yippee. It has to be the right versions of everything, and I finally got it. My guess is that libdrm is being developed in-step, so you must have the right version of libdrm.

Comments

update libdrm on oldiers Puppies ?
Username: charlie6
Hi Barry, ...sorry if my question looks a bit trivial... [code]so you must have the right version of libdrm.[/code] Should libdrm be updated on Puppies like 4.1.2; 4.20, 4.3.1, and oldiers...? Many thanks for your time ! Charlie

update libdrm on oldiers Puppies ?
Username: charlie6
"Hi Barry, ...sorry if my question looks a bit trivial... [code]so you must have the right version of libdrm.[/code] Should libdrm be updated on Puppies like 4.1.2; 4.20, 4.3.1, and oldiers...? Many thanks for your time ! Charlie


Tags: quirky