From Bugzilla Helper: User-Agent: Mozilla/4.78 [en] (X11; U; Linux 2.4.9-21smp i686) Description of problem: RH kernels above 2.4.7 produce noice, scratches and generally distort sound when a SoundBlaster Live card (emu10k1) is used. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Install a RH 2.4.9 kernel (all versions) 2. Use the play command to play wavs (and possibly others, such a few games, etc) RH Bugzilla contains a bunch of such incidents. Actual Results: The sound starts with a scratch, or it is totally distorted. Expected Results: The sound produced should be clear. Additional info: This is a problem that has to do with the high memory kernel option. emu10k1 seems that cannot operate correctly when the high memory option is turned on (with either 4 or 64GB value). I have verified that with this option turned off, emu10k1 works as supposed. Additionally the kernel mailing list has a fix for this, so that emu10k1 will work correctly with high memory. Use this link and follow the thread to find the solution: http://www.uwsg.iu.edu/hypermail/linux/kernel/0111.0/1487.html The solution is very simple. Change: #define EMU10K1_DMA_MASK 0xffffffff /* DMA buffer mask for pci_alloc_consist */ to #define EMU10K1_DMA_MASK 0x7fffffff /* DMA buffer mask for pci_alloc_consist */ and the problem should dissappear.
If this makes the difference then this is wrong too ;( Anyway we have a emu10k1_new driver in the 2.4.9-21 erratum which lots of people see work better.
ok. The solution may be wrong (afterall I tryed to distribute the suggestions of others), but the cause, I believe, is not wrong. I have compiled 2.4.15 with and without HIMEM. When HIMEM was on (either 4 or 64GB) I had distortions while when it was off it worked perfectly. Both compilations from exactly the same source tree, all other options the same. If that makes a difference, my machine is i686 SMP.
Also, 2.4.9-21smp still has the problem.
the emu10k1_new driver ? (you need to change emu10k1 to emu10k1_new in /etc/modules.conf)