Linux Carputer Guide 101

Linux June 26th, 2008

Building a carputer the most difficult, expensive and rewarding do-it-yourself (DIY) projects I have ever completed.  If you own a car manufactured in the last 20 years, the chances are it has a specialized computer inside - the Electronic Control Unit (ECU) is a computer which originally only controlled fuel injection.  In today’s cars, the ECU is responsible for more than just controlling the powertrain.  Many standard features of cars produced today are monitored by the ECU, including emissions control, fuel saving, airbags, ABS braking systems, climate control, and many more.  In a few short weeks I’ve found it to be the best investment I have made in my car.  On the surface, the idea is simple, just take a computer put it in the car.  In reality, it is several times more difficult than installing a car alarm or replacing a factory head unit with an aftermarket radio.  Before you start, you need to ask yourself six questions:

How much can you spend?
What computer hardware do you need?
How will you interact with the computer?
How will the computer be powered?
Do you want any special features?
Where is everything going to fit inside the car?

Budgeting for a carputer DIY project is difficult.  Unless you’ve completed a similar project recently, you may not be able to find the tools needed for the job even if you own them.  Before buying computer hardware, tools, or even spending a dime, stop and estimate the total budget for the project.  A good rule of thumb is to take your initial estimate, and add 50% to the total.  If don’t have a significant tool collection already, be aware before you start that the right tools for the job can cost a significant amount of money.  Plan ahead and shop online for the best deals and make a checklist of everything you plan on purchasing, it can only save you money and plenty of headaches in the long run.

The hardware side of things is not a simple equation.  No two carputers are going to be the same, since each installation has different needs. I’ve seen some full size computers with quad-core desktop processors installed in a car!  Most people go for something smaller, since much more than a 1GHz is overkill for playing music and watching the occasional DVD.

Using a mouse and keyboard is impractical and not the safest way to control a carputer, so something a bit easier to use is in order.  Touchscreens provide a centralized display unit for the PC and with a driver-friendly interface, can be just as safe as any factory installed navigation system.  Two notable manufactures of touchscreens are Lilliput and Xenarc.  Both provide different sizes to fit nearly any car, features and native device drivers for Linux. 

Powering the carputer is one of the first problems you might think of when envisioning putting a car into a computer.  Some computers can be powered by a DC to AC converter, but I do not recommended for a permanent installation.  DC to AC adapters are notorious for introducing alternator whine into the audio system.  The best option in most cases is to use a specialized DC to DC converter that will take the 12 volt output from the car, and convert it into the necessary voltages for the carputer and plug right into the motherboard.  If your system will be using a laptop, it should be relatively easy to find a DC adapter that will plug into a car power socket.

Special features a carputer is capable of are endless.  Anything you can do on a regular PC can be done in the car.  Internet access provided by most mobile phones and a Bluetooth tether can provide a valuable asset for any commuter: GPS navigation with real-time traffic updates.  Another example would be backup camera that automatically switches on when you put the car in reverse.  If you can imagine something, it is not only possible, but someone has probably already done the legwork required to get it working.

Where the carputer is installed is dependant on space constraints, and is completely up to you. 

The planning stages are critical to this DIY project.  If you’re not careful and ask questions along the way, it’s reasonable to expect wasting money on components that are incompatible with each other or not suited for the purpose you need.  You will also need to be familiar with the electrical system in the car.  Wiring diagrams will go a long way towards knowing which wires you can use.  Most motherboards and all laptops have on-board sound cards which may be more than suitable for the project.  If you plan on using a FM modulator or auxiliary input on a head unit, you probably don’t need to upgrade to an external USB or PCI sound card.  You may run into unforeseen problems with on-board sound (engine noise) that may require using an external sound card to isolate the issue.

On the hardware side of things, some choices were deliberate, and others were just lying around the house.  I used the following components in my build:

Lilliput 7″ 629T LCD Touchscreen
Asus EeePC 4G
LG External DVD Burner
Pharos iGPS-500 USB GPS
Generic Bluetooth Adapter
LaCie External 500GB Hard Drive
Four-port USB Hub

I chose the Lilliput screen for the excellent sunlight-readable display and slim LCD internals with LED backlighting.  Other affordable options were explored and in the end it simply came down to what was available for the best price.  There is no “right way” to choose a display, just find one that has a few user reviews and go with it.  Don’t be tempted by the perfect product that claim to be shipping soon that have been announced yet remain in perpetual development. 

Carputer First Time Bootup

The Asus EeePC sub-notebook is a near-perfect choice for this application considering size, power, and screen.  It runs Linux to begin with, so potential problems with drivers are easily avoided.  Also it has its own battery power, so it can be powered on independently of the vehicle electrical system, avoiding unnecessary car battery discharge.  The seven inch display on the EeePC runs at the same resolution as similarly sized carputer displays.  The only downside is no optical drive, and finding one that would power on with a single USB cable was time-consuming.  For GPS capabilities, I selected the Pharos iGPS-500 after verifying Linux compatibility, positive reviews, and price.  Everything else was lying around the house.  The only item that is powered by an AC to DC adapter is the external hard drive, because of the oddly shaped power plug and reluctance to slice open the only cable I have for it.

Depending on the level of your expertise and time available, you may want to cut the project into multiple weekend projects.  I split my project up into four sections:  Radio (Head Unit) relocation, software configuration, touchscreen install and wiring.  Due to inclement weather, the touchscreen installation ended up taking one weekend for fabrication and another weekend for the actual install into the dash.

