RE: [linux-audio-dev] embedded sound api.

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: RE: [linux-audio-dev] embedded sound api.
From: Torrey Hoffman (torrey.hoffman_AT_myrio.com)
Date: Tue Nov 20 2001 - 19:51:29 EET


(This isn't really on-topic for the audio-dev list, but maybe other
people are doing embedded audio apps or "appliance"-like Linux
systems for audio, so it's at least somewhat relevant...)

I've been working on an embedded system (a set top box, really)
running Linux for the last year. It boots up and goes directly
to decoding MPEG-2 to TV... our system runs X, but the principle
is the same.

The idea, of course, is that the user doesn't even need to know
it's linux - there's no text on the screen, no login prompt -
it just starts and runs the app.

Check out "Linux From Scratch", it is very helpful for building
a linux system up from source code. Even if you don't end up
using the resulting system, the education you get putting it
together is worth the time investment.

Then check out Busybox, which is incredibly useful for putting
together a small embedded system. It is quite easy to put
together a Linux system which boots and runs from 4 MB of flash
memory and runs a useful application. With 8 MB you can include
a full version of the Gnu C library, and with 16 MB you can have
X Windows - well, a stripped down version anyway.

I don't know what you plan for your user interface - if you have
a VGA-compatible screen, you could use the linux framebuffer to
draw graphics in, otherwise you will probably have to write it
from scratch.

Links:

Linux From Scratch: http://lfs.sourceforge.net
Busybox: http://busybox.lineo.com/
uLibC: http://uclibc.org/

Embedded Linux news/portal site:
  http://www.linuxdevices.com/cgi-bin/search_view.cgi?home=yes

You may want to get rid of the whole rc script approach completely,
and have "init" (or the busybox version of init) do some simple
system startup directly, and then run your application. This also
speeds up the boot process - no need to run shells which interpret
scripts - that flexibility is nice on a desktop or server but a
waste of space and time in an embedded system.

Minimal system ends up being:
- linux kernel
- C library (either glibc or one of the smaller versions like ulibC)
- A few essential configuration files in /etc that libc uses
        (stuff like timezone, networking, if you need it)
- busybox (which replaces init and about 2 dozen other essentials)
- Your application

Oh yeah, and if you are running with a real hard drive, I strongly
recommend a journaling file system. We've been using the reiserfs
patch for the 2.2.19 kernel for a year now, and we turn boxes off
without warning all the time - essential for an appliance, of
course - and we've never had a corrupted filesystem.

Good luck!

Torrey Hoffman
torrey.hoffman_AT_myrio.com

> -----Original Message-----
> From: Patrick Shirkey [mailto:pshirkey_AT_boosthardware.com]
> Sent: Tuesday, November 20, 2001 7:21 AM
> To: linux-audio-dev_AT_music.columbia.edu
> Subject: [linux-audio-dev] embedded sound api.
>
>
> Does anyone have any useful tips on how I can set up a system to boot
> without x and immediately start up a single recording api?
>
> A couple of us are starting work on a new portable machine
> and are just
> about to dive into the software side of things.
>
> I'm mostly in need of advice as to how to boot directly to an
> application without having to press any buttons other than the on/off
> button.
>
> I'm guessing it can be done wiht clever use of start up scripts like
> rc.d etc...
>
> TIA.
>
> --
> Patrick Shirkey - Boost Hardware Ltd.
> http://www.boosthardware.com - For the discerning hardware
> connoisseur.
> http://www.boosthardware.com/LAU/Linux_Audio_Users_Guide/
> ==============================================================
> =========
>


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Tue Nov 20 2001 - 19:48:06 EET