Help - Search - Members - Calendar
Full Version: Why The Heck Won't Linux Ply Mp3s Right?
Linuxhelp > Support > Technical Support
EliteX
Ok, I've tried everything I can think of for this problem... nothing works! I have an Opti Audio 16 sound card, it plugs into the ISA slot, and I'm pretty sure it's PnP. I've tried using Totem Media Player, and XMMS to play my mp3s, and they both play the music like a skipping f*cking CD! Can someone PLEASE tell me what my problem is? I use the mad16 module for the sound card. aMSN sounds, system beeps, and anything else play through the speakers, even CDs play through the speakers. Mp3s play through the speakers, but it sounds like complete crap. I'm sure 450MHz is more than enough cpu to play a damn mp3. So, please, someone help me before I throw the computer off of an overpass. Thanks!

Also, can someone tell me how to get Linux to load the mad16 module when it boots, having to do it manually everytime is getting a little annoying. Why didn't they just use **drivers** like Windows? Easy, once its in, its in! Oh well. Thanks again.
hughesjr
To make the module load at startup, edit the file:

/etc/modules

Add a line that says:

mad16

You should be good to go with that.
---------------------------------------
What program are you using to play the MP3s?

You can make sure that your hard drive is using DMA and maybe adjust some other hard drive settings with hdparm.

First make sure you have hdparm installed with this command:

rpm -q hdparm

My result (on my mandrake 9.2 machine) is:
hdparm-5.4-3mdk

If you don't have hdparm, you can install it with the command:

urpmi hdparm

Now issue the command:
hdparm -i /dev/hda

(if your linux drive is different that /dev/hda then use your linux drive).

My result is:
CODE
hdparm -i /dev/hda

/dev/hda:

Model=MDT MD600AB-00BVA0, FwRev=21.01H21, SerialNo=MDT-WLA7EC046042
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=40
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=117231408
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes:  pio0 pio1 pio2 pio3 pio4
DMA modes:  mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=no WriteCache=enabled
Drive conforms to: device does not report version:

* signifies the current active mode
So I am using udma mode 5

Next, do this command

hdparm -v /dev/hda

My results are:
CODE
hdparm -v /dev/hda

/dev/hda:
multcount    = 16 (on)
IO_support   =  1 (32-bit)
unmaskirq    =  1 (on)
using_dma    =  1 (on)
keepsettings =  0 (off)
readonly     =  0 (off)
readahead    = 32 (on)
geometry     = 7297/255/63, sectors = 117231408, start = 0


Next, do this test (3 times to stablize it):

hdparm -t /dev/hda

My 3 results are:
CODE
Timing buffered disk reads:  100 MB in  3.02 seconds =  33.11 MB/sec
Timing buffered disk reads:  100 MB in  3.01 seconds =  33.22 MB/sec
Timing buffered disk reads:  100 MB in  3.01 seconds =  33.22 MB/sec


Please Post all the results and I will write you a script to maximize your hard drive performance...and we'll run the hdparm -t /dev/hda test after we are finished and see if we made it any better.
EliteX
When I open the etc/modules its only a read-only, how do I get access to write to it?

Response for rpm -q hdparm:
hdparm-5.4-3mdk

Response for hdparm -i /dev/hda:
/dev/hda:

Model=WDC AC23200L, FwRev=10.08M11, SerialNo=WD-WT3870407206
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=6296/16/63, TrkSize=57600, SectSize=600, ECCbytes=22
BuffType=DualPortCache, BuffSize=256kB, MaxMultSect=16, MultSect=16
CurCHS=6296/16/63, CurSects=6346368, LBA=yes, LBAsects=6346368
IORDY=on/off, tPIO={min:160,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 *udma2
AdvancedPM=no
Drive conforms to: device does not report version: 1 2 3

* signifies the current active mode

Response for hdparm -v /dev/hda:
/dev/hda:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 787/128/63, sectors = 6346368, start = 0

Response for hdparm -t /dev/hda (3rd time):
/dev/hda:
Timing buffered disk reads: 30 MB in 3.19 seconds = 9.40 MB/sec


I tried Totem Media Player and XMMS to play the mp3s. From comparing your speeds to mine, mine seems slow, why is that and how do I fix it? Sorry about the naughty words by the way, its frustrating, lol.
hughesjr
issue this command at the command line:

hdparm -m16 -c1 -d1 -a32 -u1 -X66 /dev/hda

then do hdparm -t /dev/hda 2 or 3 times and see if it's any better....
EliteX
This is what I got the 3rd time after doing that command:
/dev/hda:
Timing buffered disk reads: 28 MB in 3.01 seconds = 9.30 MB/sec


By the way, I played an mpg video just to see if it would play, using Totem Movie Player, and it played fine. Can you tell me how to be able to edit the /ect/module?
hughesjr
Try as the root user for /etc/modules.

if that doesn't work, then as the root user, type the following command:

chown root:root /etc/modules

chmod 644 /etc/modules


Now try to change the file...

If you have any problems with those commands, post the results of:

ls -al /etc | grep modules
------------------------
Looks like the changes kept your drive's speed similar ... but you should still have smoother performance with those settings.

We should also be able to check your cdrom ... first figure out which drive the cdrom is ... issue the command:

less /etc/fstab

There should be a line that contains cdrom and it shold also have a device name ... probably /dev/hdc or /dev/hdd.

Now post the results from the command (substitute the value from your fstab file if different that /dev/hdc):

hdparm -i /dev/hdc

and

hdparm -v /dev/hdc

After we tune the cdrom settings we can write a start script to always make the adjustments to the drives on startup.
EliteX
Result of -i:
/dev/hdc:

Model=56X CD-ROM, FwRev=VER 6.94, SerialNo=
Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=0kB, MaxMultSect=0
(maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
IORDY=yes, tPIO={min:227,w/IORDY:120}, tDMA={min:120,rec:150}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 *udma2
AdvancedPM=no

* signifies the current active mode

Result of -v:
/dev/hdc:
HDIO_GET_MULTCOUNT failed: Invalid argument
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
HDIO_GETGEO failed: Invalid argument

I pasted the commands for the /etc/modules into the shell and it still opened the file as read-only. I'm trying to use gedit to open it, is that wrong? Is there a way to become root other than the 'su' command? The 'ls' command brought up:
-rw-r--r-- 1 root root 261 Dec 17 03:59 modules
-rw-r--r-- 1 root root 274 Dec 17 04:41 modules.conf
-rw-r--r-- 1 root root 274 Dec 17 04:41 modules.conf.bak
-rw-r--r-- 1 root root 3672 Aug 7 08:16 modules.devfs
hughesjr
The problem with gedit is that you are opening it as your user...not root.

Probably the easiest thing to do is this:

as root in an su window:

just type gedit and press Enter and see if gedit will open as root...if you get an error saying you can't connect to the display, type xhost + followed by enter, then try gedit again .. if it still doesn't work, do this as root...

chmod 777 /etc/modules

then open gedit from the menu and put in the info....

then after saving, do this (as root):

chmod 644 /etc/modules.

For the long term, learning how to use a console editor (like vi) would be good ... you can open files in vi (as root) from within the root terminal window.

-------------------------------------------------------
Now let's create a startup script for the hdparm parameters...

As you normal user, open gedit and paste the following into a text file:

CODE
#!/bin/bash
#
# chkconfig: 2345 95 25
# description: Hard Drive Parameters
#
# processname: drive_parms

# source function library
. /etc/rc.d/init.d/functions

RETVAL=0
prog="drive_parms"

start()
{
    gprintf "Starting %s:" "$prog"
    /sbin/hdparm -m16 -c1 -d1 -a32 -u1 -X66 /dev/hda
    /sbin/hdparm -c1 -d1 -a32 -X66 -u1 /dev/hdc && success "startup" || failure "startup"
    RETVAL=$?
    [ "$RETVAL" = 0 ] && touch /var/lock/subsys/drive_parms
    echo

}

stop()
{
   gprintf "Stopping %s:" "$prog"
   RETVAL=0
   [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/drive_parms
   echo
}

case "$1" in
       start)
               start
             ;;
       stop)
               stop
             ;;
       restart)
               stop
               start
             ;;
       status)
              /sbin/hdparm -v /dev/hda
              /sbin/hdparm -v /dev/hdc
               RETVAL=$?
             ;;
       *)
               gprintf "Usage: %s {start|stop|restart|status}n" "$0"
               RETVAL=1