To move the radio from the dash to the glove box required adding 2 feet of wiring and removing the glove box.  I used 14 gauge wire purchased at the local hardware store and quick splice connectors lying around my toolbox.  I bought a single-DIN under-dash mounting kit from Metra.  After flipping it upside-down, it needed a little work with the Dremel tool to cut it to length for a nice fit inside the glove box.  The most difficult part was to get the wire harness for the radio around support beams inside the dash.

For software, I tested LinuxICE (In Car Entertainment) distribution.  LinuxICE is paired with nGhost front-end for a driver-friendly UI.   It is currently in development and suitable for basic needs, however I wanted a bit more.  I decided to go with the latest release of Ubuntu, and the only issues that I ran into with the UI was the size of fonts and icons with the low resolution of a 7″ screen.  A customized Ubuntu installation can be potentially more useful than a specialized distribution.  For GPS capability, the best option for this particular application is RoadNav, which has decent resolution maps and renders maps in 3D with the drivers point of view in mind.  During setup, I installed proprietary codecs for DVD playback, MP3 and WMA audio, as well as Xvid and DivX video.  Compiz Fuzion is not generally feasible to use on the small display.

The touchscreen installation was the most difficult portion of my installation and took much longer than I first expected.  I have very little fabrication experience.  After reading many fabrication how-to guides for people with no skill, I was confident enough to take the Lilliput touchscreen housing apart, and took out the Dremel tool.  I cut the original LCD bezel to fit the area provided by moving the radio.  Some initial difficulties were encountered by using the highest speed setting on the Dremel, which resulted in the cutoff disc getting too hot and melted plastic.  After switching to a lower speed setting and making shorter cuts, I had no more problems with this.  Additional removal of some plastic on the rear of the center console was needed to get a perfect fit.

To permanently mount the bezel in the dash, I tacked it in place using a hot-glue gun so it wouldn’t move around and used two-part plastic epoxy to fuse the two peices of plastic together.  The Lilliput LCD has several internal printed circuit boards which needed to be mounted behind the screen.  I did a test fitting with foam-backed poster board to electronically isolate the boards and avoid shorting them out.  After everything looked good, everything was sandwiched together.  The ribbon cables inside are extremely delicate.  After everything was all set, I powered it on to double check everything was working.  Installation into the dash once everything was fabricated was more time consuming than I expected.  There were some clearance issues, which eventually were solved by removing the audio/video/power cable and snapping the console back in place.  I was able to reach behind the dash to connect the cable once it was installed. 

The solid state hard drive and Celeron M processor of the EeePC uses very little power and was one of the main reasons why I chose it.  I purchased a car adapter for it and spliced it into the existing wiring for the power socket in my car.  To get the audio signal from the EeePC to the car speakers, I used a 1/8th inch audio jack extender from the output of the Eee to the auxiliary input on my head unit.  Lots of zip ties and electrical tape were used to get everything tidied up.  The laptop went under the driver seat, in a small tray fastened to the interior carpet with velcro to avoid having it shift while driving.

I have purposefully avoided making this article into a step-by-step how-to guide.  Each carputer is a unique creation of the person installing it.  There is no way every possible configuration could be expounded upon, so I’ve given you the basic knowledge needed to get started and some extrapolation on what, when, where, how and why my carputer installation succeeded.  The entire project emphasizes the flexibility of open source software, which is one of its core strengths.  I’ve looked into various options available for other operating systems, and although most commercially and proprietary licensed products may have undergone more spit-shine treatment than what is available for Linux, they certainly do not allow the user to exercise their personal do-it-yourself creativity as well as a Linux-based carputer can.

Wayne Richardson is a IT administrator for a startup game developer in Austin, Texas.  When he isn’t suffering from rug burned love handles (don’t ask, long story) while installing a carputer and ferociously wielding a Dremel tools, he runs a popular Linux blog called “fsckin w/ linux” at http://www.fsckin.com

Sidebars:

Reccomended Tools:

* Dremel Tool
* Screwdrivers
* Pliers
* Wire cutters
* Wire crimper
* Scissors
* Soldering Iron
* Hot-glue gun
* Bondo
* Sanding paper
* Paint

Tips and Tricks:

* Running wires along existing paths when possible, which will save time and the end result will not be a rats nest of cabling strewn about your cabin.
* To avoid possible signal degradation, do not run audio and power wires together.
* Set reasonable goals:  Plan on spending twice the amount of time you expect, just in case something doesn’t go quite as expected.
* Have backup transportation available for trips to the hardware store.
* Check local laws before using your carputer on the road.  It may be illegal in some areas to have a movies in the field of view of the driver.
* The service or parts department of your local car dealership can usually bring up very high detail views of the components in your car on demand and possibly assist you over the phone.
* An internet connected laptop or PDA in your work area can be a godsend.
* If a product is out of stock, pick a date you’ll be willing to wait for it and stick with it.

Possible Features:
*     Music: CD audio, MP3, WMA, Ogg, FLAC, Sattelite Radio, AM/FM Radio, USB Turntable
*     Video: DVD, VCD, Xvid, DivX, Rear-view camera, TV Tuner
*     Navigation: GPS, Geocaching
*     Internet: EDGE, EVDO, Wi-fi 802.11b/g, weather, live traffic data
*     Cellphone: Bluetooth, USB synchronizing
*     Diagnostics: RPM/Temp/Speedometer, ECU error codes
*     Video Games: Native or Emulated
*     Vehicle control:  Windows, door locks, trunk latch, climate control.
*     Other:  Radar detectors, Printers

