[oss-devel] Announcing OpenSound System port to BeOS/Haiku

François Revol revol at free.fr
Wed Jun 27 20:08:37 EEST 2007


(resent as oss-devel rejected it due to the size of the patch)

Hi there,
I have the pleasure to announce I have ported OSSv4.1test to BeOS.
It's not finished yet, but it runs and plays some sound.

The goal is to use its drivers to get wider audio support for Haiku, 
the FreeSoftware rewrite (under BSD/MIT) of BeOS.
BeOS, and Haiku, have a high level C++ API for media, so we won't port 
OSS apps (but some have been ported to use our Media Kit), but rather 
use OSS from the Media Kit, either by writing an OSSMediaNode plugin to 
support the existing ioctls, or port the drivers to implement the so 
called "multi audio" ioctls used by the Media Kit to talk to some 
existing lower level drivers. (some older drivers use a different ioctl 
set already, publishing under /dev/audio/old/).

Current limitations:

- built as a single binary due to limitation in cross-module symbol 
referencing (our kernel enforces a clean API to each module by forcing 
others to use a defined list of pointers to functions, which is nice to 
maintain compatibility but doesn't help there). Next phase should fix 
it.

- Locking isn't correct yet, it seems other OSes don't need much 
locking, how don't they even crash ? :p It seems devices become busy 
after several uses, so ref counting is broken.

- it currently pollutes our clean hierarchical devfs, which we had way 
before linux... should later publish stuff under /dev/audio/oss/.

- no usb support (yet), but usb support in BeOS is rough anyway and 
Haiku's is underway. all PCI devices should work though. Tested with 
both an ATI IXP and Ich Sis.

- it doesn't load under Haiku yet, due to a missing __ucmpdi2 symbol in 
the kernel. Seems to be some runtime stuff to be fixed soon.

- mixer control doesn't seem to be working (ossmix vol 2 does set to 2 
when read back but doesn't change actual output).

The patch against 20070624 is available here:
http://revolf.free.fr/beos/patches/oss-v4.1test0-070624-beos.diff.txt
It's probably not ready for official inclusion yet.

People wanting to build it should follow the official way after 
patching:
mkdir build
cd build
/path/to/configure
make build

This puts binaries in prototype/...

When installing to test, the oss_core binary must be both copied as:
/boot/home/config/add-ons/kernel/drivers/bin/oss_core
and:
/boot/home/config/add-ons/kernel/media/oss
because the driver loads itself as a module.

Attached is the output of some commands to serve as "screenshot" :)


A test binary is available:

wget http://revolf.free.fr/beos/oss-beos-v4.1test-bin.zip
unzip oss-beos-v4.1test-bin.zip -d /boot
rescan oss_core
osstest

Make sure you quit media_server and media_addon_server first, they 
might be using the card.

Cheers,
François.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: not available
Url: http://mailman.opensound.com/pipermail/oss-devel/attachments/20070627/0aa2d311/attachment.bat 


More information about the oss-devel mailing list