esac
exit $RETVAL


now save the file to /tmp/drive_parms.

Issue the following commands as root from a terminal window:

chmod 755 /tmp/drive_parms
chown root:root /tmp/drive_parms
mv /tmp/drive_parms /etc/init.d/
cd /etc/init.d
chkconfig --add drive_parms


Now for what each of the commands does:

chmod makes the file executable

chown changes the owner to root so we can make it startup when booting

mv moves the file to the startup/shutdown directory (/etc/init.d)

cd goes to the directory /etc/init.d

chkconfig --add makes drive_parms load on startup.

Now as root type this comand:

/etc/init.d/drive_parms start

It should make the adjustments
EliteX
That seems to have worked. I got the modules edited too, opening gedit from the shell worked. here's what it brought up after the last command, incase you wanted to see. Thanks again:
Starting drive_parms:
/dev/hda:
setting fs readahead to 32
setting 32-bit IO_support flag to 1
setting multcount to 16
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
setting xfermode to 66 (UltraDMA mode2)
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
readahead = 32 (on)

/dev/hdc:
setting fs readahead to 32
setting 32-bit IO_support flag to 1
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
setting xfermode to 66 (UltraDMA mode2)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
readahead = 32 (on)
[ OK ]
EliteX
My mp3s still play slowly, I tried playing them off the hard drive, my zip drive, and my cdrom, and they play slowly no matter what type of media it is. I'm starting to think its my sound card, its old. I'm gonna buy a new sound card and see what happens.
hughesjr
How much RAM do you have?

Do the command:

top

While you are running the mp3 player..

Do you have any swap in use?

Here is my memory info:

CODE
Mem:    774460k total,   246112k used,   528348k free,    17824k buffers
Swap:   506008k total,        0k used,   506008k free,   106368k cached


On the swap line ... 0k used is key...

Here are the top couple processes while I am using totem to play mp3's.

CODE
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
2818 johnny    16   0 35388  34m  12m S 27.0  4.6   2:12.84 totem
2554 root       9   0 98.4m  17m 8456 R  1.6  2.4   0:23.21 X
2967 johnny     9   0  1004 1004  792 S  1.3  0.1   0:03.72 top
3013 root      13   0  1004 1004  792 R  1.3  0.1   0:01.25 top
2969 johnny     9   0 35388  34m  12m S  0.7  4.6   0:00.10 totem


Here is the top screen:

CODE
top - 21:10:14 up  2:12,  4 users,  load average: 0.82, 0.38, 0.15
Tasks:  98 total,   5 running,  93 sleeping,   0 stopped,   0 zombie
Cpu(s):  29.3% user,   3.0% system,   0.0% nice,  67.8% idle
Mem:    774460k total,   246112k used,   528348k free,    17824k buffers
Swap:   506008k total,        0k used,   506008k free,   106368k cached
                                                                               
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
2818 johnny    16   0 35388  34m  12m S 27.0  4.6   2:12.84 totem
2554 root       9   0 98.4m  17m 8456 R  1.6  2.4   0:23.21 X
2967 johnny     9   0  1004 1004  792 S  1.3  0.1   0:03.72 top
3013 root      13   0  1004 1004  792 R  1.3  0.1   0:01.25 top
2969 johnny     9   0 35388  34m  12m S  0.7  4.6   0:00.10 totem
2932 johnny     9   0 12268  11m 7664 S  0.3  1.6   0:01.81 gnome-terminal
   1 root       8   0   500  496  448 S  0.0  0.1   0:05.32 init
   2 root       9   0     0    0    0 S  0.0  0.0   0:00.02 keventd
   3 root       9   0     0    0    0 S  0.0  0.0   0:00.00 kapmd
   4 root      19  19     0    0    0 S  0.0  0.0   0:00.04 ksoftirqd_CPU0
   5 root       9   0     0    0    0 S  0.0  0.0   0:00.00 kswapd
   6 root       9   0     0    0    0 S  0.0  0.0   0:00.00 bdflush
   7 root       9   0     0    0    0 S  0.0  0.0   0:00.00 kupdated
   8 root       9   0     0    0    0 S  0.0  0.0   0:00.00 kinoded
   9 root      -1 -20     0    0    0 S  0.0  0.0   0:00.00 mdrecoveryd
  13 root       9   0     0    0    0 S  0.0  0.0   0:00.06 kjournald
  98 root       8   0  1160 1160  752 S  0.0  0.1   0:00.45 devfsd


After you run top for about 30-40 seconds with nothing going on ... press Ctrl-C to exit and then post that info...

Then start totem and run top again and after 30 seconds or so, Ctrl-C to exit top and paste that info....
EliteX
Before mp3, I have UnrealIRCD, Anope Services and X-Chat running during this:

top - 01:27:02 up 1 day, 7:14, 1 user, load average: 0.45, 0.18, 0.11
Tasks: 84 total, 1 running, 82 sleeping, 0 stopped, 1 zombie
Cpu(s): 6.6% user, 3.0% system, 0.0% nice, 90.5% idle
Mem: 255784k total, 246600k used, 9184k free, 9644k buffers
Swap: 383000k total, 0k used, 383000k free, 103056k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1323 root 15 -10 61228 17m 2668 S 4.5 7.1 28:13.31 X
9601 god 12 0 55800 15m 12m S 1.6 6.2 0:06.38 kdeinit
10389 god 15 0 996 996 792 R 1.6 0.4 0:01.27 top
10336 god 11 0 64804 24m 16m S 1.0 9.8 0:10.24 kdeinit
9458 god 10 0 8800 8796 3304 S 0.6 3.4 0:45.59 wish
9463 god 11 0 56824 16m 13m S 0.6 6.6 4:54.04 kdeinit
1 root 8 0 500 496 448 S 0.0 0.2 0:05.68 init
2 root 9 0 0 0 0 S 0.0 0.0 0:01.01 keventd
3 root 9 0 0 0 0 S 0.0 0.0 0:00.00 kapmd
4 root 19 19 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd_CPU0
5 root 9 0 0 0 0 S 0.0 0.0 0:00.53 kswapd
6 root 9 0 0 0 0 S 0.0 0.0 0:00.00 bdflush
7 root 9 0 0 0 0 S 0.0 0.0 0:00.02 kupdated
8 root 9 0 0 0 0 S 0.0 0.0 0:00.00 kinoded
9 root -1 -20 0 0 0 S 0.0 0.0 0:00.00 mdrecoveryd
10 root 9 0 0 0 0 S 0.0 0.0 0:00.00 kswsuspd
14 root 9 0 0 0 0 S 0.0 0.0 0:00.52 kjournald
99 root 8 0 1176 1176 752 S 0.0 0.5 0:00.99 devfsd




While playing an mp3, also with the above running:
top - 01:31:23 up 1 day, 7:18, 1 user, load average: 0.23, 0.19, 0.11
Tasks: 82 total, 2 running, 79 sleeping, 0 stopped, 1 zombie
Cpu(s): 2.9% user, 3.3% system, 0.0% nice, 93.8% idle
Mem: 255784k total, 246584k used, 9200k free, 8096k buffers
Swap: 383000k total, 0k used, 383000k free, 105292k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9601 god 16 0 55992 15m 12m R 2.3 6.3 0:08.74 kdeinit
10413 god 17 0 1000 1000 792 R 2.0 0.4 0:00.83 top
1323 root 12 -10 61236 17m 2668 S 1.6 7.1 28:23.61 X
9463 god 10 0 56824 16m 13m S 0.3 6.6 4:55.79 kdeinit
1 root 7 0 500 496 448 S 0.0 0.2 0:05.68 init
2 root 9 0 0 0 0 S 0.0 0.0 0:01.01 keventd
3 root 9 0 0 0 0 S 0.0 0.0 0:00.00 kapmd
4 root 19 19 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd_CPU0
5 root 9 0 0 0 0 S 0.0 0.0 0:00.54 kswapd
6 root 9 0 0 0 0 S 0.0 0.0 0:00.00 bdflush
7 root 9 0 0 0 0 S 0.0 0.0 0:00.02 kupdated
8 root 9 0 0 0 0 S 0.0 0.0 0:00.00 kinoded
9 root -1 -20 0 0 0 S 0.0 0.0 0:00.00 mdrecoveryd
10 root 9 0 0 0 0 S 0.0 0.0 0:00.00 kswsuspd
14 root 9 0 0 0 0 S 0.0 0.0 0:00.52 kjournald
99 root 8 0 1176 1176 752 S 0.0 0.5 0:00.99 devfsd
224 root 9 0 0 0 0 S 0.0 0.0 0:00.00 khubd
411 root 9 0 0 0 0 S 0.0 0.0 0:00.51 kjournald
hughesjr
Your not using any swap, 256 mb ram is plenty to be able to play mp3's ... your machine is not highly loaded...I don't see any reason it would not play correctly.

