Ticket #247 (reopened enhancement)

Opened 4 years ago

Last modified 3 years ago

OSS4 is incompatible with module-oss, due to some subtle API changes to OSS3

Reported by: yarrow Owned by: lennart
Milestone: Component: module-oss-*
Keywords: Cc:

Description

I have Aureal Vortex 2 au8830 soundcard.
My version of oss: Version info: OSS 4.0 (b1013/200802012055) (0x00040003)
My version of pulseaudio: pulseaudio 0.9.9
uname: Linux concordia 2.6.24-1-486 Mon Feb 11 13:52:45 UTC 2008 i686 GNU/Linux

When I start pulseaudio i receive such messages:

alexv@concordia:~$ LANG=C pulseaudio
W: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
W: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
E: module-oss.c: DSP shutdown.
E: module-oss.c: DSP shutdown.
E: module-oss.c: DSP shutdown.
E: oss-util.c: open('/dev/dsp28'): No such file or directory
E: module.c: Failed to load module "module-oss" (argument: "device=/dev/dsp28"): initialization failed.

And I don't have any sink or source.

This is a string from defaults.pa:
load-module module-oss device="/dev/dsp" sink_name=output source_name=input

I've tried to create /dev/dsp28:
alexv@concordia:~$ ll /dev/dsp*
lrwxrwxrwx 1 root root 21 Фев 27 19:16 /dev/dsp -> /dev/oss/vortex0/pcm0
lrwxrwxrwx 1 root root 22 Фев 27 19:16 /dev/dsp0 -> /dev/oss/via82330/pcm0
lrwxrwxrwx 1 root root 21 Фев 27 19:16 /dev/dsp1 -> /dev/oss/vortex0/pcm0
lrwxrwxrwx 1 root root 21 Фев 27 19:16 /dev/dsp28 -> /dev/oss/vortex0/pcm0
lrwxrwxrwx 1 root root 22 Фев 27 19:16 /dev/dsp_ac3 -> /dev/oss/via82330/pcm0
lrwxrwxrwx 1 root root 22 Фев 27 19:16 /dev/dsp_mmap -> /dev/oss/via82330/pcm0
lrwxrwxrwx 1 root root 22 Фев 27 19:16 /dev/dsp_multich -> /dev/oss/via82330/pcm0

but this doesn't help: module-oss loading but I still cannot see any sink or source.

Change History

  Changed 4 years ago by yarrow

  • component changed from daemon to module-oss-*

  Changed 4 years ago by yarrow

  • severity changed from normal to major

in reply to: ↑ description   Changed 4 years ago by yarrow

Replying to yarrow:

I have Aureal Vortex 2 au8830 soundcard.

...

but this doesn't help: module-oss loading but I still cannot see any sink or source.

May be Pulseaudio cannot work with VMIX so I should try SOFTOSS?

  Changed 4 years ago by lennart

  • status changed from new to closed
  • resolution set to wontfix

Hmm, apparently OSS4 is signaling some POLLxx constant on poll() which OSS didn't do.

Please contact OSS4 upstream and request they fix compatibility with OSS3.

Oh, and the best thing is to switch to ALSA.

  Changed 4 years ago by atrus

I'd love to see some sort of progress here. Pulseaudio devs seem to consider this a bug in OSS (because pulseaudio worked with earlier OSS versions), and the OSS devs think it's a pulseaudio problem because of which dsp it's accessing.

OSS drivers seem to work pretty well, and I'd love to be able to use them properly in the context of pulseaudio.

Here's the OSS dev forum post:

http://4front-tech.com/forum/viewtopic.php?p=8584

follow-up: ↓ 7   Changed 4 years ago by lennart

As mentioned the problem is that OSS4 signals some POLLxxx constant on poll() which normal OSS doesn't do. They broke compatibility. As I already said.

That PA tries to open a /dev/dsp28 is probably due lacking HAL integration of OSS4. But that's only a secondary problem, and doesn't hinder you to use PA on OSS in any way.

in reply to: ↑ 6 ; follow-up: ↓ 8   Changed 4 years ago by Saoshyant

  • status changed from closed to reopened
  • resolution wontfix deleted

Replying to lennart:

As mentioned the problem is that OSS4 signals some POLLxxx constant on poll() which normal OSS doesn't do. They broke compatibility.

OSS4 is not completely backwards-compatible with OSS3. There's good reasons why this is so. I'm afraid this will be something that pulseaudio will have to deal with, forcing a distinction between OSS3/Free and OSS4 to be necessary.

in reply to: ↑ 7   Changed 4 years ago by lennart

  • summary changed from module-oss fails to load. to OSS4 is incompatible with module-oss, due to some subtle API changes to OSS3

Replying to Saoshyant:

Replying to lennart:

As mentioned the problem is that OSS4 signals some POLLxxx constant on poll() which normal OSS doesn't do. They broke compatibility.

OSS4 is not completely backwards-compatible with OSS3. There's good reasons why this is so. I'm afraid this will be something that pulseaudio will have to deal with, forcing a distinction between OSS3/Free and OSS4 to be necessary.

Yes, as I said, ALSA's compat with OSS is better than OSS4's.

The OSS4 docs don't contain any information about the meaning of the additional POLLxx codes. The current code assumes that they signal some kind of error (usb audio device unplug and suchlike), which is the reason we react on those codes as we do.

If you want me to help you, try to figure out what those codes mean. I am not really interested in investing my own time in figuring in which way exactly OSS4 differs from OSS.

Or take it the other way: PA supports most things that are OSS3-compatible just fine. If you want it to support OSS4 too, then *you* have to supply the necessary information.

  Changed 4 years ago by lennart

  • type changed from defect to enhancement
  • severity changed from major to normal

  Changed 4 years ago by coling

Any compatibility patch for OSS4 would be accepted, but I doubt it's very high on the priority list from this end, so it will probably require external contribution if it is to be implemented anytime in the near future.

  Changed 3 years ago by Zorael

Has this been resolved, yet?

ALSA works *very* iffy with my Intel HDA chipset, which OSS4 handles beautifully. I'd very much like to see Pulse play nice with it, since moving sources between sinks is just incredibly handy. I curse myself for not knowing how to code.

  Changed 3 years ago by coling

Like I said before, the main developer will likely not work on this himself and thus any OSS4 compatibility patches will have to come from the community.

You can try asking on the ALSA mailing list to give feedback in order to get your Intel HDA working nicely tho', as OSS4 support will still not support the glitch-free mechanisms that can be provided by ALSA (AFAIK).

Note: See TracTickets for help on using tickets.