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