ASUS RT-N66U/CFE bootloader update
This archive is for a CFE bootloader upgrade on Asus RT-N66U router from factory version 18.104.22.168 to version 22.214.171.124. The goal is to return CFE possibility to read variables from NVRAM which is lost while NVRAM been upgraded 64Кб in recent stock firmware releases.
If you don't need restoration of the this possibility or you just don't know what it is, then better do not to touch the bootloader. Damaged CFE will bricks the router! You should represent consequences of the actions and you should understand what you are doing in the update process because only you take responsibility for update success. Or fail.
It's enough to set any the NVRAM variable used by CFE and make sure that CFE ignores it. For example, remember the current BogoMIPS value:
then try to change CPU frequency and reboot router:
If CFE ignores your settings, BogoMIPS value will remain the same because CFE didn't set new CPU frequency.
Update works only on original ASUS firmware or Merlin's mod, please follow this steps:
1. Download and unpack update script Get access to the RT-N66U console via Telnet/SSH/Serial and type:
2a. Update current CFE If you did not update before, then type:
and watch the progress of the update. The script will ask your final decision before update. Please, proceed if only two differencies will shown between old and new versions of CFE:
2b. Update CFE, using previously saved CFE backup image If you already done update before, you may fix it with saved CFE image this way:
3. Saving old CFE image Please consider saving your old CFE. A ./cfe.old file will be placed in the same dir with update script, save it to some safe place.
Here is original stock CFE 126.96.36.199 for those who never make a backups
The Entware. A modern Optware replacement.
Example script output
Here is an example of the entire output when all went well. The script checks current CFE version before update to prevent CFE re-update.
admin@RT-N66U:/tmp/mnt/SDCARD/tmp# wget --no-check-certificate http://github.com/downloads/ryzhovau/asuswrt-ryzhov/cfe_n66u-188.8.131.52-4.tgz admin@RT-N66U:/tmp/mnt/SDCARD/tmp# tar -xf ./cfe_n66u-184.108.40.206-4.tgz admin@RT-N66U:/tmp/mnt/SDCARD/tmp# ./cfe_update.sh Usage: './cfe_update.sh /dev/mtd0ro' - upgrade current CFE on RT-N66U './cfe_update.sh ./cfe.old' - upgrade CFE using a backup CFE image cfe.old Update works only on original ASUS firmware or Merlin's mod. admin@RT-N66U:/tmp/mnt/SDCARD/tmp# ./cfe_update.sh /dev/mtd0ro Original CFE is already updated! Exiting... admin@RT-N66U:/tmp/mnt/SDCARD/tmp# ./cfe_update.sh ./cfe_original.my [1/4] Dumping default NVRAM settings from original CFE... nvram header found: start 0x400 end 0x1374 len 3956 crc 0xe8 ver 0x01 [2/4] Preparing new CFE... nvram header created: start 0x400 end 0x137c len 3964 crc 0xc3 ver 0x01 [4/5] Checking differences between NVRAM from old and new CFE's --- nvram_orig.txt 2012-12-04 13:49:51.000000000 +0400 +++ nvram_updated.txt 2012-12-04 13:49:51.000000000 +0400 @@ -1 +1 @@ -bl_version=220.127.116.11 +bl_version=18.104.22.168 @@ -16,0 +17 @@ +odmpid=ASUS If you see only two differences: one is for 'bl_version' variable change and second is a new 'odmpid=ASUS' variable then all goes well! [5/5] Flashing new CFE... Do you want to flash a new CFE bootloader that? [y,n]y...flashing... Update completed. Old CFE is stored to cfe.old file, a new one - to cfe.new It's strongly recommended to store them, just in case. Please note, your personal MAC addresses in there, do not distribute them. admin@RT-N66U:/tmp/mnt/SDCARD/tmp#