LJ Archive

UpFront

Tech Tip

Peter Verthez

Issue #170, June 2008

Using a Garmin GPS and MapSource with Linux

Garmin is a popular brand of GPS devices. Unfortunately, Garmin makes its MapSource application only for Windows, not Linux. However, Wine runs MapSource, at least for Garmin GPS units that communicate via USB.

The following procedure is based on:

  • Fedora 8

  • The current Wine package (wine-0.9.56-1.fc8)

  • A Garmin Vista CX, with the standard USB cable

Install Wine (as root):

# yum install wine

Make sure that you can access the GPS device. For my installation, the device is /dev/ttyUSB0. I found this by examining /var/log/messages when attaching the device. Check the permissions of the device file, and make sure you have access to it, possibly by adding yourself to the group that owns the device. In my case, I had to add myself to the group uucp. Remember to log out and log back in if you add yourself to a new group.

Now, define the device in Wine. This is done as follows (do this using your normal login, not as root):

$ ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com2

This will define the /dev/ttyUSB0 device as COM2 under Wine.

After that, you simply install the software on the Garmin CD. For example, for City Navigator NT (Europe), using your normal login, do the following:

$ cd /media/CNEURNTV9
$ wine ./Setup.exe

At the end, don't opt to start the program directly. Start it afterward via the command line:

$ wine ~/.wine/drive_c/Garmin/MapSource.exe

Using this procedure, I am able to unlock maps, make routes, upload and download from the GPS unit (via USB) and do software updates.

For more information, see my Web page: www.peterverthez.net/gps/garmin-linux.html.

Tech Tip

Carlos Pantelides

Issue #170, June 2008

Tagging Command History for Rapid Recall

When you are hunting for a configuration problem with services like Apache and MySQL, you may have to execute a sequence of commands repeatedly, such as:

/etc/init.d/apache stop
/etc/init.d/mysql stop
/etc/init.d/mysql start
/etc/init.d/apache start

You can create a script to do this, or you can put all the commands on one line separated by semicolons:

/etc/init.d/apache stop; /etc/init.d/mysql stop; \
  /etc/init.d/mysql start; /etc/init.d/apache start

However, as you do other things, you sometimes lose “quick” access to the command line in the shell history. To avoid this, “tag” the line with a comment that will make it easy to find:

/etc/init.d/apache stop; /etc/init.d/mysql stop; \
  /etc/init.d/mysql start; /etc/init.d/apache start; #apmy

Now, to recall the command, simply do Ctrl-R + apmy, and you should have the command, as long as you've chosen your “tags” wisely.

Tech Tip

Nick Gianakas

Issue #170, June 2008

Tips for Using the cd (Change Directory) Command

Invoking the cd utility by itself (that is, without any arguments) will change the current directory to the directory specified by the $HOME environment variable:

nick@nimble ~ $ cd /tmp/
nick@nimble /tmp $ cd
nick@nimble ~ $

Invoking the cd utility with a single hyphen (-) argument will return you to the previous directory you were in.

If you accidentally issue a cd without any arguments, typing cd - is a convenient way of returning to the directory you came from—in essence functioning as an undo operation:

nick@nimble ~/a/long/path/to/some/files $ cd
nick@nimble ~ $ cd -
/home/nick/a/long/path/to/some/files $
nick@nimble ~/a/long/path/to/some/files $

Or, if you want to alternate between two directories, cd - makes this simple:

nick@nimble ~/path/to/some/files $ cd ~/another/path/to/some/files/
nick@nimble ~/another/path/to/some/files $ cd -
/home/nick/path/to/some/files
nick@nimble ~/path/to/some/files $ cd -
/home/nick/another/path/to/some/files
nick@nimble ~/another/path/to/some/files $

LJ Archive