LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (https://www.linuxquestions.org/questions/linux-software-2/)
-   -   Help - I have no sound devices in /dev ! (https://www.linuxquestions.org/questions/linux-software-2/help-i-have-no-sound-devices-in-dev-208291/)

Onyx^ 07-22-2004 09:14 AM

Help - I have no sound devices in /dev !
 
I am really stuck with the arcane system of setting up sound in linux (OSS, OSSFree, ALSA, ALSA OSS Emulation ... gah! )

I have a sis7019 onboard sound, and a sis provided OSS 7019 driver for RH 2.4.x kernels. I have compiled this (sis7019.o) and made the following changes to modules.conf....

below sis7019 ac97_codec soundcore
alias sound-slot-0 sis7019


I have compiled a new 2.4.18 kernel with

<*> Sound Card Support
...
<M> Trident 4DWave DX/NX. SiS 7018 of ALi 5451 PCI Audio Core


Now what do I do ? I have no sound related devices in /dev/ at all.

lspci lists the 'Multimedia Audio Controller' on IRQ5 (but it hasn't been assigned an IRQ in /proc/interrupts')

dmesg makes no mention of IRQ5, audio, or well anything sound related.

Specific questions -

1) Are the devices (/dev/audio0 etc etc) created by the driver when it is modprobed succesfully? Or do i have to mknod all these devices?

2) When 'Sound card support' is included in the kernel does this mean both soundcore AND ac97_codec are built in? If not which kernel option provides ac97_codec built in ?

3) Should I be using OSSFree (if so how do I turn this on in kernel? there does not seem to be an explicit option) or ALSA with OSS Emulation ?

Please some1 help me I have been going around in circles for three whole days now!!!

Thanks in advance for any help

Frustin 07-22-2004 09:33 AM

i cant help you but a good way of testing sound is sending white noise to the sound port:

cat /dev/random > /dev/dsp

Onyx^ 07-22-2004 09:38 AM

there is no /dev/dsp :rolleyes:

I have no sound devices in /dev/ ...

(useful tip for later testing though thanks)

Frustin 07-22-2004 09:59 AM

Firstly, it isnt a notebook you are trying to install it on is it? because PCM isnt audible on some.

get the latest drivers from alsa.

from what i can recall, when using the alsa drivers you have to make sure that in the kernel you have sound support turned on (as a module if you like) obviously make sure that module support is also in there.

then compile the alsa with the "--with-cards=trident" switch.

do your make; make install

check where the modules (.o files) went, i think its /lib/modules/2.4.X/kernel/sound

then open your (in debian at least) /etc/modules directory and start adding those modules that you just compiled, in the list that you see. REMEMBER if you compiled sound support in the kernel as a modules then add snd.o in that list as well.

you'll then need to restart the sound service or reboot or something.

Onyx^ 07-22-2004 10:21 AM

Thanks for the help so far Frustin...

Nope it isn't a notebook but the hardware is similar, it is an embedded device. I have to cross compile drivers using a development machine and then stick them on the embedded device. But that is a technicality for me to deal with.

well ALSA itself doesn't support the sis7019 chip... I think I need to use the ALSA OSS emulation (though of course I could be mistaken) combined with the OSS 2.4.x sis7019 drivers that have been supplied to me.

So I assume from your post that:-

snd.o is supplied in kernel when you choose '<*> sound card support' but if it iss a modules u need to modprobe it (which i wont have to do because i have it compiled it in). Therefore soundcore.o and ac97_codec are NOT supplied in the kernel and I need to compile them seperatley as kernel modules and modprobe them ?

Frustin 07-23-2004 02:31 AM

AHHHHH why didnt you say that in the first place! i have done some stuff like that before in my last place i worked and i even wrote in my lab book about it.

i'm sure that as far as the kernel is concerned all i did was to compile in sound support and thats it.

Let me ask you a question, if you are trying to compile drivers, i bet that in the ./configure you are using things like prefix=/mnt/flash or modules?

Onyx^ 07-23-2004 07:36 AM

:)

I usually don't mention I'm developing for an embedded device because the second people see the word 'embedded' a shudder goes through their spine and they stop reading the thread so that I get no replies...

When I compile the sis7019 drivers, I specify to compile against the kernel source that I built my kernel against. Then I transfer across the sis7019.o into the lib/modules/... on my embedded machine.

I have a found a script that will create all the sound devices for me in /dev so I am confident that they are there OK now. (mknod -m 666 /dev/mixer0 c 14 0) etc etc

When I try and :-

insmod sis7019

... it gives me unresolved symbols relating to ac97_codec. So if I :-

insmod ac97_codec
insmod sis7019


the ac97_codec gets loaded fine (as far as i can see with lsmod), but when the sis7019 module is loaded, it locks up the machine and I have to do a hard reset.

Thinking about it ALSA is probably overkill for this device... I just want to use the kernel OSS option. What _exactly_ needs to be selected in the kernel configuration for this? both <*> Sound Card Support AND <*> OSS Modules ?

Frustin 07-23-2004 07:38 AM

i need to look at the way i hve it set up at home tonight. i have a copy of the stuff i did there.

what is the exact ./configure line that you do?

