[linux-audio-user] emu10k1 multichannel support

Shayne O'Connor forums at machinehasnoagenda.com
Thu Jan 20 23:42:10 EST 2005


Shayne O'Connor wrote:

>Fernando Lopez-Lezcano wrote:
>
>  
>
>>On Thu, 2005-01-20 at 17:03, Shayne O'Connor wrote:
>> 
>>
>>    
>>
>>>Lee Revell wrote:
>>>   
>>>
>>>      
>>>
>>>>On Fri, 2005-01-21 at 10:19 +1100, Shayne O'Connor wrote:
>>>>     
>>>>
>>>>        
>>>>
>>>>>Lee Revell wrote:
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>>>You're sure you have the correct ALSA modules loaded?  Maybe you have
>>>>>>ALSA modules built into the kernel that are interfering.  Or maybe you
>>>>>>need to run the snddevices.sh script.
>>>>>>
>>>>>>What is in /proc/asound/devices?
>>>>>>
>>>>>>         
>>>>>>
>>>>>>            
>>>>>>
>>>>>[mrmachine at localhost mrmachine]$ cat /proc/asound/devices
>>>>>4: [0- 0]: hardware dependent
>>>>>8: [0- 0]: raw midi
>>>>>18: [0- 2]: digital audio playback
>>>>>26: [0- 2]: digital audio capture
>>>>>25: [0- 1]: digital audio capture
>>>>>16: [0- 0]: digital audio playback
>>>>>24: [0- 0]: digital audio capture
>>>>>0: [0- 0]: ctl
>>>>>1:       : sequencer
>>>>>6: [0- 2]: hardware dependent
>>>>>9: [0- 1]: raw midi
>>>>>10: [0- 2]: raw midi
>>>>>33:       : timer
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>That's wrong.  You must have ALSA built into your kernel and it's
>>>>interfering.  Or you didn't apply the patch correctly.  It should look
>>>>like this:
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>what's the proper way to apply the patch?
>>>
>>>i cd'd to the alsa-driver source directory and did this:
>>>
>>>"patch -p1 < ../emu10k1-multichannel-v002.patch"
>>>
>>>and it gave output saying that it patched successfully.
>>>
>>>then i did "make; sudo make install", ran the snddevices script, then ran:
>>>
>>>"/sbin/modprobe snd-emu10k1;/sbin/modprobe snd-pcm-oss;/sbin/modprobe
>>>snd-mixer-oss;/sbin/modprobe snd-seq-oss"
>>>
>>>i'm using a fedora core 2 planet ccrma installation - the ccrma stuff
>>>was installed over my original fc2 install via apt ... i think the
>>>default fc2 install compiles alsa into the kernel, but the ccrma
>>>packages build alsa as a module?
>>>   
>>>
>>>      
>>>
>>:-) Both, see below...
>>
>> 
>>
>>    
>>
>>>but, then again, i'm using the ccrma patched 2.6.10 kernel, so i don't
>>>think that alsa would have been compiled into that version ...
>>>
>>>maybe my problem was only re-compiling and installing the alsa-driver
>>>package and not the others as well?
>>>   
>>>
>>>      
>>>
>>Caveat: For a normal Planet CCRMA FC2/3 install there are two locations
>>for the ALSA kernel modules. One is the one that comes with the kernel
>>itself. But Planet CCRMA also supplies a more up to date version of
>>ALSA, and those kernel modules are installed in:
>> /lib/modules/`uname -r`/updates/
>>They override (ie: they are first in the modprobe search order) the ones
>>in the kernel. So if you do a normal alsa kernel modules install you
>>will overwrite the modules in the kernel tree, not the updates, and then
>>if you reload the module you will still get the one in the "updates"
>>directory. 
>>
>>So... you want to overwrite the updated modules, and you can do that by
>>supplying the proper flag to the alsa driver configure process:
>>
>>   --with-moddir=/lib/modules/KERNEL_VERSION/updates
>>
>>With this added the install will overwrite the updated modules
>>(installed through the kernel-module-alsa package for your kernel
>>version). A subsequenct /sbin/depmod -a and /sbin/modprobe whatever
>>should bring in the new version (provided you unload the modules first,
>>of course). 
>>
>>-- Fernando
>>
>>
>> 
>>
>>    
>>
>ok, thanx fernando, that would be the problem (stupid me - i just
>pointed someone on the ccrma list today to those source directories) ...
>now sorry to be a pain, but how do i unload the alsa modules? i've tried
>a few things:
>
>[root at localhost mrmachine]# /sbin/rmmod snd_emu10k1
>ERROR: Module snd_emu10k1 is in use by snd_emu10k1_synth
>[root at localhost mrmachine]# /sbin/rmmod snd_emu10k1_synth
>[root at localhost mrmachine]# /sbin/rmmod snd_emu10k1
>ERROR: Module snd_emu10k1 is in use by snd_emu10k1_synth
>[root at localhost mrmachine]# /sbin/rmmod snd
>ERROR: Module snd is in use by
>snd_emu10k1_synth,snd_seq_midi,snd_emux_synth,snd_seq_virmidi,snd_seq_midi_emul,snd_seq_oss,snd_seq_midi_event,snd_seq,snd_mixer_oss,snd_emu10k1,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm,snd_timer,snd_util_mem,snd_hwdep
>
>would i have to comment these modules out in "modprobe.conf", reboot,
>then install the patched alsa-driver, then reload them (as well as
>uncomment them in modprobe.conf)?
>  
>
ok, i did that and got the patched alsa working with "jackd -v -d alsa
-P hw:0,3 -C hw:0,2 -S".

i was able to connect clients such as ardour, muse and fweelin, but none
of them would record or play - they would freeze when trying to do so
and refuse to shut down. i've attatched the output from the jackd
terminal, just in case you can tell anything from it ...

>I am especially interested in
>any regressions that impact regular PCM playback (the hw:0,0 device).
>
well, it is a cavalcade of xruns ...

when i run jackd using the hw:0 device and my usual command:

"/usr/bin/jackd -T -v -R -P60 -dalsa -dhw:0 -r41000 -p512 -n2 -S -i2 -o2"

i get an incessant string of xruns. i've tried changing some parameters,
but to no avail ... here's the brief output from dmesg:

[mrmachine at localhost mrmachine]$ dmesg
d_addr 3072
init voice - master 1 extra 0 start_addr 1024 end_addr 3072
init voice - master 0 extra 0 start_addr 1024 end_addr 3072
(these two lines repeat over and over, i guess each time an xrun occurs).

so i don't think this patch is workable for me yet :(

shayne



More information about the Linux-audio-user mailing list