Not able to burn the efuse to 0x05

I have a breadboard Arduino Uno and I'm trying to burn the fuses to use the 16MHz osc as the clock source. However, when I try to burn using:

avrdude -b 19200 -c usbtiny -p m328p -e -u -U efuse:w:0x05:m

I get the following error. What am I missing? I tried the same setup on another breadboard with a different chip and I get the same error.

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: reading input file "0x05"
avrdude: writing efuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.06s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0x05:
avrdude: load data efuse data from input file 0x05:
avrdude: input file 0x05 contains 1 bytes
avrdude: reading on-chip efuse data:

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

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xfd != 0x05
avrdude: verification error; content mismatch

avrdude done.  Thank you.

Hello,

Please be careful when manipulating the fuses, this may cause the microcontroller to stop responding, so it will be necessary to use a special programmer

Maybe this will help:

Learn About ATmega328P Fuse Bits and How to Use Them with an External Crystal Oscillator

It might be useful in case of a problem:

AVR-HV: High voltage programmer

rtek1000:
Hello,

Please be careful when manipulating the fuses, this may cause the microcontroller to stop responding, so it will be necessary to use a special programmer

Maybe this will help:

Learn About ATmega328P Fuse Bits and How to Use Them with an External Crystal Oscillator

Hi,

Thank you for this. I will definitely go through this. However, for the moment I need to burn the standard Arduino Uno fuses (which are the ones I am trying to burn right now) The hfuse and lfuse get set without any hiccups. However, the efuse consistently fails. Not able to figure out why, since I've done this in the past without any hiccups. Its a brand new MCU without anything on it.

The efuse is now set to -Uefuse:w:0xFD:m on the Uno. Something about unused bits being a 1.

/home/kprims/ken/Downloads/arduino-1.8.7/hardware/tools/avr/bin/avrdude -C/home/kprims/ken/Downloads/arduino-1.8.7/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -cusbasp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m

There was a change in how AVRdude treats unused fusebits - they used to be treated as 0, now they are treated as 1. So 0xFD is now the same as 0x05 used to be.

Thank you @kprims and @DrAzzy. That solved my problem.