aduino ide can load firmware, but avrdude cannot

Like thousands of others, avrdude shows the hallmark output:

avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding

I'm trying to move away from the toy ide and towards make and the avr/gcc toolchain on linux. The problem is not hardware... it is probably some setting (other than bitrate) that I just don't get. I am pretty sure of this because the arduino ide can burn the blink project, but I can't seem to find the right command line for avrdude. I've been using:

    /usr/local/arduino-1.0.1/hardware/tools/avrdude \
        -C/usr/local/arduino-1.0.1/hardware/tools/avrdude.conf \
        -patmega2560 -carduino \
        -P/dev/ttyACM0 -b38400 \
        -D -F -v -v -v -v -V \
        -Uflash:w:~/tmp/marlin.hex:i

Yes, /dev/ttyACM0 is correct (arduino uses ttyACM0). I've tried bitrates from 9600 to 115200. I can get the same failure/success under windows using avrdude under cygwin and the windows arduino ide. I'm sure the answer is a simple one. Thanks in advance.

You should probably use

-cstk500v2 or -cwiring

with the Arduino Mega 2560

I can answer one thing the baudrate to use. That is determined and hard coded by the bootloader on the board and for a Arduino mega/2560 (from the boards.txt file) it is:

mega2560.upload.speed=115200

Lefty