View Full Version : pmon и кнопка RESET
После неудачной прошивки из-за нехватки памяти WL-500g deluxe перестал грузиться. После включения загорались лампочки всех портов и питания. Через полсекунды лампочки портов гасли, а лампочка питания постоянно горела. Все 5 портов работали в режиме свитча и если подключить компьютер в любой порт лампочка порта загоралась. Проблема уже встречалась раньше: http://wl500g.info/showthread.php?t=239
Нажатие кнопки RESET на роутере перед подачей питания или после подачи питания ничего не меняло. Роутер был недоступен в сети и утилита восстановления его не видела. Правильно ли я понимаю, что pmon не считывает состояние этой кнопки?
Тогда неудачная прошивка или её прерывание опасны, так как pmon сразу грузит прошивку. Пусть даже сам pmon и nvram целы. Pmon убить сложно, но нужно выяснить как гарантированно восстановиться после неудачной прошивки, раз уж это может bricked роутер.
Насколько я понял, pmon и nvram были целыми. pmon загружался, начинал грузить прошивку и роутер вешался на этом шаге.
Восстановить роутер удалось частым вытыканием-вытыканием шнура питания. После нескольких втыканий лампочка питания начала мигать, роутер стал пинговаться и утилита восстановления rescuer.exe успешно залила прошивку. Как я понял случаи успешного восстановления роутера путём замыкания ножек памяти, выдерживанием его в холоде были вызваны просто частым передергиванием питания, либо само передергивание может по вероятности заставить роутер считать ядро поврежденным и не грузить его.
Нажатие кнопки RESET на роутере перед подачей питания или после подачи питания ничего не меняло. Роутер был недоступен в сети и утилита восстановления его не видела. Правильно ли я понимаю, что pmon не считывает состояние этой кнопки?
Считывает. Но вот в некоторых случаях кривой nvram приводит к тому, что не проходит инициализация какой-то части, в результате recovery не работает.
Насколько я понял, pmon и nvram были целыми. pmon загружался, начинал грузить прошивку и роутер вешался на этом шаге.
Нет, nvram был кривым или содержал фигню.
Восстановить роутер удалось частым вытыканием-вытыканием шнура питания. После нескольких втыканий
Просто Вы наткнулись на баг в CFE и PMONах, которые внесены АСУСом. :) В результате стёрся nvram. Баг заключаетс я в том, что они всегда при загрузке пишут в nvram значение одной из переменных, даже если оно не меняется. Но дело в том, что запись во флешку - это стирание, а лишь потом программирование. Вот Вы и попали в момент, когда стирание прошло, а новое содержимое не записалось. Люди от этого бага страдают. :)
лампочка питания начала мигать, роутер стал пинговаться и утилита восстановления rescuer.exe успешно залила прошивку. Как я понял случаи успешного восстановления роутера путём замыкания ножек памяти, выдерживанием его в холоде были вызваны просто частым передергиванием питания, либо само передергивание может по вероятности заставить роутер считать ядро поврежденным и не грузить его.
Нет, с 10-м пином всё по другому, как там и описано.
значит можно считать, что после включения питания модема его нельзя сразу выключать, иначе в nvram будет записан мусор если попасть на момент записи?
так же, если nvram уже поврежден, то можно выключением питания модема после загрузки отловить момент очистки nvram и оживить модем, так как с чистым nvram он входит в режим восстановления?
Жалко, что pmon читает nvram прежде, чем входит в режим восстановления.
Хочется безопасной заливки. Может ли повредиться nvram при прошивке через веб-интерфейс? Как я понял случай стирания nvram возможен, если разметка адресов повреждена и залезает на nvram. Т.е. стоит ли проверять какие то параметры перед прошивкой. Linux пишет что-то в nvram при загрузке или прошивке? Может безопаснее заливать прошивки в recovery mode - в этом режиме nvram не трогается?
Есть похожее на 500gx устройство DLink DSL-500T - там вместо pmon стоит adam2 и очень часто слетает env, там он восстанавливается через консольный порт - есть команда переинициализации nvram. Но там тоже был случай, когда в nvram такой мусор, что бутлоадер вис не доходя до инициализации консоли. Этот случай решился примерно так же: замыканием флэша. Я думал, что ц 500gx pmon попроще и это узкое место обошли - в рековери режим войдет всегда, но оказалось тоже есть проблемы. Хорошо хоть баг помогает сбрасывать nvram. :)
значит можно считать, что после включения питания модема его нельзя сразу выключать, иначе в nvram будет записан мусор если попасть на момент записи?
Именно.
так же, если nvram уже поврежден, то можно выключением питания модема после загрузки отловить момент очистки nvram и оживить модем, так как с чистым nvram он входит в режим восстановления?
На самом деле, с чистым nvram он не входит в режим восстановления, просто так совпало, что у Вас и прошивка оказалась повреждённой, т.е. не совпадала CRC или не было заголовка.
Жалко, что pmon читает nvram прежде, чем входит в режим восстановления.
Там CFE на самом деле, pmon использовался до Deluxe. А в CFE добавили возможность обхода кривого nvram - ещё до инициализации опрашивается один из GPIO входов (в deluxe - GPIO7) и если он на земле, то nvram чистится.
Хочется безопасной заливки. Может ли повредиться nvram при прошивке через веб-интерфейс? Как я понял случай стирания nvram возможен, если разметка адресов повреждена и залезает на nvram. Т.е. стоит ли проверять какие то параметры перед прошивкой. Linux пишет что-то в nvram при загрузке или прошивке? Может безопаснее заливать прошивки в recovery mode - в этом режиме nvram не трогается?
Я делаю апгрейд либо из Recovery, либо вручную из консоли, посольку Web интерфейс ведёт себя иногда непредсказуемым образом.
Есть похожее на 500gx устройство DLink DSL-500T - там вместо pmon стоит adam2 и очень часто слетает env, там он восстанавливается через консольный порт - есть команда переинициализации nvram. Но там тоже был случай, когда в nvram такой мусор, что бутлоадер вис не доходя до инициализации консоли. Этот случай решился примерно так же: замыканием флэша. Я думал, что ц 500gx pmon попроще и это узкое место обошли - в рековери режим войдет всегда, но оказалось тоже есть проблемы. Хорошо хоть баг помогает сбрасывать nvram. :)
На самом деле до этого бага может и не дойти (он там же, где и опрос кнопки RESET/RESTORE), если, например, в nvram неправильные параметры указаны для контроллёра оперативной памяти. В этом случае pin10 поможет.
я когда роутер переклинило искл в форуме поожие случаи, решения были размазаны, в основном для 500g и без результатов что помогло. Предлагаю добавить в FAQ (когда будет время):
в CFE добавили возможность обхода кривого nvram - ещё до инициализации опрашивается один из GPIO входов (в deluxe - GPIO7) и если он на земле, то nvram чистится
и про 10 пин тоже.
Подключил кабель к GPIO_TX0, GPIO_RX0, GND, +3.3V параметры соединения 115200-8-None-1-Hardware
TX и RX обозначения перепутаны. Если поменять местами TX-RX в hyperterminal ничего не пишется. При загрузке в момент когда загораются все лампочки свитча пишется, что загрузчик ждет соедитнения по TFTP. Ждёт не больше секунды - очень маленький таймаут. Наверное, порты в этот момент всё равно заблокированы и он не может ничего принять. Чтобы зайти в бутлоадер можно нажать комбинацию Ctrl+C в первую секунду загрузки и в этой оболочке давать команды, например help. После загрузки linux вместо Ctrl+C достаточно нажать клавишу Enter - появится шелл linux как в telnet. При этом роуте виден в сети LAN по адресу, который назначили в веб-интерфейсе, а не 192.168.1.1
Чтобы стек tcp windows не реагировал на перегрузки роутера в который воткнута нужно добавить в реестр:
===add.reg=======
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Tcpip\Parameters]
"DisableDHCPMediaSense"=dword:00000001
"DisableClusSvcMediaSense"=dword:00000001
==========
загружать прошивку можно в resque mode - вызывается нажатием кнопки RESET до включения питания и сигнализируется миганием лампочки POWER. В этот момент бутлоадер (CFE) роутера ждет соединения по tftp. Загрузить лучше всего программой восстановления. Она при загрузке посылает arp запрос на адрес 192.168.1.49, роутер назначает его себе вместо 192.168.1.1 и дальше программа шлёт прошивку. Примерная схема загрузки:
tftp <router ip>
tftp> binary
tftp> trace
tftp> get ASUSSPACELINK\x01\x01\xa8\xc0 /dev/null
tftp> put firmware.trx ASUSSPACELINK
для linux можно скачать скрипт который делает то же самое, что и программа восстановления http://jaffar.cs.msu.su/wl500g/recover.sh
команды CFE:
rndis Broadcom USB RNDIS utility.
et Broadcom Ethernet utility.
nvram NVRAM utility.
reboot Reboot.
printdefault Display the environment default variables embeded in the bootloader
flash Update a flash memory device
autoboot Automatic system bootstrap.
batch Load a batch file into memory and execute it
go Verify and boot OS image.
boot Load an executable file into memory and execute it
load Load an executable file into memory without executing it
save Save a region of memory to a remote file via TFTP
ping Ping a remote IP host.
arp Display or modify the ARP Table
ifconfig Configure the Ethernet interface
unsetenv Delete an environment variable.
printenv Display the environment variables
setenv Set an environment variable.
help Obtain help for CFE commands
CFE> printdefault
FLSHёЙ 2
boardtype=bcm95365r
boardnum=45
boardrev=0x10
clkfreq=200
sdram_init=0x2008
sdram_config=0x32
sdram_refresh=0x00
sdram_ncdl=0x0
et0macaddr=00:11:D8:XX:XX:XX
et0phyaddr=254
et0mdcport=0
dl_ram_addr=a0001000
os_ram_addr=80001000
os_flash_addr=bfc40000
lan_ipaddr=192.168.1.1
lan_netmask=255.255.255.0
scratch=a0180000
boot_wait=on
watchdog=5000
reset_gpio=7
hardware_version=WL500gd-01-04-01-50
regulation_domain=0x30DE
команда полезная для тестирования прошивок, чтобы не писать их во флэш
CFE> help boot
SUMMARY
Load an executable file into memory and execute it
USAGE
boot [-options] host:filename|dev:filename
This command loads and executes a program from a boot device
By default, 'boot' will load a raw binary at virtual
address 0x20000000 and then jump to that address
OPTIONS
-elf Load the file as an ELF executable
-srec Load the file as ASCII S-records
-raw Load the file as a raw binary
-z Load compessed file
-loader=* Specify CFE loader name
-tftp Load the file using the TFTP protocol
-fatfs Load the file from a FAT file system
-rawfs Load the file from an unformatted file system
-fs=* Specify CFE file system name
-max=* Specify the maximum number of bytes to load (raw only)
-addr=* Specify the load address (hex) (raw only)
-noclose Don't close network link before executing program
CFE> help nvram
NVRAM utility.
USAGE
nvram [command] [args..]
Access NVRAM.
OPTIONS
get [name] Gets the value of the specified variable
set [name=va Sets the value of the specified variable
unset [name] Deletes the specified variable
commit Commit variables to flash
erase Erase all nvram интересно сможет ли потом роутер загрузиться, думаю она просто инициализирует чистую nvram значениями по умолчанию
show Shows all variables
пример сообщений в консоли при загрузке прошивки в resque режиме:
Rescue Flag disable.
Hello!! Enter Rescue Mode: (by Force)
Reading :: TFTP Server.
Failed.: Timeout occured
Reading :: TFTP Server.
Device eth0: hwaddr 00-11-D8-xx-xx-xx, ipaddr 192.168.1.49, mask 255.255.255.0
gateway not set, nameserver not set
Failed.: Timeout occured
Reading :: TFTP Server.
Done. 3715072 bytes read
Download of 0x38b000 bytes completed
Write kernel and filesystem binary to FLASH (0xbfc40000)
flash device 'flash1.trx'
Programming...
done. 3715072 bytes written
Loader:raw Filesys:raw Dev:flash0.os File: Options:(null)
Loading: .. 3560 bytes read
Entry at 0x80001000
Closing network.
Starting program at 0x80001000
cpu probe
prom init
cpu report
CPU revision is: 00029007
Primary instruction cache 8kb, linesize 16 bytes (2 ways)
Primary data cache 4kb, linesize 16 bytes (2 ways)
Linux version 2.4.20 (root@omnibook) (gcc version 3.2.3 with Broadcom modificati
ons) #15 Sat Jan 7 20:01:34 MSK 2006
Setting the PFC value as 0x15
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 noinitrd init=/linuxrc console=ttyS0,11
5200
CPU: BCM5365 rev 1 at 200 MHz
Calibrating delay loop... 199.47 BogoMIPS
при загрузке линукс посылает и в WAN и в LAN 3 пакета IPv6 - представляет себя и ищет роутер. Это хорошо бы отключить по умолчанию.
SoundMan
02-12-2006, 11:20
Помогите с wl500gP!!! После неудачной прошивки медленно мигает индикатор PWR и никакие действия не помогают. Ping до 192.168.1.1 не прохоходит, загрузка с нажатой кнопкой RESTORE ничего не дает, многократные быстрые включения/выключения питания тоже ни к чему не привели. Вскрывать не хотелось бы, т.к. роутеру еще и двух недель нет. Если ничего больше не остается как нести в сервис центр, то будет ли это являтся гарантийным случаем (в случае попытки прошить неофициальную прошивку)?
Так пробовали?
http://wl500g.info/showpost.php?p=33445&postcount=16
Если не пингуется - в сервисный центр.
SoundMan
02-12-2006, 19:27
Так пробовали?
http://wl500g.info/showpost.php?p=33445&postcount=16
Если не пингуется - в сервисный центр.
Именно так и пробовал. Такое впечатление, что на кнопку RESTORE вообще никакой реакции нет. Роутер всегда при включении медленно мигает лампой POWER, независимо от того, нажимал я на RESTORE или нет. Пинга нет ни в одном из вариантов.
Вопрос о гарантии остался открытым: является ли данный случай гарантийным или нет?
Является. Роутер должен нормально работать в режиме восстановления.
Сейчас он в него входит постоянно, т.к. прошивки нет.
После неудачной прошивки, скорее из-за кривых рук, перестал грузиться. После включения загорались лампочки всех портов и питания. Через полсекунды лампочки портов гасли, а лампочка питания постоянно горела. Все 5 портов работали в режиме свитча и если подключить компьютер в любой порт лампочка порта загоралась. Нажатие кнопки RESET на роутере перед подачей питания, вводит в режим программирования, но программа burnboot затыкается по таймауту, так же затыкается во время прошивки, примерно на 28%, прогаммой Firmware Restoration.
Я так понял, что пациент скорее жив, чем мертв. Живу далеко, сервисных центров нет, железяка очень нужна, особенно ценность возрасла после посещения и просвещения на Вашем сайте.
Я вычитал в этой ветке, что его можно и аппаратным способом востановить. Подскажите если не трудно. Или уже с ним не заморачиваться и прикупить WL-700?
С уважением Олег Миронов
Подключите консоль, посмотрите, что он пишет. Примерно так. И сделайте новую тему.
Подключите консоль, посмотрите, что он пишет. Примерно так. И сделайте новую тему.
Ничего он не пишет, молчит как партизан.
С уважением, ОЛег Миронов
Если он входит в режим восстановления, то точно пишет. Проверяйте кабель, распиновку, параметры порта...
Если он входит в режим восстановления, то точно пишет. Проверяйте кабель, распиновку, параметры порта...
В режим востановления он входит с помощью программы с CD, по локальной сети с установкой на сетвеой карте компьютера 192.168.1.2/24, как описано в мануале по ASUS.
На счет консоли, то я честно не понял, если можно по подробнее. Вроде все на форуме смотрел, но на счет подключения по консоли, увы не нашел
Именно так и пробовал. Такое впечатление, что на кнопку RESTORE вообще никакой реакции нет. Роутер всегда при включении медленно мигает лампой POWER, независимо от того, нажимал я на RESTORE или нет. Пинга нет ни в одном из вариантов.
Вопрос о гарантии остался открытым: является ли данный случай гарантийным или нет?
Тоже самое случилось.SoundMan Как вы справились с проблемой?
та же байда случилась! только по закону подлости: вечером после работы уставший перепрошивал на новую прошивку незаметил как девушка (тупорылая) соседа подошла и выташила из розетки сетевой кабель!
мигает только power ~1 сек. на работе планирую обжать кабель. и делать tftp. только не понятно по интструкции где должна лежать прошивка на компе (.trx файл)? чтоб он начал его перешивать?
сидюка с прогами восстановления нет!(может где качну...)
PS miko69 вы необратили внимание что ваше сообщение оставлено год спустя?
(я уже организовал движение оставь сообщение год спустя на некоторых форумах!тут вы меня опередили)
У меня после неудачной попытки обновления загрузчика на wl-500gP при подачи питания горят только lan. Power постоянно выключен. Ни кнопка ни замыкание пинов (и 9 и 10 пробовал, до этого с пином 9 все нормально получиалось когда лампочка питания горела) не переводят в режим прошивки. Что можно еще попробовать сделать?
У меня после неудачной попытки обновления загрузчика на wl-500gP при подачи питания горят только lan. Power постоянно выключен. Ни кнопка ни замыкание пинов (и 9 и 10 пробовал, до этого с пином 9 все нормально получиалось когда лампочка питания горела) не переводят в режим прошивки. Что можно еще попробовать сделать?
А вот интересно: что за обновление загрузчика такое на Премиуме? "Уж сколько раз твердили миру..."(с) Флэш теперь выпаивать и перепрограммировать.
Так пробовали?
http://wl500g.info/showpost.php?p=33445&postcount=16
Если не пингуется - в сервисный центр.
У меня в режиме прошивки пингуется, только пишет превышен таймаут при попытке залить прошивку.
GydroCasper
19-08-2008, 19:22
Здравствуйте, у меня маршрутизатор WL-520g. Сейчас я подключился к провайдеру, который обеспечивает связь только по VPN, при этом IP-адрес выдается автоматически. Если я в настройках маршрутизатора ставлю тип соединения PPTP, то он автоматически запрашивает IP-адрес и оставить пустым это поле нельзя. Таким образом, я не понимаю, как вообще настроить роутер для того, чтобы он сам подключался к VPN-серверу.