Вопрос по обновлению CFE bootloader
есть такое руководство к действию
http://www.snbforums.com/threads/cfe...r-update.8259/
НО утверждается что работает всё только на мерлиновской прошивке.
В скрипте cfe_update.sh встречаем такое условие
Code:
if [ ! -f /www/merlin.js ] ; then
echo "Works only on Asuswrt-Merlin firmware, sorry."
exit 1
fi
Вопрос к более опытным товарищам. Если его убрать, сработает ли всё на томате?
cfe_update.sh
Code:
#!/bin/sh
if [ ! -f /www/merlin.js ] ; then
echo "Works only on Asuswrt-Merlin firmware, sorry."
exit 1
fi
if [ -z "$1" ] ; then
cat << EOF
This script updates CFE boot loader on RT-N66U B1 to v1.0.1.9
Use it ONLY if you know what you are doing.
See http://forums.smallnetbuilder.com/showthread.php?t=8259 for details.
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
EOF
exit 1
fi
cfe_ver=`strings $1 | grep bl_version | sed 's/bl_version=//g'`
case $cfe_ver in
1.0.1.2)
<------>echo "Current CFE version is $cfe_ver"
;;
1.0.1.3)
<------>echo "Current CFE version is $cfe_ver"
;;
1.0.1.4)
<------>echo "Current CFE version is $cfe_ver"
;;
1.0.1.9)
<------>echo "Original CFE is already updated! Exiting..."
<------>exit 1
;;
*)
<------>echo "Unknown CFE version. Update canceled for safety reasons."
<------>exit 1
;;
rm -f nvram*.txt cfe.new diff.txt
echo "[1/4] Dumping default NVRAM settings from original CFE..."
./nvsimple-mipsel -e $1 -v -o 1024 | sort > nvram_orig.txt
echo "[2/4] Preparing new CFE..."
cat nvram_orig.txt| grep -v ^odmpid > nvram.txt
sed -i 's|^\(bl_version\)=.*|\1=1.0.1.9|g' nvram.txt
cp -f 1.0.1.9.empty.bin cfe.new
./nvsimple-mipsel -i nvram.txt cfe.new -v -o 1024 -l 4092
echo "[3/4] Checking differences between old and new NVRAM areas:"
./nvsimple-mipsel -e cfe.new -o 1024 | sort > nvram_updated.txt
diff -u nvram_orig.txt nvram_updated.txt | grep -E "^\+|^\-" | grep -v ".txt$" >
cat diff.txt
if [ -z "$(cat diff.txt | grep -v bl_version | grep -v odmpid)" ] ; then
echo "Everything looks good."
else
echo "Something goes wrong, unexpected NVRAM values, exiting..."
exit 1
fi
read -n1 -p "[4/4] Are you sure you want to flash a new CFE? [y,n]: " answer
if [ "$answer" == "y" ] ; then
echo " flashing..."
cat /dev/mtd0 > cfe.old
mtd-write -i cfe.new -d pmon
cat << EOF
Update completed. An 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.
EOF
else
echo " Flashing canceled!"
exit 1
fi