I'm a new member and new to OpenBSD on the desktop, so I apologize if I'm overlooking a prior thread after searching or just doing something incredibly stupid. Anyway, I posted this issue on a couple of other boards before finding this one (I've mostly been a FreeBSD desktop user, and just always went to their forums, I just want to be careful about not starting a BSD flame war here by getting into that or why I'm trying OpenBSD out for my desktop after using it on servers). So I'll copy and paste my issue here, and hopefully someone can help, thanks in advance.

Let me say before I post this that I have read the OpenBSD handbook end to end, and just about every thread I could find about this issue (which others have had, but just gave up on) in relationship to XFCE4 and OpenBSD 5.3 I realize how much work the developers put into that handbook, so I wanted to exhaust every option first.

Anyway, I've used OpenBSD on servers for years but another BSD for my desktop, by and large. I recently decided to jump ship, and was really impressed by XFCE4 on OpenBSD, and have everything set up with all off the applications that I need to make this my permanent desktop OS, except I cannot get any sound in XFCE. I have all of the gstreamer plugins (and gstreamer of course) installed, added myself to the wheel group, created an audio group and added myself to it. I followed the trouble shooting steps in the handbook, here are my outputs:

So the card is recognized (using azalia), data is flowing, I'm sure it should be able work if I can figure out whether this is a gstreamer or permissions issue. I apologize if it's something really simple. I'm really liking it too much to give up on it just because of a sound issue probably caused by stupidity on my part.

Also, I went ahead and installed the KDE 3.5 desktop just to see if this was an XFCE specific problem. When I manually start the KDE Soundserver, I get The application Soundserver (artsd) crashed and caused the signal 11 (SIGSEV). I double checked, libsndfile is installed and the libsndio module is loaded, the libsndio module appears to be causing the KDE Soundserver to crash.

I don't know anything about gstreamer, but I do see in your error message the sentence, "Some sound system specific GStreamer packages may be missing."

Assuming you are running 5.3-release, the version of xfce4-mixer for that -release has gstreamer-0.10 as a dependency. Specifically, just these two dependent packages: gstreamer-0.10.36p5 and gstreamer-plugins-base-0.10.36p5. There are a number of other gstreamer plugin packages, you may require one or more of these:

If you're running something other than 5.3-release, package versions may differ.

Some things for you to consider, as well, because you don't mention them. The sound tests are described in the OpenBSD FAQ 13. (The OpenBSD Project doesn't have a Handbook.)

Are you getting any sound output when you test cat(1) with /dev/audio?

Are you getting any sound output when you test aucat(1) with /dev/sound?

Which soundcard is reported in your dmesg for azalia0? The azalia driver is a generic HD audio driver.

Hint: if you post a complete dmesg here, it will be easier for us to see exactly what version/flavor of the OS is being used, what your architecture is, and what hardware is involved. Your grep showed nine dmesgs in memory, we only need one.

Also, I am running 64 bit 5.3, and I went ahead and installed all of the gstreamer plugins listed at the Planet Unix mirror for 5.3/packages/amd64 (I'd list the url but I don't have 5 posts yet) so I should have the correct versions that you listed.

Trying cat(1) with /dev/audio and aucat(1) with /dev/sound did not produce output.

The dmesg you selected to post was from the minimal RAMDISK kernel used during install. That kernel is used for install, upgrade, root partition maintenance, and disaster recovery. It does not include drivers for hardware not required during install, which is why so many devices listed are shown as not configured, kernel-speak for "I don't have a driver for this device." Along with missing a device driver for your 82801H audio, notice that the kernel kernel only uses one of your cores, cpu0.

Please look for a dmesg from a GENERIC or GENERIC.MP kernel.

Quote:

Trying cat(1) with /dev/audio and aucat(1) with /dev/sound did not produce output.

Lets solve that problem first. Solving it may eliminate your xfce4-mixer/gstreamer problem. Please post the entire output of $audioctl -f /dev/audio so that we can see the default parameters. Also, because this is azalia(4), which has special mixer controls that do driver management, please post the same for mixerctl.

---

Edited to add: please wrap your pasted console output in [code] and [/code] tags, it will make it easier for us to read them.