Onyx^ 07-23-2004 08:01 AM

ah sorry yes I meant to address the ./configure question you asked in the last post...

There is no ./configure or make configure with these drivers afaik.

There is a file called config.in that the install script references, where I can specify where the compile process looks for its kernel source.

Is this what you were getting at ?

Frustin 07-23-2004 09:12 AM

ok, there might be a wire crossing here.

firstly do an `ls' in the alsa drivers directory and paste them here.

couple of questions:

a: where did you get your drivers?
b: are you compiling them from scratch?

if you answer no to `a' then get them from alsa web site. after you untar them there is a configure script, run it using:

./configure --with-cards=trident --with-kernel=/path/to/kernel

that --with-kernel might not be exactly the way it says it in ./configure --help so make sure you use what they say.

EDIT - Just noticed that you are using peewee, i used that once. its not bad but its not as good as rolling your own. its fairly old now and isnt updated much so it might be worth rolling your own, which is why i said it.

Onyx^ 07-23-2004 09:46 AM

Thanks for your continued guidance Frustin...

I want to just use OSS kernel modules, without all the added overheads of ALSA.

I got my drivers from the comapny that supplied the embedded board (i suppose they got them from SiS). Alsa do not provide drivers for this chip.

They are OSS drivers for 2.4.x Redhat kernels. I compiled them myself from source (make sis7019).

I use peewee but there is very little of the initial system left. I have built a new kernel, and ripped out the binaries / libraries from Feather, a small knoppix install.

This is the extent of my installation instructions...

Dev Env for SiS 55x (scroll down to 7019 audio driver installation)

This is the readme that comes with the drivers...


Code:

SiS 7019 Linux Driver Install Documentation


**Before install this driver, you should make sure that your kernel had
enable "sound card support" !
(the option of "sound" item in building kernel)

This driver is for kernel RedHat kernel 2.4.x. You can install this driver
by useing script "install" or follow steps descributed below:
Note : if there are soundcore.o and ac97_codec.o in your kernel, you can
        skip step 3,4,6
      (you can use command "insmod soundcore" and "insmod ac97_codec" to
        test if there are these two modules)       


1>        Check that you have kernel-source in /usr/src/x.x.x

2>        Change linux_src_directory to correct path in "config.in"

3>        Copy soundcore and ac97_codec source to current directory

        "make snd_install"

        or :

        "cp /usr/src/x.x.x/drivers/sound/sound_core.* ./"
        "cp /usr/src/x.x.x/drivers/sound/sound_firmware.* ./"
        "cp /usr/src/x.x.x/drivers/sound/os.h ./"
        "cp /usr/src/x.x.x/drivers/sound/ac97_codec.* ./"

4>        Generate soundcore and ac97_codec module

        "make soundcore.o"
        "make ac97_codec.o"

5>        Generate sis7019 driver module

        "make"

6>        Copy soundcore.o , ac97_codec.o to module directory

        "cp soundcore.o /lib/modules/x.x.x/kernel/drivers/sound
        "cp ac97_codec.o /lib/modules/x.x.x/kernel/drivers/sound

7>        Copy sis7019.o to module directory

        "cp sis7019.o /lib/modules/x.x.x/kernel/drivers/sound

8>        Modify the file "/etc/modules.conf". Add two lines into it :

        below sis7019 ac97_codec soundcore
        alias sound-slot-0 sis7019

9>        Reboot your computer and configurate sis7019.


Onyx^ 07-23-2004 11:55 AM

an added bit of info...

/proc/interrupts does not show IRQ 5 assigned to sound despite the fact that /proc/pci shows the multimedia audio device as IRQ 5?

When does the soundcard officially get given an interrupt ?

Onyx^ 08-03-2004 08:40 AM

*bump*

I upgraded to 2.4.20 kernel and now the drivers modprobe in fine :D

Of course now, in my lack of knowledge, I have hit another problem ...

When I try to test to sound device with :-

cat /dev/urandom > /dev/dsp

I get a /dev/dsp: no such device error.

Note I am not using ALSA.
Note I create my sound devices using a script AFTER kernel has booted, but before I modprobe the sis audio drivers.

I am getting so close, but once again am stuck with another 'final' hurdle :) Any help would be great,

Thanks, Ash

Frustin 08-03-2004 09:06 AM

try it with the alsa drivers then. is there any more audio devices?

Onyx^ 08-03-2004 09:40 AM

I do not have the resources in my embedded device to use it with the ALSA drivers (I also need to cross compile everything which means a PITA to set up ALSA). I would like to use just the standard OSS/Free drivers, which I am currently doing.

Not sure what final steps are needed to make it make some sound ...

Below are my audio devices.

/dev/audio
/dev/audio0
/dev/audio1

/dev/dsp
/dev/dsp0
/dev/dsp1

/dev/dspW
/dev/dspW0
/dev/dspW1

/dev/midi
/dev/midi00
/dev/midi01
/dev/midi02
/dev/midi03

/dev/mixer
/dev/mixer0
/dev/mixer1

/dev/music

/dev/sequencer
/dev/sequencer2


All times are GMT -5. The time now is 05:15 AM.