Additionally to what Seldom says:
Mkgmap needs Java 1.6 so you will have to install that first (if you don’t have it already)
OSM files can be downloaded as e.g. country extracts here but you will probably need to split those country extracts into smaller sections (I call those sections ‘tiles’ or ‘maptiles’) using the Splitter tool (you can download it from the same Mkgmap site). I don’t provide the source OSM files as the Garmin map service is already using an awful lot of bandwidth and I don’t want to add to that by having the osm sourcetiles downloadable.