Comments for Open Aureal Linux Driver

27 May 2004 17:12 ruju

Re: Can anyone get this to compile on newer Linux distros?
Hmm, replying to myself...
The object file(s) are of course one of these: asp10.o asp20.o asp30.o

26 May 2004 15:24 ruju

Re: Can anyone get this to compile on newer Linux distros?


>

> Well, I'm trying to get aureal sound

> with mandrake 9.2.

>

>

> Without any change to the original files

> it compiles (with a few "warning:

> dereferencing type-punned pointer will

> break strict-aliasing rules").

>

> Some of the changes described in the

> diff provided by Carl do work for me

> (but only remove warnings), but if I

> apply the changes to lines 620 and 630

> in au_audio.c it does not compile any

> more, so I just did not use these.

>

> The problem is that I don't succeed in

> forcing the module insertion. When I

> type "insmod -f au8830.o", I get the

> following error:

>

> Warning: The module you are trying to

> load (./au8830.o) is compiled with a

> gcc

> version 2 compiler, while the kernel you

> are running is compiled with

> a gcc version 3 compiler. This is known

> to not work.

> ./au8830.o: unresolved symbol

> register_sound_special_Rdc04ac01

> ./au8830.o: unresolved symbol

> unregister_sound_mixer_R7afc9d8a

> ./au8830.o: unresolved symbol

> register_sound_dsp_Re73c7876

> ./au8830.o: unresolved symbol

> register_sound_midi_R0ad4778d

> ./au8830.o: unresolved symbol

> register_sound_mixer_Rd4e85ca1

> ./au8830.o: unresolved symbol

> unregister_sound_dsp_Rcd083b10

> ./au8830.o: unresolved symbol

> unregister_sound_special_R99c95fa5

> ./au8830.o: unresolved symbol

> unregister_sound_midi_Rfdab6de3

> ./au8830.o:

> Hint: You are trying to load a module

> without a GPL compatible license

> and it has unresolved symbols.

> Contact the module supplier for

> assistance, only they can help

> you.

>

>

> Or maybe someone here can? ;)

>

> Gildas

In case you haven't fixed it by now...

Load the object file in a binary editor (emacs and hexl-mode works fine) and find all "gcc2" and change them to "gcc3".

Worked for me on Suse 8.2. YMMV. HTH.

15 Mar 2004 07:55 gildasbayard

go for the ALSA drivers
Simply following the instructions from the ALSA project (http://www.alsa-project.org/) I successfully installed my Diamond MX300 soundcard (aureal 8830 chipset) under Mandrake 9.2.

Give it a try!

Gildas

15 Mar 2004 06:05 gildasbayard

Re: Can anyone get this to compile on newer Linux distros?

Well, I'm trying to get aureal sound with mandrake 9.2.


Without any change to the original files it compiles (with a few "warning: dereferencing type-punned pointer will break strict-aliasing rules").

Some of the changes described in the diff provided by Carl do work for me (but only remove warnings), but if I apply the changes to lines 620 and 630 in au_audio.c it does not compile any more, so I just did not use these.

The problem is that I don't succeed in forcing the module insertion. When I type "insmod -f au8830.o", I get the following error:

Warning: The module you are trying to load (./au8830.o) is compiled with a gcc
version 2 compiler, while the kernel you are running is compiled with
a gcc version 3 compiler. This is known to not work.
./au8830.o: unresolved symbol register_sound_special_Rdc04ac01
./au8830.o: unresolved symbol unregister_sound_mixer_R7afc9d8a
./au8830.o: unresolved symbol register_sound_dsp_Re73c7876
./au8830.o: unresolved symbol register_sound_midi_R0ad4778d
./au8830.o: unresolved symbol register_sound_mixer_Rd4e85ca1
./au8830.o: unresolved symbol unregister_sound_dsp_Rcd083b10
./au8830.o: unresolved symbol unregister_sound_special_R99c95fa5
./au8830.o: unresolved symbol unregister_sound_midi_Rfdab6de3
./au8830.o:
Hint: You are trying to load a module without a GPL compatible license
and it has unresolved symbols. Contact the module supplier for
assistance, only they can help you.


Or maybe someone here can? ;)

Gildas