References:
MP3Car Forum FAQs
LinuxICE
Car Wiring Diagrams
Customizing Ubuntu 
Sharing iPhone Internet
GpsDrive
Touchkit Drivers
Asus EeePC Car Adapter

In other news….

It’s been nearly a month since my last post - Yikes! Let’s list the new things in my life since my last post:

City - Austin is one of my favorites cities I’ve ever lived in.
Job - Doing IT for a game development company. Who can ask for a better job?
Car - I’m now a proud owner of an Infiniti G35 Coupe. It is quite possibly the best car I’ve ever dreamed of owning.
Game Console - Did I mention the XBOX 360 is compatible with Linux? Definitely topic for an article. :)

So what else is new? Ohhh right. Linux Journal put the kibosh on what I’ve been calling my “secret project,” since it’s the largest article I’ve ever written and took about a month to finish. The Journal decided that they don’t want it, I’ll let you guys have it. It’s in exactly the same format as submitted it to LJ. Enjoy!

What happens when you ask a software pirate for Ubuntu?

Humor, Linux May 23rd, 2008

We’ve all seen the email scams, where software pirates offer amazing deals on software through email. In fact I got one such message today:

From: michaell260@hotmail.com
To: wayne@fsckin.com
Date: Fri, May 23, 2008 at 6:22 PM
Subject: Software

Software up to 75% off retail.

Most of the major programs are to expensive for most of us to justify buying. Now you can. Your opportunity is here.

Operating Systems, Business Software, Internet Security Suites. If I don’t have it, I’ll get it. Tell me what program you need.

Here are some examples:

Vista Ultimate w/SP1 $95
QuickBooks Pro 2008 $70
Microsoft Office Professional $135
Adobe Acrobat 8 Standard $90
Rosetta Stone Spanish Level 1-2-3 for Mac/PC $90
Chief Architect Better Homes & Gardens $50
Macromedia Flash Pro v8.0 PC/Mac $125

These are just a few. Let me know the program you want.

Shipping is free.
Michael

Those are some fantastic deals! His claims of up to 75 percent off retail is amazingly quite accurate. If I were to buy a copy of each piece of software he is offering for a mere $655, I would have spent right about $2800. By shopping with Michael, I would have saved 76.6%.

The problem is, I didn’t want any of the software he was offering. He says in his email that if he doesn’t have it, he’ll get it. I’ve been needing to get a copy of Ubuntu 8.04 64-bit Server Edition, but haven’t quite got around to it yet, so I sent our new buddy Michael an email asking if he could provide a legal copy for me.

From: Wayne Richardson
To: “michaell260@hotmail.com”
Date: Fri, May 23, 2008 at 6:40 PM
Subject: Re: Software

Michael,

I’m not very technical so please bear with me. My technical support said I need several legal copies (very important they are legal because this is for my business) of Ubuntu 8.04 64-bit Server Edition.

Can you supply that? You have very good prices, so hopefully you can get me a good deal.

-Wayne

Strangely enough, I got a reply just a short while later!

From: Michael Leatherman
To: Wayne Richardson
Date: Fri, May 23, 2008 at 7:15 PM
Subject: RE: Software

I don’t have that in house so will have to go shopping. Get back to you soon.

In a short 15 minutes he found what I needed and helpfully provided a download location for me.

From: Michael Leatherman
To: Wayne Richardson
Date: Fri, May 23, 2008 at 7:31 PM
Subject: RE: Software

Yes, I can supply it and you are going to like the price. It is 100% legal.

http://releases.ubuntu.com/8.04/

It’s all yours.
Michael

Haha! I absolutely love playing the village idiot screwing around with folks… in other news, I’ve been extremely busy for the last few weeks. I’m moving 1500 miles to Texas for a new job. I’ll be the IT ninja for an amazingly kickass game developer in Austin.

Also, I got my Ubuntu 8.04 Desktop Edition CDs in the mail via ShipIt, they sent a nice, professional looking Cover, CD, and stickers for free, have a look:

Inside

The last bit of news I have is that fsckin w/ linux is going to see its 1 millionth unique visitor tomorrow today! As of this moment we’re right about 3,000 away, which is not much at all, should happen by about lunchtime. I was planning to throw a party in celebration, but unfortunately I’ll be finishing up packing instead of having a few beers with friends and family.

Ahh well. I’d rather have a new job than a silly party. :)

Thanks to everyone who has ever promoted my site in any way, whether it be a digg here, a comment there, or a link with a quick blurb — without you I’d never see a million visitors in a paltry 9 months. I’m absolutely astounded by how many opportunities fsckin w/ linux has given me on a professional and personal level. Thank you again, and have a few beers for me, alright?

I would like to thank the Academy….

-Wayne

gimpsvn.sh — Install or update to GIMP 2.5 from SVN on Ubuntu 8.04

Linux May 7th, 2008

I’ve been wanting to try out GIMP 2.5 for quite some time now, and plenty of other folks are certainly looking forward to the new interface, among other things. In my somewhat limited observations of the GIMP development team, I’ve found that the volunteers who manage the project are what some would call “anal retentive.”

Put the shoe on the other food, and I might be totally off the mark here, but this is the common thread I see:
There are not enough people working on the GIMP. It must not be very sexy to toil away at code forging for the GIMP project, meanwhile Compiz-Fusion, WINE, Ubuntu developers are in the limelight every day with new features and lots of community interaction.

