No announcement yet.

Experiences with Linux on a CarPC

  • Filter
  • Time
  • Show
Clear All
new posts

  • Experiences with Linux on a CarPC

    As I love Linux it was a natural choice to use it in my carPC. I have a pretty slow computer (miniITX with Transmeta Crusoe 533MHz, 64 Mb ram) so the software have to be gentle with the resources.
    I began to test various storage hardware, but I never succeded booting a CF-card with an IDE-CF adapter. Now I use a 2,5" harddrive, it's small and quiet and it's muck easier to work with.

    What distribution to use? I considered Slackware and Gentoo as those are my usual distros of choice, but then I read about Arch Linux ( which has really short boot times. It is not userfriendly though, so it's not for the beginner. I managed to install it and it supports my hardware without problems. I use Fluxbox as windows manager which is pretty light, with Fluxbox started the computer still has 2/3 of it's memory free. When I got this far it was time to see if I can get the gps and Wifi going. I also wants to tweak the installation to get rid of the login and so.

    My GPS device is a BU-303 which talks NMEA. Neat and cheap, bought the device for about 45¬. The first software I tested was GpsDrive ( which works really well. Check that the pl2303 module is enabled in the system kernel, install GpsDrive and launch. Set GpsDrive to use NMEA and set the port to /dev/tts/USB0, and we are ready to go. Maps are easy to get if you are connected the the net. Click download map, choose resolution and download. Done!

    I wanted to use a usb-connected card from Philips, not that it is the easiest card to use but I had it laying unused in a drawer. There's no native Linux support, so I have to use Ndiswrapper and Windowsdrivers:
    Install Ndiswrapper:

    pacman -S ndiswrapper

    Go to and find your card. Mine was a Philips CPWUA054 usb 11g:

    Card: [Philips] CPWUA054 usb 11g
    * Chipset: Accton Technology Corp
    * usbid: 083a:5501
    * Driver: provided in CD : ccucpwua.exe cpwua2d.inf cpwua2d.sys
    * Other: 2.6.9-gentoo-r4, Ndiswrapper 0,11 , works fine but got once a kernel oops, I'll be back if I get it again

    I copied the drivers from the cd and run the following commands:

    ndiswrapper -i CPWUA2D.inf
    ndiswrapper -l
    Installed drivers: cpwua2d driver installed, hardware present
    depmod -a
    modprobe ndiswrapper
    ndiswrapper version 1.15 loaded (preempt=yes,smp=yes) ndiswrapper: driver cpwua2d (Royal Philips Electronics N.V.,05/27/2004, loaded wlan0: vendor: 'Wireless USB Adapter 11g' wlan0: ndiswrapper ethernet device 00:30:f1:dc:e2:16 using driver cpwua2d, 083A:5501.F.conf wlan0: encryption modes supported: WEP; TKIP with WPA; AES/CCMP with WPA usbcore: registered new driver ndiswrapper

    The hardware seems to be ok, time to configure the network:

    iwconfig wlan0 mode Managed
    iwconfig wlan0 key restricted XXXXXXXX
    iwconfig wlan0 essid ESSID

    Test that values are set:

    iwconfig wlan0
    wlan0 IEEE 802.11g ESSID:"MyEssid" Mode:Managed Frequency:2.447 GHz Access Point: 00:13:10:3F:4B:5C Bit Rate:36 Mb/s Tx-Power:32 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:XXXX-XXXX-XX Security mode:restricted

    dhcpcd wlan0
    ifconfig wlan0
    wlan0 Link encap:Ethernet HWaddr 00:30:F1C:E2:16 inet addr: Bcast: Mask:

    All ok! I wanted the card to be configured after reboot, so I edited rc.conf:

    nano /etc/rc.conf
    modules(ndiswrapper ...)
    wlan0="wlan0 netmask broadcast"
    INTERFACES=(lo eth0 wlan0)

    nano /etc/conf.d/wireless
    wlan_wlan0="wlan0 essid MyEssid key s:wirelesspassword"

    I haven't got the settings in rc.conf to work fully, have to try that some more.
    Edit: Working now with above settings!

    First tests with music is done with the small command line based player mpg321.
    Sound is handled by ALSA which has to be installed:

    pacman -Sy alsa-lib alsa-utils

    Next, find out which soundcard we're dealing with:

    00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 40)

    Check which module to use on, this in my case gives snd-via82xx. Load module:

    modprobe snd-NAME-OF-MODULE

    Start volume control (alsamixer) and unmute channels Master and PCM (In my case I had to unmute Headphone too, but that's unusual). Press M to unmute, arrow up to raise volume, Esc to quit.
    Add snd-NAME-OF-MODULE to the list of MODULES in /etc/rc.conf (MODULES=(snd-via82xx)) to have sound after next reboot. Install mpg321 and try to play a track:
    pacman -S mpg321

    mpg321 ministry.mp3
    High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.
    Version 0.59q (2002/03/23). Written and copyrights by Joe Drew.
    Uses code from various people. See 'README' for more!
    Title : Lieslieslies Artist: Ministry
    Album : Rio Grande Blood Year : 2006
    Comment: Lb:13th Planets C:Promo Genre : Industrial

    Playing MPEG stream from ministry.mp3 ...
    MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

    ...and Al is screaming LiesLiesLies!

    To use soundcard as a regular user you have to be in the audio group. Open /etc/group as root and add user:

    audio::92: patrik

    I don't think I will use DVB in the car, but I try to install it for an article I'm writing. It doesn't hurt to share the experience, and this is a good notepad for me when I have forgotten how I done it...

    The hardware is a usb-connected Twinhan USB Ter ( The device is plugged in and dmesg is run:

    dvb-usb: did not find the firmware file. (dvb-usb-dibusb-
    I download the missing firmware from into /lib/firmware which I first create:

    mkdir /lib/firmware
    cd /lib/firmware

    I unplug the device and plug it in again:

    dvb-usb: found a 'TwinhanDTV USB-Ter USB1.1
    DVB: registering frontend 0 (DiBcom 3000M-B DVB-T)

    Looks good!
    To tune and scan channels we need dvb-apps, which is best to download via CVS. Lets install CVS:

    pacman -S cvs

    Then we download and install dvb-apps:

    cvs -d server:[email protected]:/cvs/linuxtv checkout dvb-apps
    cd dvb-apps/

    Change directory:

    cd util/scan/

    Scan for channels. Look in folder dvb-t, dvb-s or dvb-c for a sender near your location:

    ./dvbscan dvb-t/se-Trollhattan > channels.conf

    I try to watch DVB with MPlayer, let's install it:

    pacman -S mplayer

    Start MPlayer so it creates it's config-dir, stop it and copy the channel list we made above:

    cp channels.conf /home/user/.mplayer

    Start MPlayer again:

    mplayer dvb://

    If everything worked out ok MPlayer will now show the first channel in the channel list. I haven't figured out exactly how to switch channel yet, but if you use KDE the player Kaffeine is recommended for DVB use.
    This works good, a bit amazing though as Twinhan recommends a PC with a 2GHz CPU, 256 MB ram and Windows for this unit... Here we are at a 533MHz with 64 MB ram and Linux

    Well I tried some frontends now. Some good, some is a pain to install.
    MythTV - Easy to install, good to use but slow.
    Mpeg Menu System V2 ( - Good! But unmature and hard to launch external commands.
    Freevo - it's nice on my workstation, but a real dependency hell to install on Arch... Got it installed now, but it's too slow on my system.

    Guess I'll stay with MMSV2, has been working on a solution for the external GPS-software that works (see below).

    I've added a Bluetooth-usb-dongel to the setup to connect to the internet with my mobile phone. Nothing fancy really but it works. Tip: Use Wvdial instead of all those creepy configurationscripts. My /etc/wvdial.conf looks like this:

    [Dialer BT]
    Modem = /dev/rfcomm0
    Phone = *99#
    Username =
    Password =

    Control/Input device
    At first I did some experiments with a usb-connected gamepad but didn't find it useful. Then I bought a usb-connected numpad which seems to be usable. The first thing I did was to use Fluxbox's configurationtool Fluxkeys to set some keyboard shortcuts up (KP = keypad = numpad):

    KP_Add = Next window
    KP_Subtract = Close (? not working good)
    KP_Divide = MMS
    KP_Multiply = Gpsdrive

    This way I can press * on the numerical pad to launch Gpsdrive, / to launch MMS and + to switch between windows. I also had to alter $HOME/.Xmodmap to be able to use the arrowkeys on the numpad in MMS:

    keysym KP_Up = Up
    keysym KP_Down = Down
    keysym KP_Enter = Return

    I also added 'xmodmap $HOME/.Xmodmap' to $HOME/.xinitrc.
    Now I can launch MMS and browse the menus with the numpad, Gpsdrive works ok to. I then switch between these two with the + key.

    To dialout to the internet I used Fluxkeys like this:

    KP_Delete ExecCommand xterm -e wvdial BT

    I also had to 'chmod u+s /usr/bin/wvdial' to let users dial out. Now when I press Del on the numpad a dial-up GPRS connection is made and I can surf!

    The display has arrived! I now has a nice setup on my desk with a PC power supply, mainboard, VGA-TV-card and the in-dash monitor. The display is widesceren and I have to adjust the resolution.

    To do list:
    -Better maps for GpsDrive - Done
    -Install Wifi-card - Ok
    -Buy and test an in-dash monitor - Ok
    -Test sound and mp3-apps - Ok
    -Check out frontends - Done
    -Make a shortcut on the numpad to connect to the internet. - Ok
    -Volume control (maybe use another button for Next Window and use + and - to regulate volume?)

  • #2
    Cool. What do you plan to use for your player. I'm going to have to check out ArchLinux - I never realized it has a package manager..


    • #3
      I updated my post above with some sound info. As you can see I used mpg321 for now, but I have to see what fits with the frontend. Going to investigate frontends now...


      • #4
        stupid question of the year

        Does it have any wierd quirks, or does it do anything outragously stupid for/because of the shortened load time?
        "Flying is easy, Just jump at the ground and miss"
        --Ford Perfect, HHGTTG


        • #5
          No I don't see it's doing something stupid, it's just quite fast. The computer and harddisk I'm using is slow, 533MHz/64MB, 4200 rpm harddisk, and it goes from button push to ready-to-use Fluxbox in 83 seconds.
          Not that I'm pleased with that, I believe it can be tuned to under 60s.


          • #6
            yah it prolly can get tuned a lil past that if you wanted to upgrade the hardware i guess ;P I might have to give it a spin when i get back to the states lol.
            "Flying is easy, Just jump at the ground and miss"
            --Ford Perfect, HHGTTG


            • #7
              My 2c:

              I've been using Linux in my carpc for about a year and change now and can honestly say that except for navigation, I'm completely satisfied with my choice. Since I developed my own frontend software, my situation is a bit unique, but I can say without a doubt doing many of the things I have my system doing, the way I want them done, would have been much more difficult on a Windows system if not impossible, and certainly more expensive. I'm not a Linux zealot or an "I hate Windows because Linux is better so there" type person either, but for me it was the better choice.

              Anyway, on to what I really wanted to post; the guts I'm using and the results I've gotten:

              Frontend: Silverwolf v1.3 (v2.0 in development)

              Of course this is my favourite frontend because I'm the author.

              MPG123 (not MPG321):

              The reason versions of Silverwolf prior to v1.3 used MPG123 was for the socket connection it provided and it worked very well, except that it makes the setup for the system as a whole a bit more complicated. The current version no longer uses MPG123.

              Xine/Xine libs:

              Xine does everything I want it to; it plays DVDs from both the hard drive and from an external player, and will display the TV tuner and auxilliary video inputs from the PVR card. It works extremely well, except that it will cause hibernation to fail if it is running, so the frontend exits it as fast as possible when the frontend is in hibernate mode (as opposed to shutdown mode). It supports a socket connection for remote control, input from stdin, and every file format I need to deal with, including ISO format which is what I use for storing DVDs on the hard drive.

              WLan utils:

              The frontend uses iwlist to scan for available hotspots and since moving to an RT2500 based card instead of a LinkSys, I've had very few problems. The LinkSys had to use ndiswrapper that had issues (that may be resolved now but I haven't used it for quite a while except in one of my older laptops).

              The wlan configuration is handled by the rt2500 driver via config files generated by the frontend, so none of the other utils are necessary. This may change in the v2.0 version of Silverwolf as it's meant to be more generic (not tied to specific hardware) but it works so well in its current form I'm torn about that for v2.0.

              FMOD libraries:

              This wipes out several requirements in one fell swoop. The frontend now uses these libraries internally for sound and playing back music and in v2.0 (possibly also the current version if I have time) the speech synthesis. It will also be used for the tag reading. It illiminates the previous requirements for mpg123, aRts, KDE and festival all at once. I'm still using festival in v1.3 (the current version of Silverwolf) but the new 2.0 version will use its own speech synthesis. v1.3 uses libid3 for gathering tag info but I will be using FMOD for that as well in v2.0 so that's another requirement that will be gone.


              I have no problems here. I opted not to use mbrola with it even though it sounds a bit better, just to keep things simpler. v2.0 will use its own "pseudo-synthesis" with a database of spoken phrases, numbers, etc. I've had zero problems with festival though and would definitely recommend it. I've found even when it says stupid things it wows the non-techno-types when "the car talks".


              That's always the one issue with Linux, although I've seen in other threads that people have gotten some decent Windows apps working with wine and other emulators, so I may give that a whirl. My current vehicle already has a navigation system so I've been pretty lazy about implementing it.


              I'm currently using the following in my own system:

              VIA MII-12000 motherboard; I haven't had any problems thus far with the motherboard itself. The 1.2 GHz CPU has been able to handle everything I want to do so I'm happy. With the current hardware I have it pulls about 3 to 3.5 amps, with an initial draw of between 7 and 8 amps at startup to spin up the HD, CPU fan, etc.

              CF Card; The frontend has functions for accessing it but I rarely use it. A USB key is handier anyway and I can just plug a key into the ashtray and import files that way. Initially I wanted to use this to boot off of but the HD proved faster and easier to deal with anyway. Sometimes the kernel wouldn't see it at boot too but I think the card may have been bad though.

              160 GB HD; Standard 7200 RPM IDE Maxtor. This drive has seen some really rough roads at times, even at boot up and I've never had it crash. I've always been a Maxtor fan and will continue to be one.

              ATI Radeon 7000PCI; I had to use this card because my car has a built-in monitor in the dash already but it is 15kHz fixed-frequency, about 5kHz below what the unichrome chipset will clock to, so I was left with no choice. I also had to build a sync combiner circuit for the monitor since it uses composite sync rather than seperate VGA standard HSync and VSync signals.

              Parallel port controlled 8-relay board; The R, G, B, CSync, and associated Gnd signals from the ATI card fan out into the NO side of each relay, and the car's original video signal runs into the NC side of each, with the common running back to the car's original monitor. The frontend software controls the board to switch between the car's own video and the computer.

              iTuner M1-ATX power supply; The one I currently have seems to be okay but I had another one that smoked a motherboard and a hard drive so my next computer will be using an Opus.

              Hauppage PVR250; This card does everything I need it to and is well (probably best) supported by the ivtv drivers. I can pipe mpeg2 data to Xine from the tuner or the other two aux inputs (one composite, one S-Video) and have had very few problems, although I would suggest two things: load the ivtv drivers when you need them and unload them when you don't. I've had the pc freeze when they were loaded but not feeding anything. As long as I'm running Xine they appear to be fine but let it sit idle and the pc locks up. Strange. The other suggestion would be to install the latest version, as there have been several improvements lately.

              Dual riser; a necessity on any MII-12000 if you need more than 1 PCI card. It doesn't fit absolutely square in my C137 case when two cards are plugged in and bolted on, but it's close enough. The fault is the case not the riser or the motherboard.

              Exhaust fans; I had one large one custom fitted on the side but found that it simply wasn't necessary and reduced the noise immensely when removed. The only fan running is the small CPU fan. The system has been this way since early winter and I haven't had any heat-related problems and the pc is virtually silent (you can't hear the CPU fan over the engine). The HD does get hotter but not beyond tolerance.

              C137 case; I don't love or hate this case. It fits the bill for what I needed. It's a bit largeish if you don't need the space so I'd definitely recommend something else if you're not using alot of custom internal hardware and/or PCI cards. I had to make several mods to the case to fit all my junk in it but if you're creative it's a good compromise if you need the extra space.

              Edimax EW-7018PCg; It isn't as sensitive as the LinkSys card but it's Linux support is so much better I can live with that. It always sees my router as I pull into the garage and connects without problems. It makes sending 4GB ISO files very easy although it doesn't always scream at 54 Mb/s. I use vsftpd for the FTP server and sshd for the SSH server. The SSH server is very very handy for troubleshooting.

              I think that's everything...
              Silverwolf 2 is dead.
              Silverwolf 3...?


              • #8
                That's interresting, I actually read about Silverwolf in my endless search for good software. I see it's quite capable, but I only have three questions:
                How hardware dependant is it?
                What's the status of 2.0?
                What's the status of GPS?

                If the projekt will take of it must be possible to use on many systems, and I don't see why it's better than say Freevo if it doesn't have something special (like GPS for example).


                • #9
                  Originally posted by PHermansson
                  That's interresting, I actually read about Silverwolf in my endless search for good software. I see it's quite capable, but I only have three questions:
                  How hardware dependant is it?
                  What's the status of 2.0?
                  What's the status of GPS?
                  Version 1.3 is dependent on an X10 Lola remote (an ATI remote would probably work but some of the buttons would be differently mapped) for remote control and an RT2500 chipset based card for WiFi and the Hauppage PVR150/250/350 PCI cards if you need that capability.

                  v2.0 is at least three to four months away unless I can find a big chunk of time to dedicate to development. v2.0 should have no hardware dependencies; it will continue to support the Lola/ATI RF remote and touchscreen.

                  I want to try CoPilot and iGuidance using wine for a while to see how stable they are, so it will either do navigation that way or use the same video switcher v1.3 uses to switch back and forth between SW and Nav.

                  Originally posted by PHermansson
                  If the projekt will take of it must be possible to use on many systems, and I don't see why it's better than say Freevo if it doesn't have something special (like GPS for example).
                  I can't speak to whether it's better or worse especially since my opinion is obviously going to be very biased I can say that it will be 10x easier to install than the current version so you can decide for yourself pretty easily once it's released.

                  I basically just wanted to share my success/problems with the hardware I used that has been heavily road tested.
                  Silverwolf 2 is dead.
                  Silverwolf 3...?


                  • #10
                    Of course the things you do yourself is the best. It will be interesting to try, but for now I came up with my own solution. I updated the post above, this time it's info on Bluetooth/GPRS and a numpad as a input device.