Follow my post about Creating your Environment for CyanogenMod.
Once you've finished that, you're ready to begin.

Also take note that I'm switching in between host OS and virtual machine OS.
Windows 7 Pro is my host, while Ubuntu 11.04 is on a VM. Assume I'm using Ubuntu if I haven't specified I'm on Windows.

Getting Started

$ cd /home/<USER>/Android/CyanogenMod/
$ make -j<number of processor cores + 1> otatools
Gathering the Required Files
We'll be using Windows for these next steps.
Using a Terminal Emulator on your Garminfone. 
# cat /sdcard/install > /data/local/install
# chmod 04755 /data/local/install
# /data/local/install
Android ROM dumper v0.72b
(c)2010 Sebastian404
romdump installed.
# /system/bin/romdump
Let it finish, it will take a minute or two.
Android ROM dumper v0.72b
(c)2010 Sebastian404
Device : ERE27

Creating required files... done.
Opening mtd table... done.
Dumping kernel config... done.
Dumping boot partition... done.
Dumping recovery partition... done.
Dumping system partition... done.
Creating Checksums... done.
Cleaning up... done.
All done.
The files we need will be on the sd card of our Garminfone.
/sdcard/romdump/ERE27/
Copy the folder ERE27 to our Ubuntu environment...
/home/<USER>/Android/
Creating the Recovery
Back into Ubuntu for these steps.
$ cd /home/<USER>/Android/CyanogenMod/
$ PATH=/home/<USER>/Android/CyanogenMod/out/host/linux-x86/bin:$PATH
$ . build/envsetup.sh
$ build/tools/device/mkvendor.sh garmin-asus a50 /home/<USER>/Android/ERE27/boot.img
Output will be in /home/<USER>/Android/CyanogenMod/device/garmin-asus/a50
Done!
Use the following command to set up your build environment:
  lunch full_a50-eng
And use the follwowing command to build a recovery:
  . build/tools/device/makerecoveries.sh full_a50-eng
$ lunch full_a50-eng

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.4
TARGET_PRODUCT=full_a50
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GINGERBREAD
============================================
So, before we run makerecoveriers.sh. We have to make a correction real quick.
Browse to /home/<USER>/Android/CyanogenMod/build/tools/device/ and open mkrecoveryzip.sh. Look for darwin-x86 and replace with linux-x86. Save and close.
$ . build/tools/device/makerecoveries.sh full_a50-eng
You should see this
Recovery FakeFlash is now available at /home/<USER>/Android/CyanogenMod/out/target/product/a50/utilities/update.zip
Now we have what we need, all in /home/<USER>/Android/CyanogenMod/out/target/product/a50. update.zip and recovery.img.

With that said and done. I haven't found a way to apply the update.zip, but I have found an alternitive method to getting us booting into clockwork recovery. That's for my next post though... =)