GIMP on the other hand, with limited resources hears the crowd of folks basically asking for a free $600 Photoshop clone. That’s not what the GIMP wants or needs. If you want Photoshop, go buy the damn thing!

One guy even went so far as to fork GIMP by creating GIMPshop which added the main window workspace design that Photoshop uses. People liked it, I used it for awhile myself. Having such a huge carrot hanging in front of their heads is no easy task. And if one of these developers went postal one of these end users asked the same fsckin question the last guy did, I wouldn’t be very surprised.

That said, it looks like fantastic progress is being made on GIMP 2.5, and the interface is fantastic to be putting it mildly. OHHHH it’s so good. Adobe was right, this is the way to do things, much more intuitive as well. Too bad it’s taken over a decade of development to realize this fact.

So what I did was write a bash script to update or install GIMP from SVN, and compile it so that your original 2.4 installed will NOT be touched and can be launched normally using the command “gimp” or “gimp-2.4″

That said, I’ve tested this on two machines. My nearly new install of 8.04 with few extra programs installed. I started the project manually, but then found quite a bit more to just get it all working at once. Trust me folks… if you install 2.5 and you aren’t satisfied, I’ll give you double your money back. That’s a promise.

The only thing I’ve noticed so far is some “weirdness” occurring when trying to run both versions at the same time.

Updates, patches, suggestions to this script are more than welcome. I’ll say that my code not formally licensed, but don’t claim you wrote this or strip the authors section out of the header. I inevitably find you and DMCA you to hell and back if you do, just like those silly CoreAVC guys. PR Stunt for the win!

#!/bin/bash
# gimpsvn.sh — Installs or updates The GIMP from SVN
# Usage: gimpsvn.sh [install | update]
#
# Original instructions by http://www.myscienceisbetter.info/
# Updated instructions by Thai at http://dt.in.th/
# Script by Wayne Richardson at http://fsckin.com/
#
# Takes about 20 minutes on an Intel Core2Quad Q6600 on a fresh install.
# Be patient!
# This uses Wajig, which can easily install reccomended/suggested packages.
# http://en.wikipedia.org/wiki/Wajig
#
# Most recent version is at:
# http://www.fsckin.com/2008/05/07/gimpsvnsh-installs-or-updates-gimp-25-from-svn
#
# Variable(s):
#   makeops — the number of cores your system has, generally -j(cores+1)
makeops=’-j5′

if [ $# -ne 1 ]
then
echo “Specify an command line option: install or update.”
exit 1
fi

if [ "$1" = "install" ]
then
echo Installing Gimp from SVN in 5 seconds, CTRL+C to abort.
sleep 5
sudo mkdir /opt/gimpsvn
sudo mkdir /opt/gimpsvn/lib
sudo mkdir /opt/gimpsvn/lib/pkgconfig
#sudo apt-get update
sudo apt-get install wajig -y
sudo apt-get build-dep gimp -y
sudo wajig installrs gimp -y
sudo apt-get install libavcodec-dev libavcodec1d libavformat1d -y
sudo apt-get install libavformat-dev graphviz graphviz-cairo graphviz-dev -y
sudo apt-get install libfaad-dev libfaac-dev ruby-gnome2 gtk-doc-tools -y
sudo apt-get install subversion automake1.9 asciidoc flex checkinstall -y
export LD_LIBRARY_PATH=/opt/gimpsvn/lib
export PKG_CONFIG_PATH=/opt/gimpsvn/lib/pkgconfig
for i in babl gegl gimp; do svn co http://svn.gnome.org/svn/$i/trunk/ 
$i; cd $i; ./autogen.sh –prefix=/opt/gimpsvn && make $makeops && sudo 
checkinstall; cd ..; done
echo “”
echo “Completed install from SVN into the following location:”
echo “/opt/gimpsvn/bin/gimp-2.5″
exit 1
fi

if [ "$1" = "update" ]
then
echo Updating Gimp from SVN in 5 seconds, CTRL+C to abort.
sleep 5
export LD_LIBRARY_PATH=/opt/gimpsvn/lib
export PKG_CONFIG_PATH=/opt/gimpsvn/lib/pkgconfig
svn co http://svn.gnome.org/svn/gimp/trunk/ gimp
for i in babl gegl gimp; do svn co http://svn.gnome.org/svn/$i/trunk/ 
$i; cd $i; make $makeops && sudo checkinstall; cd ..; done
echo “”
echo “Completed update from SVN into the following location:”
echo “/opt/gimpsvn/bin/gimp-2.5″
exit 1
fi

echo “Specify an command line option: install or update.”
exit 1

Reporting from the fsckin trenches - Novell v. SCO trial

Linux May 1st, 2008

Ladies and germs, it’s been too long since I’ve got anything up here, so I figured it would be good to post a short update on what I’ve been up to this week. The Novell v. SCO trial is ending tomorrow, and I’ve been attending it the last couple days.

It’s pretty damn interesting, to say the least. If you’ve never heard one of the old guys talking about UNIX, you’re missing out. There’s so much public information available, but to actually hear things explained by the perpetrators and see and hear evidence that has never been made public before is really eye opening.

SCOs Darl McBride took the stand yesterday, and it was a sight to behold, have a read about it over at Ars.

It has plenty of juicy quotes like this:

“Linux is a copy of UNIX, there is no difference [between them].” — Darl McBride

Whiskey Tango Foxtrot!

Moving on to about what happened today, Jay Peterson took the stand for SCO, he worked for Bell Labs — you know, the place that saw the invention of the transistor, then USL, then Novell, and finally SCO. Interesting guy, and I’ll be writing more about him for sure.

Bill Brodrick also testified that he worked for USL and moved through companies just like Jay did. I’ll be damned, but he admitted to making a 420 page “spreadsheet” in Word using the table function. Perhaps SCO doesn’t hire the brightest of the bunch — OpenOffice.org would have saved this guy a ton of time and trouble.. :)