01 Mar 2004 13:05 robhagopian

Re: Can anyone get this to compile on newer Linux distros?
*grumble* lousy HTML escaping...

that should say:

#include <malloc.h>
to
#include <slab.h>

01 Mar 2004 13:03 robhagopian

Re: Can anyone get this to compile on newer Linux distros?
Download, untar, and 'cd aureal'

1. Edit the file au_audio.c - change lines 620 AND 630 from:
if (remap_page_range(vma->vm_start, ...
to
if (remap_page_range(vma, vma->vm_start, ...
(i.e. insert a new 'vma, ' for the first argument)


2. Edit the file au_audio.c - change line 66 from:
#include
to
#include

then make as per the instructions. The resulting module must be installed by doing an 'insmod -f ./au88x0.o'.

The other one (-m vs -mcpu=) is in the Makefile (line 75) but it's not *required* now...

-Rob

> maybe somebody could post a complete
> setup for those of us who aren't
> programmers.
>
>
> % Thanks for the diffs for compiling
> the
> % driver!
> %
> % With a insmod -f i made it work on my
> % system.
> %
> % Leander
> %
>
>
>


08 Feb 2004 12:54 crossconnects

Re: Can anyone get this to compile on newer Linux distros?
maybe somebody could post a complete setup for those of us who aren't programmers.


> Thanks for the diffs for compiling the
> driver!
>
> With a insmod -f i made it work on my
> system.
>
> Leander
>


01 Feb 2004 06:54 maxleo

Re: Can anyone get this to compile on newer Linux distros?
Thanks for the diffs for compiling the driver!

With a insmod -f i made it work on my system.

Leander

11 Jan 2004 17:11 carlr

Re: Can anyone get this to compile on newer Linux distros?

>
>
> I have compiled and installed the au8820
> module. I have fixed an incorrect(old
> style) calling of remap_page_range() in
> au_audio.c:
> $ diff au_audio.c au_audio.c.ORIG
>
> 620c620
> vm_start,
> virt_to_phys(stream->dmabuf), size,
> vma->vm_page_prot))
>
> ---
> > if (remap_page_range(vma->vm_start,
> virt_to_phys(stream->dmabuf), size,
> vma->vm_page_prot))
>
>
> 630c630
>
> vma->vm_start,
> virt_to_phys(stream->dmabuf), size,
> vma->vm_page_prot))
>
> ---
> > if (remap_page_range(vma->vm_start,
> virt_to_phys(stream->dmabuf), size,
> vma->vm_page_prot))
>
>
>
>
>
> My box is running CERN RedHat 7.3.3
> with 2.4.20-18.7.cern kernel.

Following up to ni's email.

I think I need asp10.o asp20.o asp30.o
built with gcc 3 - can anybody help?

I'm running a system with an au8830 chip with
Redhat 9. I picked up the 1.1.2 version of the au88xx driver.
Based on this comment thread and error messages from builds, I made the following changes to my 1.1.2 source:

diff Makefile Makefile.orig
75c75

---
> CFLAGS = -D__KERNEL__ $(AUSMP) -DMODULE -D$(AUCHIP) -m$(CFCPU) $(CFDEBUG) $(CFOPT) -Wall -pipe $(INCLUDEDIRS)
======================================
diff au_audio.c au_audio.c.orig
620c620
vm_start, virt_to_phys(stream->dmabuf), size, vma->vm_page_prot))
---
> if (remap_page_range(vma->vm_start, virt_to_phys(stream->dmabuf), size, vma->vm_page_prot))
630c630
vm_start, virt_to_phys(stream->dmabuf), size, vma->vm_page_prot))
---
> if (remap_page_range(vma->vm_start, virt_to_phys(stream->dmabuf), size, vma->vm_page_prot))
962d961

=======================================
diff au_vortex.h au_vortex.h.orig
66c66

---
> #include <linux/malloc.h>

===============================
With these changes the driver compiles. However it doesn't load.

The make log is

