Postado originalmente por
kez
Olá pessoal!
Caso você tenha feito uma atualização de firmware errada em sua WOM5000/i/MiMo ela pode parar de funcionar.
Fiz um procedimento de recuperação que funciona nos 3 modelos.
Não me responsabilizo por qualquer dano causado pelo procedimento.
Infelizmente, não é um processo extremamente simples.
Faça apenas se tiver certeza do que está fazendo!!!
Lembrando que esse procedimento não clona os MAC addresses e nem altera as calibrações de RF, portanto é perfeitamente legal.
Requisitos:
1. Ligue primeiramente a WOM5000/WOM5000i/WOM5000MiMo que esteja funcionando normalmente.
2. Aplique as configurações de fábrica.
3. Ative o servidor SSH2(Sistema, Gerenciamento de Acesso, Configurações do Gerenciamento via Terminal (SSH2), Acesso restrito(LAN), Salvar, Aplicar)
4. Abra o putty em SSH apontando para o IP da WOM5000(10.0.0.1) com usuario admin e senha admin.
5. Vamos copiar a partição mtd6("Kernel_RootFS") e mtd5("UserConf") para /tmp:
Código :
cp /dev/mtdblock6 /tmp
cp /dev/mtdblock5 /tmp
6. Use o pscp para transferir os arquivos. Extraia o pscp em uma pasta(c:\wom5000, por exemplo), abra o prompt de comando e digite:
A senha do usuário admin será solicitada, basta digitar admin.
O tamanho do arquivo mtdblock6 é 3.604.480 bytes e do mtdblock5 é 262.144 bytes.
7. Para criar a ROM de recovery você precisa juntar o mtdblock6 com o mtdblock5 nessa ordem, portando:
Código :
copy /b mtdblock6 + mtdblock5 recovery
O novo arquivo deve possuir 3.866.624 bytes.
EDIT: A WOM5000 MiMo possui 8MB de flash, portanto o tamanho dos arquivos sao diferentes:
mtdblock6 = 7.798.784 bytes
mtdblock5 = 262.144 bytes
Arquivo de recovery = 8.060.928 bytes
7. Agora abra a WOM5000 a ser recuperada(lembrando que ela precisa ser do mesmo modelo da doadora).
8. Solde os fios TX, RX e GND no seu cabo TTL para RS-233(usei aqui um PL-2303HX mas os FTDIs também funcionarão). Os pinos estão bem visíveis, escritos TX, GND e RX.
9. Abra o putty, escolha modo serial e a porta que o seu cabo recebeu(confira no gerenciador de dispositivos). A velocidade deve ser 64000.
10. Clique em OK e ligue sua WOM5000. O log deve ser semelhante a esse:
Código :
U-Boot 1.1.3 (Dec 14 2011 - 02:23:19)
Board: Ralink APSoC DRAM: 32 MB
relocate_code Pointer at: 81fb0000
spi_wait_nsec: 30
spi device id: c2 20 16 c2 20 (2016c220)
find flash: MX25L3205D
raspi_read: from:30000 len:1000
.*** Warning - bad CRC, using default environment
============================================
Ralink UBoot Version: 3.6.0.0
--------------------------------------------
ASIC 3883_MP (MAC to 100SW Mode)
DRAM_CONF_FROM: EEPROM
DRAM_SIZE: 128 Mbits SDR
DRAM_TOTAL_WIDTH: 16 bits
TOTAL_MEMORY_SIZE: 16 MBytes
Flash component: SPI Flash
Date:Dec 14 2011 Time:02:23:19
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 500 MHZ ####
estimate memory size =32 Mbytes
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP. 0
3: System Boot system code via Flash.
## Booting image at bc050000 ...
raspi_read: from:50000 len:40
. Image Name: Linux Kernel Image
Created: 2015-07-29 14:14:25 UTC
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 3567552 Bytes = 3.4 MB
Load Address: 80000000
Entry Point: 80232000
raspi_read: from:50040 len:366fc0
....................................................... Verifying Checksum ... Bad Data CRC
Se não aparecer nada, inverta os fios de TX e RX(desligue a CPE e o cabo USB antes de fazer isso).
Agora desligue e ligue-a novamente e escolha a opção 2:
Código :
You choosed 2
0
raspi_read: from:40028 len:6
.
2: System Load Linux Kernel then write to Flash via TFTP.
Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
Digite y para confirmar.
Primeiramente ela vai perguntar o IP da WOM5000 e depois a do servidor TFTP, confirme os 2 pressionando enter.
Agora ele pede o nome do arquivo a ser aplicado na flash: recovery(o do passo 7), mas ainda não aperte enter.
Mude o IP da sua placa de rede para 10.10.10.3/255.0.0.0.
11. Inicie o TFTP32, na aba tftp server clique em Show Dir e depois em Explorer. Cole o arquivo recovery dentro dessa pasta.
12. Com o cabo de rede ligado do PC para a CPE, volte para o putty e pressione enter para confirmar o nome do arquivo.
13. Aguarde a transferência concluir e sua CPE já estará funcionando normalmente. Recomendo voltar às configurações de fábrica e atualizar o firmware novamente.
Código :
============================================
Ralink UBoot Version: 3.6.0.0
--------------------------------------------
ASIC 3883_MP (MAC to 100SW Mode)
DRAM_CONF_FROM: EEPROM
DRAM_SIZE: 128 Mbits SDR
DRAM_TOTAL_WIDTH: 16 bits
TOTAL_MEMORY_SIZE: 16 MBytes
Flash component: SPI Flash
Date:Dec 14 2011 Time:02:23:19
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 500 MHZ ####
estimate memory size =32 Mbytes
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP. 2
You choosed 2
0
raspi_read: from:40028 len:6
.
2: System Load Linux Kernel then write to Flash via TFTP.
Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
Please Input new ones /or Ctrl-C to discard
Input device IP (10.10.10.123) ==:10.10.10.123
Input server IP (10.10.10.3) ==:10.10.10.3
Input Linux Kernel filename () ==:recovery
netboot_common, argc= 3
NetTxPacket = 0x81FE4D40
KSEG1ADDR(NetTxPacket) = 0xA1FE4D40
NetLoop,call eth_halt !
NetLoop,call eth_init !
Trying Eth0 (10/100-M)
Waitting for RX_DMA_BUSY status Start... done
Header Payload scatter function is Disable !!
ETH_STATE_ACTIVE!!
Using Eth0 (10/100-M) device
TFTP from server 10.10.10.3; our IP address is 10.10.10.123
Filename 'recovery'.
TIMEOUT_COUNT=10,Load address: 0x80100000
Loading: Got ARP REPLY, set server/gtwy eth addr (00:1d:7d:XX:XX:XX)
Got it
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#########################################
done
Bytes transferred = 3866624 (3b0000 hex)
NetBootFileXferSize= 003b0000
raspi_erase_write: offs:50000, count:3b0000
raspi_erase: offs:50000 len:3b0000
...........................................................
raspi_write: to:50000 len:3b0000
...........................................................
raspi_read: from:50000 len:10000
.raspi_read: from:60000 len:10000
.raspi_read: from:70000 len:10000
.raspi_read: from:80000 len:10000
.raspi_read: from:90000 len:10000
.raspi_read: from:a0000 len:10000
.raspi_read: from:b0000 len:10000
.raspi_read: from:c0000 len:10000
.raspi_read: from:d0000 len:10000
.raspi_read: from:e0000 len:10000
.raspi_read: from:f0000 len:10000
.raspi_read: from:100000 len:10000
.raspi_read: from:110000 len:10000
.raspi_read: from:120000 len:10000
.raspi_read: from:130000 len:10000
.raspi_read: from:140000 len:10000
.raspi_read: from:150000 len:10000
.raspi_read: from:160000 len:10000
.raspi_read: from:170000 len:10000
.raspi_read: from:180000 len:10000
.raspi_read: from:190000 len:10000
.raspi_read: from:1a0000 len:10000
.raspi_read: from:1b0000 len:10000
.raspi_read: from:1c0000 len:10000
.raspi_read: from:1d0000 len:10000
.raspi_read: from:1e0000 len:10000
.raspi_read: from:1f0000 len:10000
.raspi_read: from:200000 len:10000
.raspi_read: from:210000 len:10000
.raspi_read: from:220000 len:10000
.raspi_read: from:230000 len:10000
.raspi_read: from:240000 len:10000
.raspi_read: from:250000 len:10000
.raspi_read: from:260000 len:10000
.raspi_read: from:270000 len:10000
.raspi_read: from:280000 len:10000
.raspi_read: from:290000 len:10000
.raspi_read: from:2a0000 len:10000
.raspi_read: from:2b0000 len:10000
.raspi_read: from:2c0000 len:10000
.raspi_read: from:2d0000 len:10000
.raspi_read: from:2e0000 len:10000
.raspi_read: from:2f0000 len:10000
.raspi_read: from:300000 len:10000
.raspi_read: from:310000 len:10000
.raspi_read: from:320000 len:10000
.raspi_read: from:330000 len:10000
.raspi_read: from:340000 len:10000
.raspi_read: from:350000 len:10000
.raspi_read: from:360000 len:10000
.raspi_read: from:370000 len:10000
.raspi_read: from:380000 len:10000
.raspi_read: from:390000 len:10000
.raspi_read: from:3a0000 len:10000
.raspi_read: from:3b0000 len:10000
.raspi_read: from:3c0000 len:10000
.raspi_read: from:3d0000 len:10000
.raspi_read: from:3e0000 len:10000
.raspi_read: from:3f0000 len:10000
.Done!
## Booting image at bc050000 ...
raspi_read: from:50000 len:40
. Image Name: Linux Kernel Image
Created: 2014-06-17 15:13:21 UTC
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 3547072 Bytes = 3.4 MB
Load Address: 80000000
Entry Point: 80232000
raspi_read: from:50040 len:361fc0
....................................................... Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80232000) ...
## Giving linux memsize in MB, 32
Starting kernel ...
LINUX started...
THIS IS ASIC
Linux version 2.6.21-firmware (root@guilew) (gcc version 3.4.2) #2 Tue Jun 17 12 :09:11 BRT 2014
The CPU feqenuce set to 500 MHz
CPU revision is: 0001974c
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
Built 1 zonelists. Total pages: 8128
Kernel command line: console=ttyS1,57600n8 root=/dev/mtdblock4
Primary instruction cache 64kB, physically tagged, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, linesize 32 bytes.
Synthesized TLB refill handler (20 instructions).
Synthesized TLB load handler fastpath (32 instructions).
Synthesized TLB store handler fastpath (32 instructions).
Synthesized TLB modify handler fastpath (31 instructions).
cause = 40808000, status = 11000000
PID hash table entries: 128 (order: 7, 512 bytes)
calculating r4koff... 001e8480(2000000)
CPU frequency 500.00 MHz
Using 250.000 MHz high precision timer.
Console: colour dummy device 80x25
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 29996k/32768k available (1947k kernel code, 2772k reserved, 297k data, 1 20k init, 0k highmem)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
NET: Registered protocol family 2
Time: MIPS clocksource has been installed.
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
deice id : c2 20 16 c2 20 (2016c220)
MX25L3205D(c2 2016c220) (4096 Kbytes)
mtd .name = raspi, .size = 0x00400000 (4M) .erasesize = 0x00010000 (64K) .numera seregions = 0
Creating 7 MTD partitions on "raspi":
0x00000000-0x00030000 : "Bootloader"
0x00030000-0x00040000 : "Config"
0x00040000-0x00050000 : "Factory"
0x00050000-0x00150000 : "Kernel"
0x00150000-0x003c0000 : "RootFS"
0x003c0000-0x00400000 : "UserConf"
0x00050000-0x003c0000 : "Kernel_RootFS"
Load Ralink DFS Timer Module
squashfs: version 3.2-r2 (2007/01/15) Phillip Lougher
squashfs: LZMA suppport for slax.org by jro
io scheduler noop registered (default)
Ralink gpio driver initialized
Ralink APSoC Hardware Watchdog Timer
Serial: 8250/16550 driver $Revision: 1.7 $ 2 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0xb0000500 (irq = 37) is a 16550A
serial8250: ttyS1 at I/O 0xb0000c00 (irq = 12) is a 16550A
rdm_major = 254
MAC_ADRH -- : 0x00000000
MAC_ADRL -- : 0x00000000
Ralink APSoC Ethernet Driver Initilization. v2.0 256 rx/tx descriptors allocate d, mtu = 1500!
NAPI enable, weight = 0, Tx Ring = 256, Rx Ring = 256
MAC_ADRH -- : 0x0000000c
MAC_ADRL -- : 0x43436020
PROC INIT OK!
--->regValue:1010245
--->regValue:25010245
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
block2mtd: version $Revision: 1.1.1.1 $
u32 classifier
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (256 buckets, 2048 max)
ip_tables: (C) 2000-2006 Netfilter Core Team, Type=Linux
ipt_time loading
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Ebtables v2.0 registered
802.1Q VLAN Support v1.8 Ben Greear <[email protected]>
All bugs added by David S. Miller <[email protected]>
VFS: Mounted root (squashfs filesystem) readonly.
Freeing unused kernel memory: 120k freed
init started: BusyBox v1.18.1 (2011-11-28 16:34:27 BRST)
starting pid 13, tty '': '/bin/firmware init &'
Algorithmics/MIPS FPU Emulator v1.5
Please press Enter to activate this console. sh: can't create /proc/rt3883/gmac: nonexistent directory
Started WatchDog Timer.
Started WatchDog Timer.
MAC_ADRH -- : 0x0000001a
MAC_ADRL -- : 0x3fb2a9ad
rt2860v2_sta: module license 'unspecified' taints kernel.
=== pAd = c0058000, size = 1076528 ===
<-- RTMPAllocTxRxRingMemory, Status=0
<-- RTMPAllocAdapterBlock, Status=0
RX DESC a1810000 size = 2048
Key1Str is Invalid key length(0) or Type(0)
Key2Str is Invalid key length(0) or Type(0)
Key3Str is Invalid key length(0) or Type(0)
Key4Str is Invalid key length(0) or Type(0)
1. Phy Mode = 8
2. Phy Mode = 8
Read EEPROM, EthCloneMac is 00:1a:3f:xx:xx:xx!
3. Phy Mode = 8
MCS Set = ff 00 00 00 01
<==== rt28xx_init, Status=0
0x1300 = 00064300
device eth2 entered promiscuous mode
phy_tx_ring = 0x01f22000, tx_ring = 0xa1f22000
phy_rx_ring0 = 0x01f23000, rx_ring0 = 0xa1f23000
CDMA_CSG_CFG = 81000007
GDMA1_FWD_CFG = C0710000
br0: port 1(eth2) entering learning state
udhcpc (v1.18.1) started
Sending discover...
Using intrapositioned negation (`--option ! this`) is deprecated in favor of ext rapositioned (`! --option this`).
Sending discover...
Pronto!
Postem suas dúvidas e resultados.
Boa sorte a todos!