Also taking the stand was Jean Acheson, who started working with USL in 91 and also continued through the company food chain like Jay and Bill. She did invoices for software royalties and had all sorts of numbers in her head.

Probably the least interesting person to take the stand (at least for me) was Jeff Hunsaker, the proverbial asshole hotshot salesman who claims to have “no technical knowledge at all.” I’m pretty sure he knows more than he let on. Just like every other salesman I’ve ever met, he played dumb the entire time he was on the stand.

If you’re in Salt Lake City, the trial will resume at 9:00am (be early!!) at room 220 and run for about 1.5 hours or so and we should have a judgment in Novell’s favor tomorrow. If Novell actually wins 20 million in damages, I’ll take anyone who shows up out for lunch on me. :)


View Larger Map

Shipit now accepting orders for Ubuntu Hardy Heron 8.04 LTS!

Linux April 23rd, 2008

This might be old news to some folks, but for those of you who want to get a “real” pressed CD, Shipit has been offering to ship CDs of the still unreleased Ubuntu Hardy Heron 8.04 when it is available. Highly recommended for the Ubuntu fan.

Sign up for one now before the rush — I did!

If you’re looking for Ubuntu schwag, head on over to the Ubuntu Store and check out the really slick items for sale. I’m not quite sure why someone would need a stress ball with an Ubuntu logo, maybe it’s for Steve Balmer or something. While you’re at it, feel free to donate to Ubuntu and designate what the funds should be used for.

Hardy hasn’t been announced yet as I write this, but I’m planning on doing some really in-depth statistical analysis of various things relating to the LTS distribution and “chatter” before, during and after the release - this should be REALLY interesting once it is completed.

Also, the gOS MyMiniPC review unit arrived… it’s really tiny. Super tiny… it’s about the size of a Wii and is surprisingly light, I can’t believe Everex fit a Core2Duo in there. I’ll be doing a review probably this weekend when I have some time… I’m really busy working on that “secret project” I occasionally mention - I promise it’s gonna be good.

Ubuntu Human Theme for the iPhone

Linux, iPhone April 18th, 2008

A member of several Ubuntu collaboration teams, including Ubuntu-Artwork has recreated the ubiquitous Human Theme for the iPhone. He plans on updating it for a simultaneous release with Hardy Heron. I was able to catch up with the creator and ask him a few questions.

1. Tell me a little about yourself.
I’m just a computer science major and open source fan.

2. Why did you make it?
For integration with my desktop experience (even though I don’t use stock Ubuntu wallpapers)

3. How long have you been using ubuntu on the desktop?
Exclusively, since 6.06. And happily :)

There you have it… my quick “Ubuntu tagged” post for the week.

Also, as a side note, the 8.04 Release Candidate has been… released. Get it while it’s hot. Oh, and by the way… I can now offer a free full year of PC Magazine for qualified professionals - check it out, it’s been a real hit so far.

Tags:

Fun With xwinwrap in Compiz Fusion

Linux, Video April 14th, 2008

I’ve been occasionally looking for something in Linux that would spruce up the place. Right now, my desktop is an minimalistic and functional solid black background. I’d like to do more with the space. Not just put up an image as a background - that’s straight from the late 80s.

The Mario desktop I would like to install on my Desktop is a perfect example of things that “just work” in Windows don’t seem to be possible in Linux. Until today, I didn’t know if there was a way to set my Ubuntu desktop with a HTML file with animation and graphics. In Windows, it’s a really simple operation… add the HTML location to your “Active Desktop,” place in on your desk where you’d like then lock down the widget.

For Linux there’s something far, far more powerful called xwinwrap. It allows you to run (most) any application as a desktop background. Really sweet, just check out some video:

Installation Instructions (on Hardy Heron Beta) - mind the possible wordwrap:
sudo apt-get install build-essential libx11-dev x11proto-xext-dev libxrender-dev libxext-dev cvs

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xapps co xwinwrap

cd xwinwrap

make

sudo cp xwinwrap /usr/bin
This last line is optional, but puts the command in your path for easy access.

Now you can do some really funky stuff… like run the glmatrix screensaver as your desktop background:
nice -n 15 ./xwinwrap -ni -o 0.20 -fs -s -sp -st -b -nf -- /usr/lib/xscreensaver/glmatrix -root -window-id WID

This is really cool, but what if you need to change settings for something else? Here’s the lowdown on what each command switch does - and there are a LOT of them. One wrong or missing switch will completely change the behavior of the program.

xwinwrap [-g] [-ni] [-argb] [-fs] [-s] [-st] [-sp] [-a] [-b] [-nf]
[-fl] [-o OPACITY] — COMMAND ARG1…

-g geometry
-ni no input
-argb argb ?? Alpha, Red, Green, Blue ??
-fs fullscreen
-s sticky
-st skip taskbar
-sp skip pager
-a above
-b below
-nf noFocus
-o opacity=# Between 0 and 1

