Saturday, August 18, 2007

Pulseaudio-0.96 on MIPS

Pulseaudio depends on libatomic_ops. However, libatomic_ops don't have support for mips.
I've created a patch for mips, though only work on 32bit userland. Get it here.

Pulseaudio now compiled and installed on my loongson box. Can't use it to play though. The following is some detailed info, if you are interested in.

My setup is to use alsa's pulse plugin.
I tried aplay, for example:
$ aplay /usr/share/sounds/alsa/Front_Right.wav
aplay: pulsecore/mutex-posix.c:75: pa_mutex_lock: Assertion `_r == 0' failed.
Aborted
Before this assertion failed, aplay is stuck on a futex system call.
connect(7, {sa_family=AF_FILE, path="/var/run/pulse/native"}, 110) = 0
send(6, "W", 1, MSG_NOSIGNAL) = -1 ENOTSOCK (Socket operation on non-socket)
write(6, "W", 1) = 1
gettimeofday({1187375795, 973686}, NULL) = 0
write(6, "W", 1) = 1
futex(0x45dd1c, FUTEX_WAIT, 1, NULL

Labels: , ,

1 Comments:

Anonymous Stuart Longland (Redhatter) said...

PulseAudio is a bit of a strange package... not only is there issues with libatomic_ops, but also with liboil which handles all the various ASEs such as MMX, SSE on Intel, 3DNow on AMD and Altivec on PowerPC.

This liboil, at last check, has no code whatsoever for MIPS. It works, but is dreadfully slow, which is bad because PulseAudio relies rather heavily upon it.

The end result, is that whilst my old wireless network server (Pentium 166MHz MMX w/ 64MB RAM) is able to do PulseAudio just fine, my 175MHz R10000 Octane stutters its way through an audio stream.

I haven't tried it on Loongson yet ... I suspect it should run okay, but will hit the CPU rather hard. A high-end R12000 Octane may also make it.

In your debug trace, I notice this message: send(6, "W", 1, MSG_NOSIGNAL) = -1 ENOTSOCK (Socket operation on non-socket)

Maybe I'm reading strace wrong (quite possible), but the message seems to be it complaining about /var/run/pulse/native not being a valid socket. Does netstat -anlp show PulseAudio listening on this file?

I found, by far this was my biggest problem with PulseAudio even on x86 -- getting client and server listening on the same socket. PulseAudio sounds like a great system, but I've found it lacking in my opinion.

8/19/2007 6:50 PM  

Post a Comment

Links to this post:

Create a Link

<< Home