Чтобы решить данную проблему надо понять её суть.
Команда
printenv выдаёт конфигурацию
envКоманда
setenv записывает параметр
Например:
setenv serverip '192.168.1.100' задаёт адрес TFTP сервера
setenv ipaddr '192.168.1.1' задаёт IP маршрутизатора
Команда
boot_firm в консоли грузит прошивку, а логика того что делать (откуда грузится) содержится в
env как раз в этой строке
boot_firm.
Все эти команды по сути что-то записывают или считывают с ячеек памяти, и вот после обновления, в строке
boot_firm появился неправильный параметр
Командой
tftp $(loadaddr) <path of firmware image> или командой
tftp 0xAA00000 <path of firmware image> мы пишем прошивку в ячейку
$(loadaddr) или
0xAA00000Параметр
$(loadaddr) можно посмотреть как я писал выше командой
printenv, у меня он был
loadaddr=0xaa00000.
Но в
evn, во всяком случае у меня для
boot_firm говорится что надо что-то распаковать, и вообще не совпадает с тем что указано в мануале .... но мы то залили прошивку куда надо, и по этому командами из мануалов для 500 и 1000 указываем правильный параметр.
хотя я думаю что лучше и для 1000 записать всё не прямыми ячейками а как параметр $(loadaddr).
http://ftp.dlink.hu/dsr/old/DSR-500N_10 ... _BOARD.txt
http://ftp.dlink.hu/dsr/old/DSR-1000N_R ... -1000N.pdf
Поэтому алгоритм такой
1)Командой printenv смотрим параметры env.
2)Сравниваем строку boot_firm с эталонной
3)Если не совпадаем заменяем её на правильную командой
setenv boot_firm 'cp.b BDCA0000 0xaa00000 900000; bootoctlinux 0xaa00200 mtdparts=phys_mapped
_flash:640k(bootloader)ro,9M(kernel),20M(rootfs),2M(AppConfig),128k(bootload-env)'4)Записываем env
saveenv5)run firm_flash
6)run boot_firm
Ну и понятное дело что если не понимаете что вы делаете, то лучше этого не делать, т.к. можно убить железку и окончательно.