Want to help me write articles and receive credit where it’s due? (Thanks Oli for the heads up on xwinwrap! - Check out his blog, while you’re at it.) Anyways, the point I was trying to make is to follow me on Twitter, answer my occasional random questions, and get kudos. Oh, and njpatel also pointed it out to me. Check out his blog too. :)

Please don’t drink and use xwinwrap. With great power, comes great responsibility. fsckin w/ linux is not liable for damages caused by shopping carts. this message was approved by justf**kinggoogleit.

My Cat Bubba Posts Videos and Twitters using an EeePC and Ubuntu

Linux, Video April 10th, 2008

MAKE blogged about plants that notify the owner via text message or Twitter status update that they need water, and even thank their owners when they’re watered.

This got me thinking - why not a cat who sends a tweet when he’s eating? While I’m at it, why not toss in a video stream? After all, everyone loves videos of their cat. My ASUS eeePC runs eeexubuntu and has a webcam - all I would need to do to get my cat twittering is setup some motion sensing software that detects movement from the webcam, records a video, and upload to my server and then notifies me.

First, a proper “cat studio” is required. I picked up a laundry basket, some thin anti-slip mat and a couple of new food bowls for under $15 total. The laundry basked got a side removed by my trusty Dremel tool, and the anti-slip mat was cut to fit and hot-glued in place. After that was done, I had a spare light fixture with a clamp lying around to add to the mix for better lighting.

Motion is a great webcam application that fits my needs exactly. More specifically, when it detects motion, it records a video - think like a security camera, but way, way smarter. When Motion no longer senses any movement after a defined period of time, it encodes the captured video, and then it can run a script or set of commands afterwards. Bingo!

Here’s how I did it, after hours of trial and error:
1. Installed Motion 3.2.9
2. Configured and tweaked /etc/motion/motion.conf (probably still some changes needed)
3. Setup SSH to allow logins to my web server without a password.
4. Added the following to execute when a recording is finished:
Upload the file (using cat, of course!):

cat /tmp/motion/video.swf | ssh fsckin@fsckin.com cat ">" /home/fsckin/fsckin.com/bubba/video.swf

Update Twitter Status:

curl --basic --user "junglecrawler:password" --data-ascii "status=Done eating, humans were nice to me today." "http://twitter.com/statuses/update.json"

Remove the video off the local machine:

rm /tmp/motion/video.swf

Here’s the end result:
First Video:
(Either JavaScript is not active or you are using an old version of Adobe Flash Player. Please install the newest Flash Player.)

Latest Video (15MBish)

This videos loop over and over. Also - if a video is uploading at the same time that someone is loading the page, it might break. If you don’t see video, just count to 10 and refresh the page. If you still get nothing, bookmark this on del.icio.us and come back later.

Note: Audio is not yet supported by Motion, however, an experimental patch enables this already and should be be in the next version. This is a proof of concept, and it will probably be running for at least the next week - after that, who knows. All I know is after I’m long forgotten, Bubba will live in perpetuity as truly the first cat who uploaded videos of himself eating and sending tweets to his human slaves.

Follow Bubba on Twitter. Or, follow his slave, Wayne.

Tags: , , , , , ,

gOS Space and myMiniPC: Bling-Enabled Desktop for Myspace

Linux, Video April 7th, 2008

The 100+ million “average joe” Myspace users are about to get mind blowing eye-gasm with the brand new myMiniPC with gOS Space 2.9 - and I’m not talking about some spicy profile pictures. Combining the Avant Window Navigator dock and Compiz Fusion 3D effects is going to provide a desktop experience generations beyond what Redmond’s latest offering in a slim form factor 1.5 inches tall and a mere two pounds.

When I spoke with David Liu about the product, he said, “I enjoy tackling these giant companies that I feel symbolize a huge population of average joes.” Six months after launching the gPC in Wal*Mart in front of 140+ million shoppers for a price the couldn’t refuse, now he’s leveraging freely available content on sites like YouTube, Flickr, Pandora and many others with the myMiniPC.

The icons on the left side of the dock are Myspace, News, Photos, Videos, Music, TV, Tools, and Fun. On the right side, four brand new Myspace Apps are featured: Mood, Clock, Graffiti, and Quotes - one app for each face of the desktop cube.

Myspace icons range from Blogs to Music and everything in between, for users to quickly navigate around the site or launch new instances of Firefox. Stuffy news agencies like BBC or CNN have been replaced with links to popular blogs such as Perez Hilton, TMZ and Valleywag.

Flickr and Photobucket populate the Photos icon along with three others. The videos icon has a whopping nine options: Daily Motion, Google Video, Meta Cafe, MyspaceTV, Revver, Veoh, Vimeo, and YouTube. I could go on all day about how much is a single click away - if you’re interested in more information, feel free to browse the screenshot gallery below, or simply watch my video about gOS on YouTube with a short demo.

The logic behind building an operating system out of web applications quickly becomes obvious as you go down the dock viewing each category. These companies have banked billions of dollars by using content created by their users. Making that content easily accessible is the key to providing a channel surfing experience for the web.

With tax refunds just around the corner, the $499 price on the myMiniPC is perfect. gOS Spaces 2.9 should be available soon, I urge you to test it out and tell your friends who are on Myspace about it. Got a suggestion, question or comment? Go ahead and Ask Dave yourself - I’m sure he’ll be happy to oblige your request. Here are some specs, screen shots and video of gOS Space 2.9 for your viewing pleasure.