I don't see anything running in your second top post that can play an MP3's ... what are you using?
---------------------------------------------
If you are going to buy a new sound card (and if your board supports PCI cards) I would get a soundbaster PCI 512 ... also known as ct4790. I am using this card in more than 400 machines, it works great ... works easily with Linux and costs < $25. (it isn't the fanciest card, but I have never had a problem with it).

Ebay Search

Refurbished, 1 year warranty

The PCI 128 is also cheap and works well....
EliteX
I was running xmms to play the mp3 in the second 'top' post. I was looking at a cheap sound card at a local computer store, I wanted to ask you if it would work before I buy it, its a "AUREAL PCI AU8810 2-CHANNEL". My machine does support PCI, its just that my ISA sound card was what was laying around when I built it. I've been meaning to upgrade. So, if I'm not using swap, does that mean it is disabled? If so, how do I enable it?
EliteX
Ok, I went ahead and bought the sound card and installed it. Is there a site I can go to that has a list of what modules to use with what sound cards? Or, can you tell me what module to use?
hughesjr
By "not using any swap" what I meant was you didn't have so many things loaded into memory that your computer was using the swap partition.

The purpose of a swap partition is to emulate RAM on the hard drive (if you need more RAM than you have installed). SWAP is extremely slow (compaired to real memory), and should be avoided (if at all possible) by adding more RAM to the system.

You have 256mb RAM ... and no SWAP activity ... which is GOOD!
----------------------------------------------
Not the best card to choose (Info).

What do you see (if anything) under harddrake for soundcards?

When I get back from work, I'll do a little more research and download the cvs version of the drivers from the sourceforge site....
EliteX
When I run sndconfig it tells me my card isn't supported. Is there a 'module' I can add to Linux to make it supported? This is what HardDrake said about the sound card:

Vendor: ?Aureal Semiconductor

Bus: ?PCI

Bus identification: ?12eb:3

Location on the bus: ?0:14:0

Description: ?AU8810 Vortex Digital Audio Processor

Module: ?unknown

Media class: ?MULTIMEDIA_AUDIO
hughesjr
That card is not one of the cards the kernel supports out of the box (the CT4790 I recommended is though)... so, we will have to build the module on your PC.

I downloaded the CVS files and edited the make file so it should compile on Mandrake 9.2. If you ever upgrade the kernel, you will need to recompile the sound drivers ... so keep the aureal directory in /usr/src when you are done.

Download the files I packaged from HERE. (save it in the /tmp directory)

now, in a terminal window, su - root and do following:

mv /tmp/aureal.tgz /
cd /
tar -xvzf aureal
cd /usr/src/aureal


If you made it this far without error, you have the source files necessary to build the driver...

from within the /usr/src/aureal directory (you should be there already if you followed my directions to this point ... issue the pwd command to be sure...) issue this command:

make

If it finishes without error, then type:

make install-all

If that finishes without error, your modules should be loaded and /etc/modules.conf should be edited with the proper driver inserted ... make sure to remove the mad16 info from /etc/modules and /etc/modules.conf...

If everything is good, you should have sound .... then:

rm /aureal.tgz

but keep the /usr/src/aureal for kernel updates ....

if you upgrade your kernel, just go to :

/usr/src/aureal

and as root, issue the following command:

make install-all
EliteX
I got as far as the 'make' command and it came up with this:
[root@localhost aureal]# make
make: /usr/bin/lspci: Command not found
make: /usr/bin/lspci: Command not found
make: /usr/bin/lspci: Command not found
Makefile:123: No Aureal Vortex soundcard detected!
Makefile:124: *** See the "Troubleshooting" of the README file for help. Stop.
hughesjr
OK,

You need to install the package named pciutils. You should be able to install it with this command:

urpmi pciutils

Then continue with the previous instructions...
EliteX
make
gcc -D__KERNEL__ -DMODULE -DAU8810 -mpentiumpro -O6 -fomit-frame-pointer
-Wall -pipe -I/lib/modules/2.4.22-10mdk/build/include -c -o au_audio.o a
u_audio.c
`-mpentiumpro' is deprecated. Use `-march=pentiumpro' or `-mcpu=pentiumpro
' instead.
In file included from au_vortex.h:39,
from au_audio.c:49:
/usr/include/linux/version.h:2:2: #error "================================
======================="
/usr/include/linux/version.h:3:2: #error "You should not include /usr/incl
ude/{linux,asm}/ header"
/usr/include/linux/version.h:4:2: #error "files directly for the compilati
on of kernel modules."
/usr/include/linux/version.h:5:2: #error ""
/usr/include/linux/version.h:6:2: #error "glibc now uses kernel header fil
es from a well-defined"
/usr/include/linux/version.h:7:2: #error "working kernel version (as recom
mended by Linus Torvalds)"
/usr/include/linux/version.h:8:2: #error "These files are glibc internal a
nd may not match the"
/usr/include/linux/version.h:9:2: #error "currently running kernel. They s
hould only be"
/usr/include/linux/version.h:10:2: #error "included via other system heade
r files - user space"
/usr/include/linux/version.h:11:2: #error "programs should not directly in
clude <linux/*.h> or"
/usr/include/linux/version.h:12:2: #error "<asm/*.h> as well."
/usr/include/linux/version.h:13:2: #error ""
/usr/include/linux/version.h:14:2: #error "To build kernel modules please
do the following:"
/usr/include/linux/version.h:15:2: #error ""
/usr/include/linux/version.h:16:2: #error " o Have the kernel sources inst
alled"
/usr/include/linux/version.h:17:2: #error ""
/usr/include/linux/version.h:18:2: #error " o Make sure that the symbolic
link"
/usr/include/linux/version.h:19:2: #error " /lib/modules/`uname -r`/buil
d exists and points to"
/usr/include/linux/version.h:20:2: #error " the matching kernel source d
irectory"
/usr/include/linux/version.h:21:2: #error ""
/usr/include/linux/version.h:22:2: #error " o Now copy /boot/vmlinuz.versi
on.h to"
/usr/include/linux/version.h:23:2: #error " /lib/modules/`uname -r`/buil
d/include/linux/version.h"
/usr/include/linux/version.h:24:2: #error ""
/usr/include/linux/version.h:25:2: #error " o When compiling, make sure to
use the following"
/usr/include/linux/version.h:26:2: #error " compiler option to use the c
orrect include files:"
/usr/include/linux/version.h:27:2: #error ""
/usr/include/linux/version.h:28:2: #error " -I/lib/modules/`uname -r`/bu
ild/include"
/usr/include/linux/version.h:29:2: #error ""
/usr/include/linux/version.h:30:2: #error " instead of"
/usr/include/linux/version.h:31:2: #error ""
/usr/include/linux/version.h:32:2: #error " -I/usr/include/linux"
/usr/include/linux/version.h:33:2: #error ""
/usr/include/linux/version.h:34:2: #error " Please adjust the Makefile a
ccordingly."
/usr/include/linux/version.h:35:2: #error "===============================
========================"
In file included from au_audio.c:49:
au_vortex.h:40:40: missing binary operator before token "("
In file included from /usr/include/linux/prefetch.h:13,
from /usr/include/linux/list.h:6,
from /usr/include/linux/module.h:11,
from au_vortex.h:54,
from au_audio.c:49:
/usr/include/asm/processor.h:55: error: `CONFIG_X86_L1_CACHE_SHIFT' undecl
ared here (not in a function)
/usr/include/asm/processor.h:55: error: requested alignment is not a const
ant
In file included from /usr/include/linux/module.h:297,
from au_vortex.h:54,
from au_audio.c:49:
/usr/include/linux/version.h:2:2: #error "================================
======================="
/usr/include/linux/version.h:3:2: #error "You should not include /usr/incl
ude/{linux,asm}/ header"
/usr/include/linux/version.h:4:2: #error "files directly for the compilati
on of kernel modules."
/usr/include/linux/version.h:5:2: #error ""
/usr/include/linux/version.h:6:2: #error "glibc now uses kernel header fil
es from a well-defined"
/usr/include/linux/version.h:7:2: #error "working kernel version (as recom
mended by Linus Torvalds)"
/usr/include/linux/version.h:8:2: #error "These files are glibc internal a
nd may not match the"
/usr/include/linux/version.h:9:2: #error "currently running kernel. They s
hould only be"
/usr/include/linux/version.h:10:2: #error "included via other system heade
r files - user space"
/usr/include/linux/version.h:11:2: #error "programs should not directly in
clude <linux/*.h> or"
/usr/include/linux/version.h:12:2: #error "<asm/*.h> as well."
/usr/include/linux/version.h:13:2: #error ""
/usr/include/linux/version.h:14:2: #error "To build kernel modules please
do the following:"
/usr/include/linux/version.h:15:2: #error ""
/usr/include/linux/version.h:16:2: #error " o Have the kernel sources inst
alled"
/usr/include/linux/version.h:17:2: #error ""
/usr/include/linux/version.h:18:2: #error " o Make sure that the symbolic
link"
/usr/include/linux/version.h:19:2: #error " /lib/modules/`uname -r`/buil
d exists and points to"
/usr/include/linux/version.h:20:2: #error " the matching kernel source d
irectory"
/usr/include/linux/version.h:21:2: #error ""
/usr/include/linux/version.h:22:2: #error " o Now copy /boot/vmlinuz.versi
on.h to"
/usr/include/linux/version.h:23:2: #error " /lib/modules/`uname -r`/buil
d/include/linux/version.h"
/usr/include/linux/version.h:24:2: #error ""
/usr/include/linux/version.h:25:2: #error " o When compiling, make sure to
use the following"
/usr/include/linux/version.h:26:2: #error " compiler option to use the c
orrect include files:"
/usr/include/linux/version.h:27:2: #error ""
/usr/include/linux/version.h:28:2: #error " -I/lib/modules/`uname -r`/bu
ild/include"
/usr/include/linux/version.h:29:2: #error ""
/usr/include/linux/version.h:30:2: #error " instead of"
/usr/include/linux/version.h:31:2: #error ""
/usr/include/linux/version.h:32:2: #error " -I/usr/include/linux"
/usr/include/linux/version.h:33:2: #error ""
/usr/include/linux/version.h:34:2: #error " Please adjust the Makefile a
ccordingly."
/usr/include/linux/version.h:35:2: #error "===============================
========================"
In file included from au_vortex.h:54,
from au_audio.c:49:
/usr/include/linux/module.h:299: error: syntax error before "UTS_RELEASE"
In file included from au_vortex.h:55,
from au_audio.c:49:
/usr/include/linux/version.h:2:2: #error "================================
======================="
/usr/include/linux/version.h:3:2: #error "You should not include /usr/incl
ude/{linux,asm}/ header"
/usr/include/linux/version.h:4:2: #error "files directly for the compilati
on of kernel modules."
/usr/include/linux/version.h:5:2: #error ""
/usr/include/linux/version.h:6:2: #error "glibc now uses kernel header fil
es from a well-defined"
/usr/include/linux/version.h:7:2: #error "working kernel version (as recom
mended by Linus Torvalds)"
/usr/include/linux/version.h:8:2: #error "These files are glibc internal a
nd may not match the"
/usr/include/linux/version.h:9:2: #error "currently running kernel. They s
hould only be"
/usr/include/linux/version.h:10:2: #error "included via other system heade
r files - user space"
/usr/include/linux/version.h:11:2: #error "programs should not directly in
clude <linux/*.h> or"
/usr/include/linux/version.h:12:2: #error "<asm/*.h> as well."
/usr/include/linux/version.h:13:2: #error ""
/usr/include/linux/version.h:14:2: #error "To build kernel modules please
do the following:"
/usr/include/linux/version.h:15:2: #error ""
/usr/include/linux/version.h:16:2: #error " o Have the kernel sources inst
alled"
/usr/include/linux/version.h:17:2: #error ""
/usr/include/linux/version.h:18:2: #error " o Make sure that the symbolic
link"
/usr/include/linux/version.h:19:2: #error " /lib/modules/`uname -r`/buil
d exists and points to"
/usr/include/linux/version.h:20:2: #error " the matching kernel source d
irectory"
/usr/include/linux/version.h:21:2: #error ""
/usr/include/linux/version.h:22:2: #error " o Now copy /boot/vmlinuz.versi
on.h to"
/usr/include/linux/version.h:23:2: #error " /lib/modules/`uname -r`/buil
d/include/linux/version.h"
/usr/include/linux/version.h:24:2: #error ""
/usr/include/linux/version.h:25:2: #error " o When compiling, make sure to
use the following"
/usr/include/linux/version.h:26:2: #error " compiler option to use the c
orrect include files:"
/usr/include/linux/version.h:27:2: #error ""
/usr/include/linux/version.h:28:2: #error " -I/lib/modules/`uname -r`/bu
ild/include"
/usr/include/linux/version.h:29:2: #error ""
/usr/include/linux/version.h:30:2: #error " instead of"
/usr/include/linux/version.h:31:2: #error ""
/usr/include/linux/version.h:32:2: #error " -I/usr/include/linux"
/usr/include/linux/version.h:33:2: #error ""
/usr/include/linux/version.h:34:2: #error " Please adjust the Makefile a
ccordingly."
/usr/include/linux/version.h:35:2: #error "===============================
========================"
In file included from /usr/include/linux/mm.h:12,
from /usr/include/linux/slab.h:14,
from au_vortex.h:62,
from au_audio.c:49:
/usr/include/linux/mmzone.h:44: error: `CONFIG_X86_L1_CACHE_SHIFT' undecla
red here (not in a function)
/usr/include/linux/mmzone.h:44: error: requested alignment is not a consta
nt
In file included from au_audio.c:49:
au_vortex.h:70:41: missing binary operator before token "("
In file included from au_vortex.h:73,
from au_audio.c:49:
/usr/include/asm/spinlock.h:31: error: conflicting types for `spinlock_t'
/usr/include/linux/spinlock.h:73: error: previous declaration of `spinlock
_t'
/usr/include/asm/spinlock.h:80: error: syntax error before "do"
/usr/include/asm/spinlock.h:116: error: syntax error before '{' token
/usr/include/asm/spinlock.h:126: error: syntax error before "void"
/usr/include/asm/spinlock.h:157: error: conflicting types for `rwlock_t'
/usr/include/linux/spinlock.h:137: error: previous declaration of `rwlock_
t'
/usr/include/asm/spinlock.h:182: error: syntax error before "void"
/usr/include/asm/spinlock.h:191: error: syntax error before "void"
au_vortex.h:76:41: missing binary operator before token "("
au_vortex.h:120:41: missing binary operator before token "("
au_vortex.h:126:41: missing binary operator before token "("
au_vortex.h:154:41: missing binary operator before token "("
au_vortex.h:205:41: missing binary operator before token "("
In file included from au_audio.c:50:
/usr/include/linux/version.h:2:2: #error "================================
======================="
/usr/include/linux/version.h:3:2: #error "You should not include /usr/incl
ude/{linux,asm}/ header"
/usr/include/linux/version.h:4:2: #error "files directly for the compilati
on of kernel modules."
/usr/include/linux/version.h:5:2: #error ""
/usr/include/linux/version.h:6:2: #error "glibc now uses kernel header fil
es from a well-defined"
/usr/include/linux/version.h:7:2: #error "working kernel version (as recom
mended by Linus Torvalds)"
/usr/include/linux/version.h:8:2: #error "These files are glibc internal a
nd may not match the"
/usr/include/linux/version.h:9:2: #error "currently running kernel. They s
hould only be"
/usr/include/linux/version.h:10:2: #error "included via other system heade
r files - user space"
/usr/include/linux/version.h:11:2: #error "programs should not directly in
clude <linux/*.h> or"
/usr/include/linux/version.h:12:2: #error "<asm/*.h> as well."
/usr/include/linux/version.h:13:2: #error ""
/usr/include/linux/version.h:14:2: #error "To build kernel modules please
do the following:"
/usr/include/linux/version.h:15:2: #error ""
/usr/include/linux/version.h:16:2: #error " o Have the kernel sources inst
alled"
/usr/include/linux/version.h:17:2: #error ""
/usr/include/linux/version.h:18:2: #error " o Make sure that the symbolic
link"
/usr/include/linux/version.h:19:2: #error " /lib/modules/`uname -r`/buil
d exists and points to"
/usr/include/linux/version.h:20:2: #error " the matching kernel source d
irectory"
/usr/include/linux/version.h:21:2: #error ""
/usr/include/linux/version.h:22:2: #error " o Now copy /boot/vmlinuz.versi
on.h to"
/usr/include/linux/version.h:23:2: #error " /lib/modules/`uname -r`/buil
d/include/linux/version.h"
/usr/include/linux/version.h:24:2: #error ""
/usr/include/linux/version.h:25:2: #error " o When compiling, make sure to
use the following"
/usr/include/linux/version.h:26:2: #error " compiler option to use the c
orrect include files:"
/usr/include/linux/version.h:27:2: #error ""
/usr/include/linux/version.h:28:2: #error " -I/lib/modules/`uname -r`/bu
ild/include"
/usr/include/linux/version.h:29:2: #error ""
/usr/include/linux/version.h:30:2: #error " instead of"
/usr/include/linux/version.h:31:2: #error ""
/usr/include/linux/version.h:32:2: #error " -I/usr/include/linux"
/usr/include/linux/version.h:33:2: #error ""
/usr/include/linux/version.h:34:2: #error " Please adjust the Makefile a
ccordingly."
/usr/include/linux/version.h:35:2: #error "===============================
========================"
au_audio.c:63:41: missing binary operator before token "("
au_audio.c:78: warning: initialization from incompatible pointer type
au_audio.c:79: warning: initialization from incompatible pointer type
au_audio.c:80: warning: initialization from incompatible pointer type
au_audio.c:82: warning: initialization from incompatible pointer type
au_audio.c:83: warning: initialization from incompatible pointer type
au_audio.c:84: warning: initialization from incompatible pointer type
au_audio.c:85: warning: initialization from incompatible pointer type
au_audio.c:87: warning: initialization from incompatible pointer type
au_audio.c: In function `au_audio_read':
au_audio.c:193: warning: passing arg 1 of `interruptible_sleep_on' from in
compatible pointer type
au_audio.c: In function `au_audio_write':
au_audio.c:261: warning: passing arg 1 of `interruptible_sleep_on' from in
compatible pointer type
au_audio.c: In function `au_audio_poll':
au_audio.c:310: warning: passing arg 2 of `poll_wait' from incompatible po
inter type
au_audio.c:312: warning: passing arg 2 of `poll_wait' from incompatible po
inter type
au_audio.c:604:41: missing binary operator before token "("
au_audio.c: In function `au_audio_mmap':
au_audio.c:607: error: structure has no member named `vm_offset'
au_audio.c:623:41: missing binary operator before token "("
au_audio.c:645:41: missing binary operator before token "("
au_audio.c:688:40: missing binary operator before token "("
au_audio.c:712:40: missing binary operator before token "("
au_audio.c: In function `drain_playback':
au_audio.c:746: warning: passing arg 1 of `interruptible_sleep_on' from in compatible pointer type
au_audio.c:789:41: missing binary operator before token "("
au_audio.c: In function `add_wave_device':
au_audio.c:793: warning: implicit declaration of function `init_waitqueue'
au_audio.c:847:41: missing binary operator before token "("
au_audio.c:860:41: missing binary operator before token "("
au_audio.c: In function `get_frags':
au_audio.c:865: warning: implicit declaration of function `MAP_NR'
au_audio.c:881:41: missing binary operator before token "("
au_audio.c:889:41: missing binary operator before token "("
au_audio.c:901:41: missing binary operator before token "("
au_audio.c: In function `au_handle_timer':
au_audio.c:1144: warning: passing arg 1 of `__wake_up' from incompatible p ointer type
au_audio.c:1166: warning: passing arg 1 of `__wake_up' from incompatible p ointer type
au_audio.c:1196: warning: passing arg 1 of `__wake_up' from incompatible p ointer type
make: *** [au_audio.o] Error 1
hughesjr
OK,

The this code hasn't been updated for more than 24 months by the site maintainers ... I don't have that kind of card, so I didn't test anything other than the detection part of the program. (Which need a couple modifications for file locations, etc.)

I will spend a couple hours today to see if I can get the drivers to compile on my mandrake 9.2 machine...
hughesjr
OK,

I was able to compile this on my PC without any major errors ....

I have a newer kernel (and probably other items) than you .... if you can update your kernel and other Items, it will be better for you (from a security perspective) and then you can dowload and update from the files I made....

So, lets go over how to setup Mandrake to do updates......

First, I remove the CD's as a source for URPMI and add an on line source ... so I download and install any programs I need, even if they are on the orignal CD's ... this part is not required, but I find it more convienent...

----optional------
First thing to do is remove all urpmi sources (all commands should be done in a root terminal window):

urpmi.removemedia -a

The add sources for the original 3 CD's with an on-line source (all commands are one line ... some will wrap, so there is a blank line between commands ... any commands that are 2 lines long, put in a single line... there is a space both before and after the word with):

CODE
urpmi.addmedia contrib ftp://ftp.phys.ttu.edu/pub/mandrake/9.2/contrib/i586 with synthesis.hdlist.cz

urpmi.addmedia Disk_1 ftp://ftp.phys.ttu.edu/pub/mandrake/9.2/i586/Mandrake/RPMS with ../base/synthesis.hdlist.cz

urpmi.addmedia Disk_3 ftp://ftp.phys.ttu.edu/pub/mandrake/9.2/i586/Mandrake/RPMS3 with ../base/synthesis.hdlist3.cz


---stop optional----
---------------------------------------------------
---start required----

Now we need to add a source for updates for mandrake 9.2 ... I name mine update_source .... use this command:

CODE
urpmi.addmedia update_source ftp://mirrors.secsup.org/pub/linux/mandrake/Mandrake/updates/9.2/RPMS with ../base/hdlist.cz


if you get an error that the name update_source already exists, do this:

urpmi.removemedia update_source

then this:

CODE
urpmi.addmedia update_source ftp://mirrors.secsup.org/pub/linux/mandrake/Mandrake/updates/9.2/RPMS with ../base/hdlist.cz

---------------------------------------------------
Now you are ready to update your Mandrake 9.2 to the latest security patches, etc.

Do this:

urpmi.update -a

After this completes, do this command to get all updates:

urpmi --auto-select

Now let's update the kernel (it may not update with everything else):

urpmi kernel-2.4.22.21mdk

after this completes make sure kernel-source is installed and updated:

urpmi kernel-source
-------------------------------------------------
As a side note ... there is a problem with the contrib disk file list ... it works, but gives this error:

medium "contrib" uses an invalid list file:
mirror is probably not up-to-date, trying to use alternate method


You can ignore this error ....

There is another error with gaim ... the latest version is in the filelist but doesn't download .... that can also be ignored ... it should be fixed by the update site soon.
-------------------------------------------------

OK ... if all this has gone well, it's time to reboot the PC.

When you get back into linux, open a root window and type:

uname -a ... if it says:

2.4.22-21mdk everything is good... now (in another post) how to try and get the soundcard to work!
hughesjr
Now,

Download the mods I made from Here .... save it to /tmp (overwrite the other file if it is still there).

In a root terminal window, remove the old directory:

rm -rf /usr/src/aureal

move the new file to /usr/src:

mv /tmp/aureal.tgz /usr/src

extract the new file:

cd /usr/src

then

tar -xvzf aureal.tgz

(all these should complete without error)

go to the /usr/src/aureal directory ....

cd /usr/src/aureal

install the drivers:

make install

This should complete without errors!

then load the driver with this command:

modprobe au8810

See if your sound works!
----------------------------------
If you have sound, add the line /etc/modules:

au8810

remove the line for mad16 if it is still there....

----------------------
Also, please post the contents of your /etc/modules.conf file...
EliteX
The updates worked like a charm, when I started the sound card install, I got to the 'make install' and got this:

[root@localhost aureal]# make install
make: *** No rule to make target `/lib/modules/2.4.22-21mdk/build/include/linux/version.h', needed by `au_vortex.dep'. Stop.
hughesjr
go to /usr/src and do the command:

ls -al

your results should include (at least) these 3 directories:

QUOTE
drwxr-xr-x    2 root    root        4096 Dec 26 08:17 aureal/
lrwxrwxrwx    1 root    root          18 Nov  9 09:55 linux -> linux-2.4.22-21mdk/
drwxr-xr-x  19 root    root        4096 Nov  9 09:55 linux-2.4.22-21mdk/


If you don't have linux-2.4.22-21mdk/, reinstall kernel-source ....

urpmi kernel-source

if you don't have linux -> linux-2.4.22-21mdk/ (or linux -> /usr/src/linux-2.4.22-21mdk/)then issue this command:

ln -s /usr/src/linux-2.4.22-21mdk /usr/src/linux

(if linux is pointing to a directory other than linux-2.4.22-21mdk, then delete it first:

rm /usr/src/linux

then issue the ln -s command above)
--------------------------

install the program kdevelop (which has a lot of make configuration tools) like this:

urpmi kdevelop

Clean out the Kernel source from previous compiles (by the mandrake developers), copy the file /boot/config-2.4.22-21mdk (your current kernel) to /usr/src/linux/.config and run the command, make oldconfig (as root in a terminal window) using the following commands:

cd /usr/src/linux
make mrproper
cp /boot/config-2.4.22-21mdk .config
make oldconfig


If this works, make the kernel dependancies by issuing the command (still within /usr/src/linux as root):

make dep

again make sure you are booted into the 2.4.22-21mdk kernel:

uname -r

( the output should be 2.4.22-21mdk)

go to /usr/src/aureal and do make install using these commands (as root):

cd /usr/src/aureal
make install


If it doesn't work, do this (from within /usr/src/aureal as root):

make clean
make
EliteX
This is what "ls -al" brought up, the "linux -> /usr/src/linux-2.4.22-21mdk" part was flashing red though, I gather that can't be a good thing.

[root@localhost src]# ls -al
total 400
drwxr-xr-x 4 root root 4096 Dec 27 09:03 ./
drwxr-xr-x 12 root root 4096 Dec 17 05:59 ../
drwxr-xr-x 2 root root 4096 Dec 26 11:17 aureal/
-rw-rw-r-- 1 god god 386801 Dec 26 20:32 aureal.tgz
lrwxrwxrwx 1 root root 27 Dec 27 09:03 linux -> /usr/src/linux-2.4.22-21mdk
drwxr-xr-x 7 root root 4096 Dec 17 23:28 RPM/
hughesjr
Your kernel-source directory is missing....

I removed and tried to reinstall the kernel-source and found that there is a problem with kernel-source on the update site ...

download kernel source from HERE instead, (save it to /tmp) and install it via these commands (as root):

cd /tmp
rpm -Uvh kernel-source-2.4.22-21mdk.i586.rpm


Veify the linux-2.4.22-21mdk/ is in /usr/src and that the link linux/ -> linux-2.4.22-21mdk/ is now good, then continue on by installing kdevelop...
EliteX
The make install worked, but the modprobe didn't now. It complains about two different gcc versions. Bet you think I'm a pain in the ass, haha.
[root@localhost aureal]# modprobe au8810
/lib/modules/2.4.22-21mdk/drivers/sound/au8810.o: The module you are trying to load (/lib/modules/2.4.22-21mdk/drivers/sound/au8810.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.
modprobe: insmod /lib/modules/2.4.22-21mdk/drivers/sound/au8810.o failed
modprobe: insmod au8810 failed
hughesjr
OK,

I found a newer driver set at The Open Vortex Project ... this driver should work with the current kernel / gcc combo and even work for the new 2.6 kernel.

first remove directory /usr/src/aureal like this:

rm -rf /usr/src/aureal

if you have aureal.tgz in usr source, remove it as well:

rm -rf /usr/src/aureal.tgz
---------------
Get the new version from my site (HERE) (save it to /tmp ... overwrite the other file if asked).

In a root terminal window, move the file to /usr/src:

mv /tmp/aureal.tgz /usr/src

extract the driver source using this command:

cd /usr/src
tar -xvzf aureal.tgz


now go into /usr/src/aureal-1.x and install the new drivers:

cd /usr/src/aureal-1.x
make install

-----------------------------------
Now try to load the driver:

modprobe au8810

(you may need to first do modprobe soundcore then load modprobe au8810).

You may also get this error:

{Warning: loading /lib/modules/2.4.22-21mdk/drivers/sound/au8810.o will taint the kernel: no license
See http://www.tux.org/lkml/#export-tainted for information about tainted modules}

This is a normal error for this driver.
EliteX
It works! Mp3s play normally and everything! Woooohoooo!

Sorry, haha. I greatly appreciate it, sorry for being a pain. Just one more question, do I put AU8810 in the etc/modules now and remove mad16? And this will start the sound card when I boot, correct?


Thanks again!
hughesjr
Yes...

removing mad16 and adding au8810 should make everything work ... if it doesn't work on the first boot, also add soundcore (before au8810) in /etc/modules.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2017 Invision Power Services, Inc.