In Dash PC
In Dash PC-logo
home | description | hardware | software | installation | inquire | links | forum | faq | contact
In Dash PC

software

The software section contains description of everything I used in my InDash PC. In short, I tried to use as less components as possible, so the installation is simple and small. That's why I decided to use Linux, which turned to be real good for my purposes.

In Dash PC - software1 In Dash PC - software2 In Dash PC - software3 In Dash PC - software4 In Dash PC - software5 In Dash PC - software6
In Dash PC - arrow1In Dash PC - arrow2
Linux stuff
As you recall this image means Linux.
Well, not exactly, I would say it is Embedded Linux. There is no major difference between regular Linux and Embedded one. The biggest difference is in size. You can hardly get Linux instalation from all major distributors in less than 100Mb, which is scary. At least for me.

I wanted something real small which can deal with my motherboard( EPIA-M ), this why I compiled kernel and built small Linux distro in about 4Mb. Of course it is not a full featured Linux with all the stuff it offers, but I didn't need 'all', so it works just fine for me.

Based on my experience, Linux tend to be raw in some areas, it hangs hard if you call drivers in a wrong sequence. It is hard to debug some stuff that you think does not work. Some of the features works in one kernel version and others not, in another version it's vise versa. Still I can go ahead and fix it, but not sure you want to have the same experience I had, just take whatever works for me and be sure it'll work for you.

See what's under the hood
kernel-2.4.23-epia1 Custom built kernel with all modules built-in, you can get my config file here. It includes all the drivers for EPIA-M motherboard such as:
  • VIA Rhine-II network support
  • VIA CLE266 viafb framebuffer support
  • VIA IDE drivers
  • VIA USB 2.0 suport
  • Longhaul support
  • ACPI support
  • VIA sound support through OSS
  • supermount, vfat and other FS types.
In order to build the same version you would need to download 2.4.23 kernel from kernel.org and apply the following patches from epiawiki.org site: patch-2.4.23-epia1.gz, patch-2.4.23-epia2-viafb.gz

Here is the article that may help you to build the correct kernel

You may ask why not 2.6.x ? I did thorough test against 2.6.6 and 2.6.7 and found that they are not even close to the stability of 2.4.23. Some of the drivers are broken( supermount for instance ), some of them does not work at all( vaifb does not produce NTSC signal ). Of course I can use my fingers to type it in, but hey, it is only 24 hrs in a day.
DirectFB-0.9.20 This is small video access library uses most of the features from VIA CLE266 graphics chipset making it possible to run my player without using X. I've got HW accelerated graphics with no more than 1Mb of display layer. Just imagine X or Windows running the same thing at this size.
Of course I changed that also to support HW DVD playback. But changes rather small and they fixes some of the flaws I found in the CLE266 driver. Get this patch and compile it yourself.

That's it ! Just add PyCar to it to get a full featured car pc app. Isn't it simple ?

In Dash PC - Linux embedded
PyMedia / Pydfb
Well, when I was thinking about making a car media application I was under impression that it will not be simple. I decided not to use any of the 'standard' languages such as C or C++ to develop it as I thought it would be impossible to have simple and flexible application out of it.

This way I decided to use Python which I used before for prototyping the high performance distributed database. It worked quite good for the size of the code I wrote. And moreover it was simple !

Well, the problem was how to use mutlimedia devices and process multimedia information. This way PyMedia came out. Basically PyMedia is the wrapper above some other popular libraries written in C such as ffmpeg, libdvdread and some SDL code.

Pydfb is a simple wrapper for DirectFB, so Python can use it.

I'm not going deep into details on that, just visit PyMedia's web site for more information.
In Dash PC - PyMedia logo
PyCar
That's it ! Regardless the Linux doing all the IO stuff. Regardless the PyMedia doing all the multimedia stuff. It is all separate and does not understand each other. You still want your music play, your video showing up, your devices to be recognized and used. Even if you have everything up and running you still need something that can glue it together for you so you can enjoy your ride !

The PyCar is a small application which works cross platform on Windows, Linux, cygwin using the same codebase and having the same look and feel. It was specifically designed for in-car use and integrates with small LCD screens via LPT, accepts touchscreen monitors and can talk to your headunit directly.

PyCar is open for you to have a test drive. It is free, open sourced and very capable to suit whatever you want it to do through the scripting objects and righ set of events.

In Dash PC - PyCar initial screen
In Dash PC - white_str1
In Dash PC - white_str2
Powered by phpBB2 Copyleft indashpc.org @ 2004