myMiniPC specs:
• Intel® Pentium® Dual-Core Mobile Processor T2130 (1MB L2 Cache, 1.86GHz, 533MHz)
• 512MB DDR2 667 SDRAM
• 120GB Hard Disk Drive
• DVD+/-RW
• Intel® Graphics Media Accelerator GMA950
• Realtek ALC268 High-Definition Audio
• (4) USB 2.0 ports
• (1) IEEE 1394
• (1) 10/100/1000 Ethernet Port
• (1) DVI-I Port
• (1) S-Video Port
• (1) 4-in1 Media Card Reader
• (1) Headphone/Line-Out Port and (2) Microphone/Line-In Port

Screenshots:

Video:

Tags: , , , , , ,

Review: Four GPS Software Packages for Linux

Linux April 6th, 2008

I picked up a new Pharos iGPS-500 GPS Receiver from Newegg.com earlier this week for under 60 bones. When I opened it up, found out exactly how absolutely TINY it is. The “Actual Size” denotation on the box is slightly misleading fraudulent. Although the GPS portion of the device is small, the USB to serial adapter that plugs into the GPS unit doubles the “Actual Size in Real Life,” that the marketing droids happily ignored.

That minor quibble aside, I don’t really care how big it is. It could be the size of a banana phone and I would still use it - as long as it was able to find my current location and do it quickly. This USB GPS unit claims to be one of the fastest GPS units out there, sporting the new Sirf III (or SiRFstar III) chipset.
Pharos PB010 USB iGPS-500 GPS Receiver
According to Wikipedia the Sirf III chipset inside this Pharos iGPS-500 is capable of acquiring and maintaining a signal lock in urban or densely covered forest environments. This is great news for me personally, since I’m always lugging around a laptop when I go hiking in the forest.

It is pretty quick to lock onto a location when I’m inside. In fact, I have yet to do any driving tests with it yet (too busy compiling this article) although I’m sure it’ll work just fine. With this particular model, you can even purchase a Bluetooth adapter for it after the fact and use it with something other than a computer - some smartphones have GPS software available and will work just fine with a Bluetooth connection. Pretty rad, if I do say so myself.

Getting it working in Ubuntu Hardy required a bit of research. The information I found assumes a pretty high level of knowledge, and there’s not any centralized location for getting GPS units working that I could find.

Hardware Installation:
I plugged in the unit, and ran dmesg | grep tty to make sure it was detected:

usb 2-2: pl2303 converter now attached to ttyUSB0

This means the device is available at /dev/ttyUSB0 - pretty simple.

Installing software:
I’m testing four different GPS software suites for Linux: GPS Drive, Roadnav, Navit and VIking. GPS Drive and Viking are right in the Ubuntu repository. Roadnav has a debian package available on their website that worked quite well. Last but not least there’s Navit, which requires installing from source. I’m assuming that the person reading this wants to test out all four software suites. They each have their own strengths and weaknesses, and it’s best to test out each platform before settling on a choice.

# apt-get install gpsd python-gps gpsdrive viking gpsd-clients libgps-dev libgtk2.0-dev glutg3-dev libcegui-mk2-dev libxmu-dev libsdl-dev libpcre3-dev libspeechd-dev libtiff-dev libdevil-dev build-essential subversion automake

Phew

Now that we’ve got all the software we need to get any of the four programs working, making sure the device works with gpsd is a good starting point. gpsd is an abstraction layer between a compatible device and the mapping software. If your device works with gpsd, you’ll be all set. The reason we need gpsd is because there’s no standard for communication for GPS units. Each company has their own way of doing things. Magellan, DeLorme and Garmin never got together to create an open standard for communication and gpsd is the savior that converts each different GPS protocol into something each piece of mapping software can understand easily.

$ gpsd -N -n -D 2 /dev/ttyUSB0
gpsd: launching (Version 2.36)
gpsd: listening on port gpsd
gpsd: successfully connected to the DBUS system bus
gpsd: running with effective group ID 0
gpsd: running with effective user ID 0
gpsd: opening GPS data source at ‘/dev/ttyUSB1′
gpsd: speed 9600, 8N1
gpsd: garmin_gps not active.
gpsd: gpsd_activate(1): opened GPS (5)
gpsd: client 127.0.0.1 (0) connect on fd 6
gpsd: client(0) turned on raw mode
gpsd: speed 4800, 8N1

Looking good. Let’s make sure that gpsprof can access it.

$ gpsprof -f cycle
gpsprof: looking for fix…first fix in 0.42sec, gathering samples……(27.42 sec) done.
Cycle report Fri Apr 4 04:07:49 2008, Generic NMEA, 4800N1, cycle 1s
The sentence set emitted by this GPS is: GSA RMC GGA GSV
GSA: is emitted once a second.
RMC: is probably emitted once a second.
GGA: is emitted once a second.
GSV: is emitted once every 5 seconds.
Send cycle is once per second.

If all is well with gpsd and gpsprof, we’re all set and ready to rock and roll.




I tested out GPS Drive first - it’s right in the Ubuntu repositories. GPS Drive works fine right out of the box. The maps it uses are fairly good, but could be higher resolution. For an application that’s got “Drive” in the name, it’s got a not-so-driver-friendly interface, and the routing portion is klunky. Otherwise, it’s a nice basic application that has a cool indicator in the status bar for how many GPS signals it’s caught onto.




