how to create a embedded linux os from scratch on Beagle

Hello,

I want to develop a device to monitor the water usage on tank.. How
to build an interactive linux OS on beagleboard to display it
attractively....?

help me out...

Dear Vino,

I want to develop a device to monitor the water usage on tank..

sorry, I do not know if anyone has tried this. But I guess you need
sensors and so on.

How to build an interactive linux OS on beagleboard to display it
attractively....?

You can use any supported GNU/Linux distribution on your BeagleBoard and
use existing packaged applications. But you can also develop and try out
normal x86 applications on your desktop system and port them to the
BeagleBoard. If distributions distribute them as packages already you
can easily install them on your BeagleBoard too.

Dour subject line does not really summarize your point. You can for
example use Ȧngström [1] or other GNU/Linux distributions with your
BeagleBoard.

I guess you have to ask more specific questions and do a lot work on
your own. It would be great if you could report you achievements back to
this list.

Thanks and good luck,

Paul

[1] http://www.angstrom-distribution.org

This made me think, so I decided to look on SparkFun.com to see what
they might have for a sensor for this. I found this:
http://www.sparkfun.com/products/9009

It's an ultrasound sensor that can be used to measure a range to
something, including fluids. See
http://www.maxbotix.com/MaxSonar-EZ1__FAQ.html#What_can_the_weather_resistant_LV-MaxSonar®-WR1™_(IP67)_outdoor_sensor_be_used_for?

So you hook this guy up to the serial port (I think, it might not be
quite that simple) and manage it through a serial interface. Your UI
could be anything, but since you're measuring water in a tank I'm
guessing the monitor is not near the tank, so just use a daemon reading
data from the serial port and use a network connection to query the
daemon from another computer where you display it. It's easier to place
the BeagleBoard on a short serial cable with a long ethernet connection
(or wireless ethernet) than deal with a long serial cable, IMHO.

Kind of a neat idea. Sounds like a good example application for the
BeagleBoard education project.

As to the Linux part of the problem, any of the available distributions
would work as a baseline since you only need two things from it: network
support and serial support. Most of the distributions discussed on this
list (Angstrom, Ubuntu, RNelson's distros, Koen's BB Demo image, etc.)
should suffice, though you may have a little trouble with pre-xM boards
in trying to get the network up over USB. With the xM board you may
have a little less trouble since you can use wired ethernet. Any of
these distros will come with GTK+ or Qt, which allows creating a nice
UI. If you just write a daemon to run on the BeagleBoard and connect to
it via a network then your UI could be on another computer and allow you
to write the UI in what ever UI toolkit you choose.

Hope that helps a little.

There are a number of completed Arduino projects that do this exact same thing. It would be a breeze to just plug it into the beagles serial port to fetch the data.

http://www.practicalarduino.com/projects/water-tank-depth-sensor

I want to develop a device to monitor the water usage on tank.. How
to build an interactive linux OS on beagleboard to display it
attractively....?

This is what I've been experimenting with, building an OS for the BB
from source with gnuLibc, Xorg, GTK+, and Qt Embedded.
After spending 5 days working on it, I've completed building glibc and
Xorg. I still have the later two to work on, hopefully they will be
completed sometimes this month if I had time to work on them.

Before you start out building an OS from scratch; i need to warn you
that it is a long/difficult project, especially if you have no
experience in building a native build OS before. Cross building is
alot more complex because it depends much on your host
OS. For example, to cross build glibc, you need at least a recent
version of glibc header files on the host OS otherwise it is almost
impossible to build. I found this out the hard way and wasted 3 days
just for cross building glibc.

Try to use an existing distro if possible, unless you have a specific
need/requirement. Good luck

-toan

You sound about where I am with BeagleBox. I'm not targeting Qt (I'm
not a C++ fan) but have the core system up with X running a port of
Matchbox.

One problem: I can't seem to get the xorg omapfb driver built with the
neon extensions. I'm pretty sure my Crosstool-NG build has it enabled,
but when I try to use --enable-neon with the driver it fails during
compilation. See
http://www.graphics-muse.org/bugs/index.php?do=details&task_id=75

Any chance you're using Crosstool-NG for your cross toolchain? Have you
been able to compile the driver with neon enabled?

thanks for the help and it makes me to think more on my area... I will
update here soon

Regards
Vinod

I am working on it and I will update my works soon here
Thanks a lot
-Vinod

Michael,

One problem: I can't seem to get the xorg omapfb driver built with the
neon extensions. I'm pretty sure my Crosstool-NG build has it enabled,
but when I try to use --enable-neon with the driver it fails during
compilation. See
http://www.graphics-muse.org/bugs/index.php?do=details&task_id=75

At the moment, i am using software floating point support. I'll go
back and add support for VFP & NEON once I got a prototype working
first.

Any chance you're using Crosstool-NG for your cross toolchain?

No, I am not using Crosstool-NG. I build the cross toolchain from
source. * i know, many people would disagree with this method*.

Have you been able to compile the driver with neon enabled?

No, I'll let you know the progress about 1-2 months from now when I
had a chance to continue on this project.

BTW, good luck on your new book release!

-toan

> Any chance you're using Crosstool-NG for your cross toolchain?
No, I am not using Crosstool-NG. I build the cross toolchain from
source. * i know, many people would disagree with this method*.

Actually, Crosstool-NG is a metabuild for the toolchain. I download
Crosstool-NG, compile it, then provide it a config file to generate
toolchain. It downloads the bits from the 'net and builds them
according to my config settings.

I do this because I'm trying to get a better grasp of the entire process
from toolchain to bootloader to kernel to rootfs and apps. So I don't
have a problem with the idea of building the toolchain manually.

BTW, good luck on your new book release!

Thanks. It's always a loooong process. I'll be happy to get it done
and out of the way.