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