raspi programmer using avrdude with linuxspi

I have been wrestling with flashing an arduino nano from a raspberry pi via SPI. I followed a couple different suggestions, all to no avail. The latest I am using avrdude + linuxspi. I built out a pullup resistor on my breadboard, hooked up the spi wires and the reset line to the pullup resistor. Avrdude is able to connect and upload, but it fails on verification. Here's the output:

avrdude: Version 6.1-svn-20130917, compiled on Jul 8 2015 at 23:00:23 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch

System wide configuration file is "/usr/local/etc/avrdude.conf" User configuration file is "/root/.avrduderc" User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/spidev0.0 Using Programmer : linuxspi AVR Part : ATmega328P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail :

Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : linuxspi Description : Use Linux SPI device in /dev/spidev*

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f avrdude: safemode read 1, lfuse value: ff avrdude: safemode read 2, lfuse value: ff avrdude: safemode read 3, lfuse value: ff avrdude: safemode: lfuse reads as FF avrdude: safemode read 1, hfuse value: da avrdude: safemode read 2, hfuse value: da avrdude: safemode read 3, hfuse value: da avrdude: safemode: hfuse reads as DA avrdude: safemode read 1, efuse value: 5 avrdude: safemode read 2, efuse value: 5 avrdude: safemode read 3, efuse value: 5 avrdude: safemode: efuse reads as 5 avrdude: reading input file "/home/unit/blinker-d9.hex" avrdude: writing flash (14614 bytes):

Writing | ################################################## | 100% 38.06s

avrdude: 14614 bytes of flash written avrdude: verifying flash memory against /home/unit/blinker-d9.hex: avrdude: load data flash data from input file /home/unit/blinker-d9.hex: avrdude: input file /home/unit/blinker-d9.hex contains 14614 bytes avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 37.18s

avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x2fd0 0x88 != 0x89 avrdude: verification error; content mismatch

avrdude: safemode read 1, lfuse value: ff avrdude: safemode read 2, lfuse value: ff avrdude: safemode read 3, lfuse value: ff avrdude: safemode: lfuse reads as FF avrdude: safemode read 1, hfuse value: da avrdude: safemode read 2, hfuse value: da avrdude: safemode read 3, hfuse value: da avrdude: safemode: hfuse reads as DA avrdude: safemode read 1, efuse value: 5 avrdude: safemode read 2, efuse value: 5 avrdude: safemode read 3, efuse value: 5 avrdude: safemode: efuse reads as 5 avrdude: safemode: Fuses OK (E:05, H:DA, L:FF)

avrdude done. Thank you.

The output is consistently the same every time.