[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Wrestling with NVIDIA (still!)

I have a reasonably-stable situation with nvidia graphics, based on the "2.4.29-f3" kernel and the nvidia-glx-6111.debs. Sound, however, still escapes me. I don't see a '.deb" that includes it, and the NFORCE installer from nVidia fails with the following compile errors:

Performing cc_version_check with CC="cc".
-> running command /bin/grep "^PATCHLEVEL ="
  /usr/src/kernel-headers-2.4.29-f3/Makefile | /usr/bin/cut -d " " -f 3
-> Kernel module filename is nvsound.o
  Cleaning kernel module build directory.
  executing: 'cd ./nvsound/main; make clean'...
  rm -f nv*.o *~ core
-> Building kernel module:
executing: 'cd ./nvsound/main; make module SYSSRC=/usr/src/kernel-headers-2.
cc -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-co mmon -fomit-frame-pointer -I/lib/modules/2.4.29-f3/build/include -O -mprefe rred-stack-boundary=2 -march=i686 -D__KERNEL__ -DMODULE -DLINUX -I. -
  c -o nvmain.o nvmain.c
  In file included from /usr/include/asm/system.h:5,
                   from /usr/include/asm/processor.h:18,
                   from /usr/include/asm/thread_info.h:13,
                   from /usr/include/linux/thread_info.h:21,
                   from /usr/include/linux/spinlock.h:19,
                   from /usr/include/linux/capability.h:45,
                   from /usr/include/linux/sched.h:7,
                   from /usr/include/linux/module.h:10,
                   from nvmain.c:12:
  /usr/include/linux/kernel.h:72: error: parse error before "size_t"
  /usr/include/linux/kernel.h:74: error: parse error before "size_t"

And many more following.

The indicated area of "/usr/include/linux/kernel.h" looks like this: [starting at line#69]

extern int sprintf(char * buf, const char * fmt, ...)
   __attribute__ ((format (printf, 2, 3)));
extern int vsprintf(char *buf, const char *, va_list);
extern int snprintf(char * buf, size_t size, const char * fmt, ...)
   __attribute__ ((format (printf, 3, 4)));
extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);

extern int sscanf(const char *, const char *, ...)
   __attribute__ ((format (scanf,2,3)));
extern int vsscanf(const char *, const char *, va_list);

The construct ", ...)" is a new one for me! It was a long while ago I learned 'C' and that wasn't part of it then.

One thing that seems strange: "/usr/include/linux/" is not a link, thus it is not version-specific. Should not the build procedure be picking up its headers from "/usr/src/linux [a symlink]" or "/usr/src/kernel-headers-$(uname -r)" ? One would expect some version differences in there! But then, again, I don't know and I want a load of less sensitive hacking before I muck about in my kernel. Ideally, there would be a reverse-engineered sound driver to do the job the way 'forcedeth' does for nvnet. If anyone knows where to find such a beast, I'd love to hear about it.

David A. Cobb, Software Engineer, Public Access Advocate
"By God's Grace, I am a Christian man; by my actions a great sinner." -- The Way of a Pilgrim: R.French, Tr.
Life is too short to tolerate crappy software!

Reply to: