[PlanetCCRMA] The Oxygen 8 works! ... but...

Fernando Pablo Lopez-Lezcano nando@ccrma.Stanford.EDU
Thu Dec 19 14:44:02 2002


> > Hmmm... were you previously using the cs4236? Was it working? I seem
> > to remember now that you had installed a usb _audio_ card (not the
> > Oxygen8). Is that right? Maybe I'm confused...
> 
> The laptop came with the cs4236. However, I've been using the USB 
> audio device (a Roland UA-30) for about a year, and am now trying to
> add the Oxygen 8. It can indeed get quite confusing...

If the cs4236 was not working before then let's forget about it for now.
You need a modules.conf for _two_ usb devices (sound card and midi
keyboard). Furthermore, as both use the same driver (snd-usb-audio), you
need to specify which device corresponds to each instance of the driver
so that the ordering of the devices is predictable. Clemens Ladisch
posted a convenient way to doing this to the alsa-users list a while
ago:

> > options snd-ice1712 index="0"
> > options snd-usb-audio index="1"
> > options snd-usb-midi index="2"
> >
> > Unfortunately, the snd-usb-midi driver no longer exists. The usb
> > midi device uses the snd-usb-audio driver as of the latest ALSA
> > release. This is something of a problem for me because I now have
> > TWO usb-audio devices, and I cannot set the index option for one of
> > them.
>
> If one driver handles multiple cards, you can specify the option
> values for each card:
>
>        options snd-ice1712 index=0
>        options snd-usb-audio index=1,2
>
> But now the assignment of the card index to the USB devices isn't
> clear (the first device found will get the first index), so there is
> another option to specify the product ID of each device:
>
>        options snd-usb-audio index=1,2 pid=0x1234,0xabcd
>
> You can find the product IDs with lsusb (search for "idProduct").
>
> HTH
> Clemens

So, most probably a modules.conf like this would solve the problem
(WARNING, you _have_ to replace the pid numbers in this example with the
numbers that correspond to the two usb interfaces you have):

=== CUT HERE ===
alias parport_lowlevel parport_pc
alias usb-controller usb-uhci

# --- ALSA configuration
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-usb-audio
alias snd-card-1 snd-usb-audio
# --- OSS compatibility
alias sound-slot-0 snd-card-0
alias sound-slot-1 snd-card-1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias sound-service-1-0 snd-mixer-oss
alias sound-service-1-3 snd-pcm-oss
alias sound-service-1-12 snd-pcm-oss
# --- Options
options snd device_gid=1 device_mode=0666 device_uid=0 cards_limit=2
major=116
options snd-usb-audio index=0,1 pid=0x1234,0xabcd
# --- Keep modules from being autocleaned
add options -k snd-card-0
add options -k snd-card-1
# --- ALSA configuration END
=== CUT HERE ===

The first "pid" should correspond to your audio card, the second "pid"
should correspond to the Oxygen8 keyboard. 

Also, you should probably blacklist the snd-usb-audio module so that it
is not autoloaded during the early boot sequence (when hotplug discovers
the devices) but when the alsasound script executes. 

Not tested :-)
-- Fernando