creative labs can lick my fucking bag.
CTSOUND was the only thing that didn’t work after i upgraded to OpenSuSE 11.0 this morning.
after a bit of trial and error, i seem to have gotten the whole thing sorted out. i’m at work, so i have no way of knowing whether audio is working or not, but the thing does load the driver and it doesn’t shit itself when it does so. it also correctly invokes alsa, so that leads me to believe it’s all working. i’ll find out in an hour and a half.
first, creative used the deprecated (as of kernel 2.6.22*) constant SA_SHIRQ in ~/drivers/src/ossrv/LinuxSys.c, which I changed to IRQF_SHARED. While I was in there, I added an include for linux/fs.h directly below linux/delay.h.
When I ./configure-ed the driver, it didn’t correctly detect gcc:
ARCH = x86_64
gcc_ver_maj = Linux)
compiler = gccLinux)
passing the version when executing ./configure CC=gcc-4.3 configured it as:
ARCH = x86_64
gcc_ver_maj = Linux)
compiler = gcc-4.3Linux)
which also doesn’t work, since creative relies on the gcc version matching their directory structure..i.e.: there is no ~/drivers/arch/gccLinux) or ~/drivers/arch/gcc-4.3Linux) so the build will fail at this point.
I manually edited Makefile.conf to indicate:
ARCH = x86_64
gcc_ver_maj = Linux
compiler = gcc4
I also needed to temporarily adjust /usr/src/linux-’whatever’/scripts/Makefile.build:
Commenting out this entire section fixed it.
# If the save-* variables changed error out
ifeq ($(KBUILD_NOPEDANTIC),)
ifneq (“$(save-cflags)”,”$(CFLAGS)”)
$(error CFLAGS was changed in “$(kbuild-file)”. Fix it to use EXTRA_CFLAGS)
endif
endif
following this with a nice make && make install led to a successful build and installation for me. yay.
*EDIT: It does indeed work. There’s some static/scratchiness when playing MP3s, but ogg/flac files are fine.*

