I had trouble too. You haven't said what you've tried or where you're having problems, so this is pretty general. I didn't document everything when I did it, so you'll have to fill in some gaps...
-copy mc2xml to a directory of your choice.
-make it executable (chmod 755 mc2xml)
-run it for a first time (for the US: ./mc2xml -c us -g YourZipCode ; for Canada ./mc2xml -c ca -g YourPostalCode). This will download your xml guide data.
-Follow the prompts to select an appropriate provider for your location. I didn't use the OTA data. I just chose a local cable provider and then mapped my channels with tvheadend's web interface.
-set up a cron job to do a daily mc2xmldownload
-read up on the mc2xml site for tips on downloading only the channels you want with a mc2xml.chl file.
Go get tv-grab-file. Copy it to /usr/bin. Edit the path in tv-grab-file to where your xmltv data resides:
Code:
wget http://code.google.com/p/tv-grab-file/
sudo cp tv_grab_file /usr/bin/tv_grab_file
sudo nano /usr/bin/tv_grab_file (...and edit "cat ~/.xmltv/tv_grab_file.xmltv" to "cat ~/mc2xml/xmltv.xml") or the path/filename to where you downloaded your xmltv guide data
-Fire up your browser and load tvheadend's web interface. Navigate to Configuration->Channel/EPG->EPG Grabber tab. In the Internal Grabber Section, scroll down to the bottom of the Module box and pick "XMLTV:tv_grab_file...". Choose a grab interval of 12 or 24 hours (xml tv data is only updated once a day, so you don't need to "grab" it more often). Click Save. Your Guide data will be imported. You can now use the web interface to map your channels.