Why can't I read the ATmega328P from an Arduino board using USBasp?
The ATmega on an Uno is clocked by an external crystal, in contrast to an off the shelf AVR which is configured for its internal RC resonator. This means that for reading the ATmega you either need to apply an external clock, say 1 ~ 20MHz, or use the ICSP header that is on the Uno board to communicate with the controller. This 6 pin ICSP header is actually meant for programming the AVR in circuit, hence 'In Cicruit Serial Programmer'.