|
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. |
|
|
|
|
|
|
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.gzHere is the article that may help you to build the correct kernelYou 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 ?
|

|
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. |

|
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.
|

|
|
|
|