# OSS in kernel

## denudar

Hello.. I am playing w/ embedded gentoo and after a trial and error process I found out that alsa 

linked to uclibc isn't working good enough (some segmentation faults and dragons).

   So i got the package from http://www.opensound.com and it works fine on my geode GX1 board (cs5530)

   OSS creates modules that get modprobed with soundon script ( I think)

   The question is "is there a way to compile the stuff generated by the OSS install script IN the kernel??", because it would be a little easier

for me to work with a monolithic kernel instead of having just one module hanging around.

----------

## electronvolt

Can you not use the in-tree OSS? Then you will be able to compile everything into the kernel and not as (external) modules. What kernel sources are you using? OSS is still in gentoo-sources, although listed as deprecated.

----------

## eccerr0r

I also have a GX1 board, but the in-kernel kaluha CS5530 driver does not work.  I've not tried the commercial OSS solution, perhaps that's why it's being used?

----------

## denudar

I am using 2.6.24-gentoo-r8 and I checked in the config menu for OSS drivers for cs5530 (kahlua) but there aren't any and 

```
cat /usr/src/linux | grep kahlua 
```

 returns nil, also 

```
cat /usr/src/linux | grep cs5330
```

 points to the alsa driver

   The OSS "comercial solution" is free, for some cards including the GEODE cs5530  :Wink: 

----------

## eccerr0r

Oops, I spelled it wrong, it's kahlua (sound/oss/kahlua.c) has been there for quite a while afaik, and does not work on mine.

The cs5530 (sound/pci/cs5530.c) ALSA driver in newer kernels (2.6.24+ I think) *should* also work but also does not on mine.

What I probably need is some other firmware for the GX1 so I can use SB emulation, which both of these two drivers depend on...

----------

## denudar

Alsa worked for me but i had some segfaults when running programs so I chose not to use it.

    I saw in a tutorial that a guy used OSS on a cs5530 board.. but he's kinda' short on details

http://guru3.net/flexy/

   I can't figure out how to use oss w/ uclibc the modules wouldn't load or "module not found", it's ugly and I really don't know how to do this,

Perhaps I'll find guru3 on irc and he'll give me some help or directions, until then I'm stuck..  :Sad: 

----------

## eccerr0r

Not sure why the in-kernel kahlua (this is also an OSS driver!) driver doesn't work?

Basically mine does not work with either driver because it couldn't "find" the sound device.  I verified by putting in some printk's of some data as it went through the code - it found the PCI device (possibly forced to, as for some of the drivers I had to add the PCI ID's into the code), but when it tries to read the register containing how firmware set up the device to be SB-compatible, it was basically never set up.  Both Kahlua(OSS) and cs5530 (ALSA) fail the same way - could not find the card.  Was cross referencing this to the datasheet, looks like I'd have to write a native driver instead of the easy way, using SB emulation...

My GX1 is on a SC1200 board.  Its devices has National Semiconductor PCI IDs on it, and the GX1 itself reports "CyrixInstead" as the CPUID, though the processor is marked AMD.  Wonder if there's some other firmware I could try, I got two firmware images, one wouldn't even boot Linux...

----------

## denudar

My card is a ARBOR EmCORE n511VLC. http://www.arbor.com.tw/products/products_detail.aspx?Product_Name=EmCORE-n511

   I was wondering if there's a way to copy the geode.c (cs5530) from the OSS package into the kernel source under OSS modules or something, 

and somehow create a menu entry for it and compile in it the kernel.

   I can't really help you w/ the firmware issues because i don't know anything about firmwares (I didn't digg so deep... yet)

----------

