я когда роутер переклинило искл в форуме поожие случаи, решения были размазаны, в основном для 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 не реагировал на перегрузки роутера в который воткнута нужно добавить в реестр:
Code:
===add.reg=======
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DisableDHCPMediaSense"=dword:00000001
"DisableClusSvcMediaSense"=dword:00000001
==========
загружать прошивку можно в resque mode - вызывается нажатием кнопки RESET до включения питания и сигнализируется миганием лампочки POWER. В этот момент бутлоадер (CFE) роутера ждет соединения по tftp. Загрузить лучше всего программой восстановления. Она при загрузке посылает arp запрос на адрес 192.168.1.49, роутер назначает его себе вместо 192.168.1.1 и дальше программа шлёт прошивку. Примерная схема загрузки:
Code:
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:
Code:
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
команда полезная для тестирования прошивок, чтобы не писать их во флэш
Code:
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 режиме:
Code:
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 - представляет себя и ищет роутер. Это хорошо бы отключить по умолчанию.