Okay, first off here is my GENERIC.MP output (this just isn't my day, I actually pasted all 9 dmesg outputs in my last post by accident as I generated one master .txt for all of them, and when I edited my post I erased all but the first which came from the install CD for some reason):

I apologize if I'm overlooking something really simple here, I've had to troubleshoot OSS with FreeBSD before, but a lot of this is new to me.

EDIT: Also, all of my hardware is recognized and working properly except for my sound device. I wasn't sure if it would be appropriate to send in my generic dmesg output now (as the FAQ asks for it to be sent to dmesg@openbsd.org) for hardware compatibility until after I get this resolved.

Also, if worse comes to worse here, is there an HD audio PCI-e card that you would recommend for OpenBSD? I'm not opposed to just buying one and resolving the problem that way if need be.

Sorry about that, I'm really trying not to waste your time more than need be. Anyway, here is that output:
audioctl -f /dev/audio returns

Code:

audioctl: /dev/audio: Device busy

mixerctl -f /dev/audio returns

Code:

mixerctl: /dev/audio: Device busy

Also, I don't know if this helps, but I installed Dragonfly BSD on another hard drive just to see if it was common to non-FreeBSD BSD's (given that they make use of linux drivers), and Dragonfly BSD has the same problem with my hardware. I can get a complete XFCE4 desktop, but I get the exact same gstreamer error message.

No worries, Ben, there's a learning curve to Unix-like systems, and on top of that each has its own unique attributes.

"Device Busy" tells me that /dev/audio is currently "in-use" by an application: gstreamer, or xfce4-mixer, or another link in the chain of sound tools.

You can find out what is using it with fstat(1) and stop that application, but I think it may be easier to just get your audio problems resolved from a console, when XFCE is not running.

You can "log" console activity in a file using script(1), just make sure to use col(1) to strip control characters (like backspace) from the resulting typescript output file before later edit/copy/paste. For example:

One correction to my prior recommendations. I noticed I gave you one incorrect command. The mixerctl(1) is used with /dev/mixer, not /dev/audio. The correct syntax should be $mixerctl ... connecting it to /dev/audio won't work.

I have compared your audioctl output with a working Intel 82801GB of mine that uses the azalia(4) driver also. There was only one field with a difference: my 82801GB has a record.gain of 125, your 82801H has a record.gain of 124. All other defaults are identical.

This means that your audioctl default settings are normal. I'd still like to see the output from mixerctl.

Tests to perform:

While XFCE is not running, are you able to hear anything when using cat(1)? And aucat(1)? You told us "no", earlier, but if you were testing while using XFCE, /dev/audio and /dev/sound were in use and these commands would have failed and along with no sound output should have produced "device busy" error messages. Testing again without using XFCE should help us isolate the problem.

Using cat(1) /dev/sound returns a y with an umlaut symbol, produces a system sound, and causes my console to hang (and you were correct, I was running these commands from a terminal emulator in XFCE, this time I rebooted and did so from the console).

Using aucat(1) /dev/audio returns

Code:

snd0: /dev/audio failed to open audio device

Also, I can hear system sounds from the console before starting xorg.

Last edited by BenHur; 15th August 2013 at 10:45 AM.
Reason: Clarification

The cat(1) utility sends its output to the file descriptor known as standard output. That's to the shell -- whether an xterm window, or a console. As shown in FAQ 13, you need to redirect the output to the sound device, using the greater than symbol >. If you forget to use it, your sound file will be sent to the console as if it were text, then after that file, cat will attempt to "read" the sound device and output anything from it to the console also.

I believe that is what happened during your test. Please retest. Be sure to use the greater than symbol on your keyboard to redirect output to the sound device. See the cat(1) man page. The command should be:

$ cat my.sound.file > /dev/audio

Quote:

...produces a system sound...

You are hearing a standard device on i386/amd64 architecture motherboards called the PC speaker. These beeps are not produced by your Intel 82801H device.

The aucat(1) command does not redirect, you use either the -o (for "output") to record sound, or -i (for "input") to listen. See the aucat(1) man page. As per FAQ 13, the command would be:

$aucat -i my.sound.file

--

Your mixerctl settings are very different from mine. It will take time to review line by line. This is not unexpected, we have similar soundcards but different hardware implementations.

Last edited by jggimi; 15th August 2013 at 12:29 PM.
Reason: clarity, typo

$ cat my.sound.file > /dev/audioYou are hearing a standard device on i386/amd64 architecture motherboards called the PC speaker. These beeps are not produced by your Intel 82801H device.

I will go ahead and try again, but just to clarify, I don't have a PC speaker hooked up to my motherboard, I'm using a generic compact case for the board and it was difficult to fit one in (so I didn't). I am hearing the system sounds through my headphones (hooked into the jack on the motherboard itself), which is why I thought that was relevant.

It's difficult to confirm what happens with the beep under Intel HD Audio. Intel's reference documentation for HD Audio only mentions "beep" in reference to volume within the ICH7 (AC97) register. The ICH7 documentation only states that it supports passive speaker connections for ACZ_RST#. Based on that small amount of information, I assume its up to individual motherboard designers how or if they implement PC Speaker.

Intel-hda sound drivers are a morass with manufacutures hard wiring the chip in different ways. Using alsa in linux one often has to modify the sound module. Examples are here. I found a linux user with same model of motherboard who had success by using the 6stack-dig option. OpenBSD tries to accomodate the variations automatically.