Next, I downloaded Roadnav’s debian installer for Ubuntu Gutsy Gibbon 7.10 from their website and installed it, had no problems running in 8.04. Roadnav has a really slick looking 3D view. It’s got a pleasing interface, and is suitable for a lower resolution screen. Directions and route finding are dismal at best. I would say that it’s pretty average in most ways - nothing sticks out as great except the 3D viewport.




Next, we’re taking a look at Navit. If you’re a new Linux user or otherwise technophobic, Avert your eyes and skip on down to the next software package, or just go down to the nearest 7-11 and pickup a hardcopy map. It’ll be easier and definitely faster. Navit doesn’t come with any maps by default, nor does it allow downloading maps from the web automatically, which is a huge disadvantage. Here’s the compile instructions for Navit on Ubuntu - should work in both 7.10 and 8.04… watch out for that first step - it’s a doozy!

wget http://superb-east.dl.sourceforge.net/sourceforge/navit/navit-0.0.4.tar.gz
wget http://superb-west.dl.sourceforge.net/sourceforge/quesoglc/quesoglc-0.7.1.tar.gz
svn co http://libgarmin.svn.sourceforge.net/svnroot/libgarmin/libgarmin/dev libgarmin
tar -xzvf navit-0.0.4.tar.gz
tar -xzvf quesoglc-0.7.1.tar.gz
cd quesoglc-0.7.1 && ./configure –prefix=/usr
sudo make && sudo make install
cd../libgarmin && ./autosh.sh
./configure
sudo make && sudo make install
cd../navit-0.0.4
./configure
sudo make && sudo make install

I added libgarmin support in those instructions - just in case you’ve got a Garmin GPS you’re working with - can’t hurt to have extra support just in case. :) Navit doesn’t come with maps, other than the developers’ hometown of Munich that gets downloaded during the compile process. We probably don’t need a map of Munich, so I went and downloaded a free online US state map of Utah. Navit does a pretty nifty thing here - it can use three different types of maps: OpenStreetMaps, Grosser Reiseplaner (Eurpean), and Garmin. OpenStreetMaps is a free offering for the USA, so that’s what I’ll be using. So now that we’ve got it Navit compiled, there’s one step left - configuration. Probably harder than copy and pasting stuff in, but if you want to get it working, have at it:
Create a folder to store Navit configuration settings:
mkdir ~/.navit
The Utah Map I downloaded from the above link was bzipped, used this command to extract:
bunzip2 Utah.bz2
To parse the map into a format usable by Navit, use the osm2navit tool and copy the resulting file into our configuration directory:
cat Utah.osm | osm2navit ~/.navit/Utah.bin && cp Utah.bin ~/.navit
Configure Navit properly for our location:
mkdir ~/.navit && cp ~/navit-0.0.4/src/navit.xml ~/.navit
The Navit webiste suggests visiting an online mapping application to get your current latitude and longitude so that Navit will startup centered on your general location. I find it’s a little bit easier to Google for “latitude longitude cityname”
Open up navit.xml in the editor of your choice.
Around line 16 you’ll see this:

<navit center=”4808 N 1134 E” zoom=”256″ tracking=”1″ cursor=”1″ orientation=”0″>

I changed the center part to this to point it at Salt Lake City, Utah

center=”4071 N -111 W”

Around line 66 you’ll see the following:

<map type=”binfile” enabled=”yes” data=”$NAVIT_SHAREDIR/maps/osm_bbox_11.3,47.9,11.7,48.2.bin”/>

I changed that line to reflect the map file location:

<map type=”binfile” enabled=”yes” data=”~/.navit/Utah.bin” />

And…. Done! launch navit and you should have maps for your location (assuming you downloaded something other than Utah maps) and it should be centered on your location (assuming you properly wrote in your latitude and longitude). Hot damn. Navit is great and all, but I’m not quite sure it’s ready. It needs some spit shine and polish before I would recommend using it.

On the other end of the spectrum, there’s a brilliant peice of software aptly named Viking. Historically speaking, Vikings are considered an extinct society of explorers and conquerors hailing from Minnesota who wear purple and yellow uniforms.

Viking - the software - is fantastic. It’s the only program tested today that will download Google Map tiles automagically to render a map. This solves the problem of having bad maps. You can even go as far as downloading maps and saving them to your hard drive. This shatters the Terms of Service for Google Maps in at least two ways:

The Service may not be used for or with real time route guidance (including without limitation, turn-by-turn route guidance and other routing that is enabled through the use of a sensor)
You may not use Google Maps in a manner which gives you or any other person access to mass downloads or bulk feeds of numerical latitude and longitude coordinates.

Sorry Google! However, this violation doesn’t quite stop me from recommending Viking. It’s got some neat features such as multiple map layers, all three types of maps from Google (Street, Hybrid, and Satellite) as well as the ability to import data from GPS units that have built-in tracking functions. Also it has a routing function that pulls waypoint data from Google. I didn’t find myself wishing for any features from another GPS package - I think it’s the best free offering available for the general purpose of tracking where you are and easily getting good directions - as long as you have an internet connection.

I’ve read many opinions from varying biases that say GPS software for Linux is not up to par with software developed for Windows or Mac.  I would have to disagree - Viking does what I need and does it well. Did I miss any free GPS software for Linux that should have been included here? Please let me know via email, comments, or twitter.

Tags: , , , , ,