cc -D__KERNEL__ -DMODULE -DAU8830 -mcpu=pentium -O6 -fomit-frame-pointer -Wall
-pipe -I/usr/src/linux/include -c -o au_audio.o au_audio.c
cc -D__KERNEL__ -DMODULE -DAU8830 -mcpu=pentium -O6 -fomit-frame-pointer -Wall
-pipe -I/usr/src/linux/include -c -o au_midi.o au_midi.c
cc -D__KERNEL__ -DMODULE -DAU8830 -mcpu=pentium -O6 -fomit-frame-pointer -Wall
-pipe -I/usr/src/linux/include -c -o au_core.o au_core.c
cc -D__KERNEL__ -DMODULE -DAU8830 -mcpu=pentium -O6 -fomit-frame-pointer -Wall
-pipe -I/usr/src/linux/include -c -o au_sndstat.o au_sndstat.c
cc -D__KERNEL__ -DMODULE -DAU8830 -mcpu=pentium -O6 -fomit-frame-pointer -Wall
-pipe -I/usr/src/linux/include -c -o au_mixer.o au_mixer.c
cc -D__KERNEL__ -DMODULE -DAU8830 -mcpu=pentium -O6 -fomit-frame-pointer -Wall
-pipe -I/usr/src/linux/include -c -o au_utils.o au_utils.c
cc -D__KERNEL__ -DMODULE -DAU8830 -mcpu=pentium -O6 -fomit-frame-pointer -Wall
-pipe -I/usr/src/linux/include -c -o au_vortex.o au_vortex.c
ld -m elf_i386 -r au_audio.o au_midi.o au_core.o au_sndstat.o au_mixer.o au_util
s.o au_vortex.o asp30.o -o au8830.o
mv -f /etc/modules.conf /etc/modules.conf.old
gawk -f mod_conf /etc/modules.conf.old > /etc/modules.conf
echo "alias sound au8830" >> /etc/modules.conf
echo "alias midi au8830" >> /etc/modules.conf
mkdir -p /lib/modules/2.4.20-8/misc
cp -f au8830.o /lib/modules/2.4.20-8/misc
/sbin/depmod -a
/sbin/rmmod au8830
rmmod: module au8830 is not loaded
make: [install] Error 1 (ignored)
/sbin/modprobe au8830
/lib/modules/2.4.20-8/misc/au8830.o: The module you are trying to load (/lib/mod
ules/2.4.20-8/misc/au8830.o) is compiled with a gcc
version 2 compiler, while the kernel you are running is compiled with
a gcc version 3 compiler. This is known to not work.
/lib/modules/2.4.20-8/misc/au8830.o: insmod /lib/modules/2.4.20-8/misc/au8830.o
failed
/lib/modules/2.4.20-8/misc/au8830.o: insmod au8830 failed

rpm -q gcc
gcc-3.2.2-5

So I think the problem is the asp10.o asp20.o asp30.o
files. I looked in cvs and the version is the same
as provided in au88xx-1.1.2

If this is correct, can someone supply me with
a set of asp10.o asp20.o asp30.o that can build
a au8830.o that will load and run with a 2.4.20-8
kernel and RedHat 9.0

Thanks for any help

Carl

31 Aug 2003 08:54 nida

Re: Can anyone get this to compile on newer Linux distros?

> NOTE: If anyone has had sucess with
> this, I would be willing to assist them
> in documenting HOW it was done, and
> perhaps re-posting any that and any
> modified files required. I finally was
> able to get windows off this nice little
> sony machine...so now I can rip/burn,
> but can't listen... :(


I have compiled and installed the au8820 module. I have fixed an incorrect(old style) calling of remap_page_range() in au_audio.c:
$ diff au_audio.c au_audio.c.ORIG
620c620
vm_start, virt_to_phys(stream->dmabuf), size, vma->vm_page_prot))
---
> if (remap_page_range(vma->vm_start, virt_to_phys(stream->dmabuf), size, vma->vm_page_prot))
630c630
vm_start, virt_to_phys(stream->dmabuf), size, vma->vm_page_prot))
---
> if (remap_page_range(vma->vm_start, virt_to_phys(stream->dmabuf), size, vma->vm_page_prot))

My box is running CERN RedHat 7.3.3 with 2.4.20-18.7.cern kernel.

Screenshot

Project Spotlight

ReciJournal

An open, cross-platform journaling program.

Screenshot

Project Spotlight

Veusz

A scientific plotting package.