Adsl600ew

Origem: Wikipédia, a enciclopédia livre.

Um editor detectou que este artigo ou partes de seu texto podem não ser de natureza enciclopédica.
Por favor consulte o que a Wikipédia não é e tente resolver estas objeções na página de discussão deste artigo.

Índice

[editar] Especificações

[editar] ADSL/ATM

  • ADSL, ADSL2+, RE-ADSL


[editar] Rede Cabo

  • Suporte para IP estático e roteamento RIP dinâmico
  • Suporte para aplicações IP/TCP/UDP/ICMP/ARP/RARP
  • Network Address Translation (NAT)
  • Redireccionamento e mapeamento de portas
  • Servidor, Relay e Cliente DHCP
  • DNS Relay Agent
  • Suporte para DMZ
  • PPP "Always on" com timeout configurável
  • PPP Dial on Demand


[editar] Rede Wireless

  • Suporte para IEEE 802.11, 802.11b e 802.11g
  • Em conformidade com a Wireless Ethernet Compatibility Alliance (WECA) Wireless Fidelity (Wi-Fi tm) Standard
  • Suporta 802.11b e 802.11g simultaneamente
  • Seamless WLAN roaming
  • Banda de Frequências:
    • 2412 MHz - 2462 MHz (América do Norte/FCC)
    • 2412 MHz - 2472 MHz (ETSI/Europa)
    • 2412 MHz - 2484 MHz (Japão)
    • 2457 MHz - 2472 MHz (França)
    • 2457 MHz - 2462 MHz (Espanha)
  • Tecnologia Direct Sequence Spread Spectrum (DSSS)
  • Modulação: OFDM com BPSK, QPSK, 16QAM, 64QAM, DBPSK, DQPSK, CCK
  • Wireless Media Access Protocol- CSMA/CA with ACK
  • Escalonamento Dinâmico entre 1, 2, 5.5, 6, 9, 11, 12, 24, 36, 48 e 54 Mb/s
  • Raio de alcance: 300 metros (campo aberto)


[editar] Gestão

  • Ferramenta de gestão HTTP
  • Suporte TFTP/FTP para upgrade do firmware
  • Suporte para upgrade do firmware via Web (localmente)
  • Reset por software, acessível através do interface HTTP e pelo terminal
  • Ferramentas de diagnóstico (DSL, OAM, Network, Ping Test)
  • Telnet/CLI (apenas leitura)
  • Suporte SSH, que posteriormente permite acesso a uma shell (Busybox)
  • Suporte para Syslog
  • Permite o upgrade do firmware (é possível alterar a imagem do kernel para as nossas necessidades)


[editar] Segurança

  • NAT, para um nível básico de firewall
  • Suporte para Packet Filtering Firewall
  • Stateful Packet Inspection
  • Protecção para ataques Denial of Service (DOS)
  • Autenticação por password


[editar] Hardware

  • Texas Instrument TNETD7300 Single Chip Network Processor/AFE/Line Driver Chipset
  • Marvell 88E6060-RCJ 5+1 Port 10/100 MAC/PHY Switch (Suporta Auto MDI/MDIx)
  • Texas Instrument TNETW1130 based IEEE802.11b/g MiniPCI Daughter Board
  • Uma porta USB 1.1
  • Flash ROM de 4 Mb
  • SDRAM de 16 Mb
  • Suporte para Dying Gasp
  • Suporte para ITU K.21

[editar] Plataformas

  • Para Ethernet e Wireless LAN
    • Independente da plataforma
  • Para USB
    • Windows 98SE
    • Windows ME
    • Windows 2000
    • Windows XP
    • Windows 2003


[editar] Alimentação

  • Voltagem de entrada: 9V DC +/- 10%
  • Input Current: 1.0A


[editar] LEDs

  • 1 x Internet Status LED (LED Verde)
  • 1 x Power LED (LED Verde e Vermelho)
  • 1 x DSL Status LED (LED Verde, Vermelho e Amarelo)
  • 4 x Ethernet Link Status LED (LED Verde)
  • 1 x USB Link Status LED (LED Verde)
  • 1 x Wireless LAN Link/Activity Status (LED Verde)


[editar] Ligações ao exterior

  • 1 x Entrada para RJ-11 (linha telefónica/ADSL)
  • 4 x RJ45 para 10/100Base-T Ethernet (AutoMDI/MDIx)
  • 1 x Interface USB 1.1 Type B
  • 1 x DC Jack para Power Input
  • 1 x Botão para Hardware Reset
  • 1 x Botão On/Off
  • 1 x Conector Co-axial para Antena 2.4Ghz 3 dBi Desatarrachável e capaz de rodar até 180 °


[editar] Dimensões

  • 176.5 (Comprimento) x 118.9 (Largura) x 37.9 (Altura) mm
  • Peso: +/- 450 g


[editar] Software

  • BusyBox
  • Montavista Linux


[editar] Procs

[editar] Processador

   # cat /proc/cpuinfo
   processor               : 0
   cpu model               : MIPS 4KEc V4.8
   BogoMIPS                : 149.91
   wait instruction        : no
   microsecond timers      : yes
   extra interrupt vector  : yes
   hardware watchpoint     : yes
   VCED exceptions         : not available
   VCEI exceptions         : not available
   #


[editar] Memória

   # cat /proc/meminfo
           total:    used:    free:  shared: buffers:  cached:
   Mem:  14696448 14254080   442368        0  1744896  3784704
   Swap:        0        0        0
   MemTotal:        14352 kB
   MemFree:           432 kB
   MemShared:           0 kB
   Buffers:          1704 kB
   Cached:           3696 kB
   SwapCached:          0 kB
   Active:           6132 kB
   Inactive:         1512 kB
   HighTotal:           0 kB
   HighFree:            0 kB
   LowTotal:        14352 kB
   LowFree:           432 kB
   SwapTotal:           0 kB
   SwapFree:            0 kB
   #


[editar] Kernel

   # cat /proc/version
   Linux version 2.4.17_mvl21-malta-mips_fp_le (felix.ian@atmos2) (gcc version 2.95.3 20010315 (release/MontaVista)) #3 Thu Sep 15 15:56:07 SGT 2005
   #


[editar] Processos

   # ps
     PID  Uid     VmSize Stat Command
       1 root       1300 S    init
       2 root            S    [keventd]
       3 root            S    [ksoftirqd_CPU0]
       4 root            S    [kswapd]
       5 root            S    [bdflush]
       6 root            S    [kupdated]
       7 root            S    [mtdblockd]
      34 root       2880 S    /usr/bin/cm_pc
      36 root       1300 S    init
      37 root       1176 S    /usr/sbin/thttpd -d /usr/www -u root -p 80 -c /cgi-b
      38 root       3620 S    /usr/bin/cm_logic -m /dev/ticfg -c /etc/config.xml
      60 root        608 S    /usr/bin/cm_klogd /dev/klog
      62 root        996 S    /usr/sbin/wlan/wpa_authenticator
      65 root       1068 S    /usr/sbin/ec_usp -d -c /var/tmp/ec_usp.conf
      66 root       1668 S    /usr/sbin/snmpd
      84 root       1068 S    /usr/sbin/ec_usp -d -c /var/tmp/ec_usp.conf
      95 root       1068 S    /usr/sbin/ec_usp -d -c /var/tmp/ec_usp.conf
      96 root       1068 S    /usr/sbin/ec_usp -d -c /var/tmp/ec_usp.conf
     182 root       1304 S    /bin/sh /usr/bin/appwrapper tinyproxy-bin
     187 root       1248 S    tinyproxy-bin
     188 root       1248 S    tinyproxy-bin
     209 root       2352 S    /usr/sbin/pppd plugin pppoe nas0 user xxx@ISP
     265 root        684 S    /usr/sbin/udhcpd /var/tmp/udhcpd.conf
     369 root        640 S    /sbin/dproxy -c /etc/dproxy.conf -d
     374 root       2280 R    /usr/sbin/dropbear
     375 root       1220 S    -cmcli
     376 root       1304 S    sh -c /bin/sh
     377 root       1308 S    /bin/sh
     395 root       1300 R    ps
   #


[editar] Mounts

   # cat /proc/mounts
   /dev/mtdblock/0 / squashfs ro 0 0
   none /dev devfs rw 0 0
   proc /proc proc rw 0 0
   ramfs /var ramfs rw 0 0
   #


[editar] Discos

   # df
   Filesystem           1k-blocks      Used Available Use% Mounted on
   /dev/mtdblock/0           2304      2304         0 100% /
   #


[editar] MTD

   # cat /proc/mtd
   dev:    size   erasesize  name
   mtd0: 00320000 00010000 "mtd0"
   mtd1: 000c0000 00010000 "mtd1"
   mtd2: 00010000 00002000 "mtd2"
   mtd3: 00010000 00010000 "mtd3"
   mtd4: 003e0000 00010000 "mtd4"
   #


[editar] Módulos

   # lsmod
   Module                  Size  Used by
   tiap                  708536   1
   tiatm                 143000   1
   avalanche_usb          63296   1
   #


[editar] Status

   # cat /proc/avalanche/avsar_modem_stats
AR7 DSL Modem Statistics: -------------------------------- [DSL Modem Stats] US Connection Rate: 256 DS Connection Rate: 4096 DS Line Attenuation: 27 DS Margin: 21 US Line Attenuation: 16 US Margin: 31 US Payload : 644823024 DS Payload: 65240208 US Superframe Cnt : 2177582 DS Superframe Cnt: 2177582 US Transmit Power : 0 DS Transmit Power: 0 LOS errors: 0 SEF errors: 0 Frame mode: 3 Max Frame mode: 0 Trained Path: 0 US Peak Cell Rate: 603 Trained Mode: 3 Selected Mode: 1 ATUC Vendor Code: 414C4342 ATUC Revision: 1 Hybrid Selected: 1 Trellis: 1 Showtime Count: 1 DS Max Attainable Bit Rate: 10784 BitSwap: 1 US Max Attainable Bit Rate: n/a
[Upstream (TX) Interleave path] CRC: 0 FEC: 0 NCD: 1 LCD: 0 HEC: 0
[Downstream (RX) Interleave path] CRC: 0 FEC: 0 NCD: 0 LCD: 0 HEC: 0
[Upstream (TX) Fast path] CRC: 1 FEC: 0 NCD: 0 LCD: 0 HEC: 0
[Downstream (RX) Fast path] CRC: 13 FEC: 0 NCD: 0 LCD: 0 HEC: 0
[ATM Stats] [Upstream/TX] Good Cell Cnt: 13433813 Idle Cell Cnt: 8917217

[Downstream/RX)] Good Cell Cnt: 1359171 Idle Cell Cnt: 356257289 Bad Hec Cell Cnt: 13 Overflow Dropped Cell Cnt: 0
[SAR AAL5 Stats] Tx PDU's: 648029 Rx PDU's: 498931 Tx Total Bytes: 628350332 Rx Total Bytes: 55244565 Tx Total Error Counts: 0 Rx Total Error Counts: 0

[OAM Stats] Near End F5 Loop Back Count: 0 Near End F4 Loop Back Count: 0 Far End F5 Loop Back Count: 0 Far End F4 Loop Back Count: 0 #

[editar] Interfaces

   # ifconfig
   br0       Link encap:Ethernet  HWaddr 00:30:0A:1E:E2:EE
             inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  ASYMMTU:1500
             RX packets:740921 errors:0 dropped:0 overruns:0 frame:0
             TX packets:580408 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:0
             RX bytes:679886481 (648.3 Mb)  TX bytes:100093838 (95.4 Mb)
br1 Link encap:Ethernet HWaddr 00:00:00:00:00:00 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ASYMMTU:1500 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
br2 Link encap:Ethernet HWaddr 00:00:00:00:00:00 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ASYMMTU:1500 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
eth0 Link encap:Ethernet HWaddr 00:30:0A:1E:E2:EE UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ASYMMTU:1500 RX packets:711222 errors:0 dropped:0 overruns:0 frame:0 TX packets:537120 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:680714222 (649.1 Mb) TX bytes:39280830 (37.4 Mb) Base address:0x2800
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 ASYMMTU:0 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
nas0 Link encap:Ethernet HWaddr 00:30:0A:1E:E2:F0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ASYMMTU:1500 RX packets:580826 errors:0 dropped:0 overruns:0 frame:0 TX packets:732640 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:95749134 (91.3 Mb) TX bytes:691692548 (659.6 Mb)
ppp0 Link encap:Point-Point Protocol inet addr:82.154.55.157 P-t-P:194.65.169.218 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 ASYMMTU:1500 RX packets:580807 errors:0 dropped:0 overruns:0 frame:0 TX packets:732627 errors:0 dropped:31 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:91101780 (86.8 Mb) TX bytes:668248201 (637.2 Mb)
usb0 Link encap:Ethernet HWaddr 00:30:0A:1E:E2:EF UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ASYMMTU:1500 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
wlan0 Link encap:Ethernet HWaddr 00:50:F1:12:12:10 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ASYMMTU:1500 RX packets:34639 errors:0 dropped:0 overruns:0 frame:0 TX packets:48544 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:2924729 (2.7 Mb) TX bytes:62223688 (59.3 Mb)
#


[editar] Route

   # route
   Kernel IP routing table
   Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
   194.65.169.218  *               255.255.255.255 UH    0      0        0 ppp0
   192.168.1.0     *               255.255.255.0   U     0      0        0 br0
   239.0.0.0       *               255.0.0.0       U     1      0        0 br0
   default         dial-*-*-+      0.0.0.0         UG    0      0        0 ppp0
   #


[editar] DSL status

   # cat /proc/avalanche/avsar_modem_stats
AR7 DSL Modem Statistics: -------------------------------- [DSL Modem Stats] US Connection Rate: 256 DS Connection Rate: 4096 DS Line Attenuation: 27 DS Margin: 22 US Line Attenuation: 16 US Margin: 31 US Payload : 714079248 DS Payload: 121542336 US Superframe Cnt : 2399991 DS Superframe Cnt: 2399991 US Transmit Power : 0 DS Transmit Power: 0 LOS errors: 0 SEF errors: 0 Frame mode: 3 Max Frame mode: 0 Trained Path: 0 US Peak Cell Rate: 603 Trained Mode: 3 Selected Mode: 1 ATUC Vendor Code: 414C4342 ATUC Revision: 1 Hybrid Selected: 1 Trellis: 1 Showtime Count: 1 DS Max Attainable Bit Rate: 10784 BitSwap: 1 US Max Attainable Bit Rate: n/a
[Upstream (TX) Interleave path] CRC: 0 FEC: 0 NCD: 1 LCD: 0 HEC: 0
[Downstream (RX) Interleave path] CRC: 0 FEC: 0 NCD: 0 LCD: 0 HEC: 0
[Upstream (TX) Fast path] CRC: 1 FEC: 0 NCD: 0 LCD: 0 HEC: 0
[Downstream (RX) Fast path] CRC: 15 FEC: 0 NCD: 0 LCD: 0 HEC: 0
[ATM Stats] [Upstream/TX] Good Cell Cnt: 14876651 Idle Cell Cnt: 9757218

[Downstream/RX)] Good Cell Cnt: 2532132 Idle Cell Cnt: 391609761 Bad Hec Cell Cnt: 13 Overflow Dropped Cell Cnt: 0
[SAR AAL5 Stats] Tx PDU's: 736528 Rx PDU's: 584147 Tx Total Bytes: 695533132 Rx Total Bytes: 109983577 Tx Total Error Counts: 0 Rx Total Error Counts: 0

[OAM Stats] Near End F5 Loop Back Count: 0 Near End F4 Loop Back Count: 0 Far End F5 Loop Back Count: 0 Far End F4 Loop Back Count: 0 #


[editar] Login

É possível o acesso web e o acesso via ssh.


[editar] Acesso Web

Como o acesso web está bem descrito no manual, não há necessidade de o incluir neste artigo.


[editar] Acesso SSH

   couve@server:~$ ssh root@192.168.1.1
   root@192.168.1.1's password:
   DSL Modem CLI
   Copyright (c) 2004 Texas Instruments, Inc.
   cli>


A pass é a mesma do interface web.

Escrevendo shell temos acesso à BusyBox.

   cli> shell
Starting /bin/sh Type exit to return to the CLI

BusyBox v0.61.pre (2005.09.15-07:59+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands.
#


[editar] Troubleshooting

[editar] Sem DNS com o firmware antigo e kernels superiores a 2.4.x, exclusive

Com alguns routers e kernels 2.6 (não sei quanto aos 2.5, mas também não há grande interesse em ter um), não ha redireccionamento dos pedidos DNS do router para o servidor do ISP. É portanto necessário indicar o ip do servidor de DNS e proteger o ficheiro para não ser alterado novamente. Para não ter que alterar sempre à mão fiz um pequeno script para automatizar a coisa.

Para isso basta criar um ficheiro de texto com o nome custom_resolv e escrever lá dentro:

               nameserver 194.65.100.117
               nameserver 192.168.0.1

Depois criar um script como o que se segue (dei-lhe o nome de rede-casa.sh):

               sudo chattr -i /etc/resolv.conf
               sudo cp <CAMINHO_PARA_O_FICHEIRO>/custom_resolv /etc/resolv.conf
               sudo chattr +i /etc/resolv.conf
               sudo dhclient eth0

Ter em conta que se assume como eth0 o interface com o router.

Para poder executar o script mais facilmente basta fazer uma entrada em /usr/bin com o nome rede-casa e o texto (não esquecer o chmod +x):

               #!/bin/bash
               sh /<CAMINHO_PARA_O_FICHEIRO>/rede-casa.sh


[editar] Com o novo firmware o Dial On Demand não funciona (Linux)

Aparentemente só não funciona com o browser, se fizermos um ping ao google, por exemplo, à terceira tentativa já devemos ter ligação.


[editar] Script para reboot

Uma vez que o router costuma bloquear algures entre as 48 horas consecutivas fiz um script para automatizar o reboot do router sem necessidade de alterar o firmware.

Ter em conta que para esta solução ser viável é necessário ter um cliente dentro da rede ligado 24/7.

Primeiro precisamos da package expect. Em Debian basta fazer:

   apt-get install expect

O script em si é muito simples:

   spawn ssh root@192.168.1.1
   expect ": "
   send "PASSWORD_AQUI\r"
   expect "cli> "
   send "shell\r"
   expect "$ "
   send "reboot\r"
   

Depois basta adicionar esta entrada na cron, para ser executado no intervalo de tempo desejado.


[editar] Desenvolver aplicações para ao router

Como já foi dito, este router tem um processador MIPS, assim sendo precisamos de um Cross Compiler e um MIPS toolchain. Pode-se fazer download do Cross Compiler e bibliotecas aqui.


[editar] Hello World

Criamos um ficheiro, por exemplo, com o nome hello_world.c:

   #include
int main(void){ printf("Hello World!\n"); }

Compilamos

   jpoa@vaio:~$ mipsel-uclibc-gcc hello.c -o hello
   hello.c: In function `main':
   hello.c:5: warning: return type of `main' is not `int'

E depois enviamos para o router. Neste caso é feito upload para um site e depois download para o router, uma vez que este já tem o wget. Contudo é preferível utilizar ssh, por uma questão de tempo.

   # cd /var/
   # wget http://student.dei.uc.pt/~jpoa/hello
   hello                100% |********************************************************************************|  9860       00:00 ETA
   # chmod 700 hello
   # ./hello
   Hello World!
   #


[editar] ppp Stats

Podemos também correr algo mais interessante (e útil):

   # wget http://student.dei.uc.pt/~jpoa/pppstats
   pppstats             100% |****************************************************************************| 24716       00:00 ETA
   # chmod 700 pppstats
   # ./pppstats
         IN   PACK VJCOMP  VJUNC  VJERR  |      OUT   PACK VJCOMP  VJUNC NON-VJ
   59710418  44350      0      0      0  |  2639853  28256      0      0  28256
   #

O pppstats tem várias opções:

   Usage: pppstats [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface]


[editar] no-ip.org

Temos ainda um cliente de actualização de ips:

   # wget http://student.dei.uc.pt/~jpoa/noip2
   noip2                100% |*************************************************************************|   125 KB    00:00 ETA
   # chmod 700 noip2
   # ./noip2

Por defeito este cliente escreve a configuração numa localização que não está acessível para escrita no router. Como tal temos de lhe indicar um ficheiro na pasta /var.

   # ./noip2 -C -c /var/noip/noip.conf
Auto configuration for Linux client of no-ip.com.
Multiple network devices have been detected.
Please select the Internet interface from this list.
By typing the number associated with it. 0 br0 1 ppp0 1 Please enter the login/email string for no-ip.com xxxxx.xxxxxx@xxx.xxx Please enter the password for user 'xxxxx.xxxxxx@xxx.xxx' *******
Only one host [xxxxxxxx.no-ip.info] is registered to this account. It will be used. Do you wish to run something at successful update?[N] (y/N) n
New configuration file '/var/noip/noip.conf' created.


[editar] Modificar o Kernel

Este router ganha uns pontos extra por permitir a modificação do firmware e o upload da mesma, adicionando-lhe utilitários que possam vir a ser necessários. A personalização do Kernel em si vai para além dos interesses deste artigo, havendo bastante informação sobre tal na internet.


[editar] Modificar o SquashFS

Compilar e correr programas na RAM tem a sua utilidade, contudo cada vez que o router é desligado esses programas são apagados. É portanto necessário alterar o sistema de ficheiros para incluir as alterações.


[editar] Noções

O sistema de ficheiros de leitura SquashFS está em mtd0 e é montado pelo Kernel no aranque. O ramfs é montado na pasta /var e é onde são armazenados os dados voláteis. O SquashFS faz muito uso de links simbólicos direccionados para /var, links estes iniciados pelo script /etc/rc.d/init.d/rcS.


[editar] Sistema inicial

A Aztech disponibiliza versões actualizadas do firmware, podendo-se fazer download aqui.


[editar] Montar o sistema

Basta criar uma pasta, dar-lhe permissões de escrita

    jpoa@vaio:~$ sudo mkdir /mnt/squash
    Password:
    jpoa@vaio:~$ sudo chmod 777 /mnt/squash/
    jpoa@vaio:~$ sudo mount 66.53.2-002/nsp.annexA.upgrade.img /mnt/squash/ -t squashfs -o loop


[editar] Modificar o sistema e criar o SquashFS

Uma vez que demos permissões de escrita na pasta podemos alterar os ficheiros em /mnt/squash

Depois das alterações efectuadas temos de criar o ficheiro SquashFS:

   jpoa@vaio:~$ mksquashfs /mnt/squash squash_modded.fs
   Creating little endian filesystem on squashrw._modded, block size 32768.

O sistema de upload de firmware vai web interface precisa de um checksum válido adicionado ao final do ficheiro, de modo a ser aceite.

Para adicionar o checksum do novo sistema de ficheiros necessitamos desta package, distribuída sob a licença GPL.

   jpoa@vaio:/mnt/squash$ ./tichksum ../squash_modded.fs
   File doesn't contain the checksum, adding
   Calculated checksum is 38B3FF97
   Added successfully

Depois basta fazer o upload. Ter em conta que (creio eu) fazer upload para um firmware que não o distribuído pela empresa do router invalida a garantia.


[editar] Em caso de acidente

Caso o router não arranque há solução! Com o Servidor de FTP ADAM2 é possível recarregar o firmware. Contudo, caso queira saber em que fase do arranque o router está com problemas pode usar a porta de consola com o ADAM2 Bootloader.


[editar] Imagem do sistema de ficheiros

A imagem do sistema de ficheiros (mtd0) é do formato SquashFS, contendo todos os binários, o interface web, módulos do Kernel, etc. Tem um tamanho máximo de 3392 (0x350000) kilobytes.


[editar] LEDs

[editar] Situação

Pelos vistos, ao contrário de outros routers, este precisa de uma configuração mais precisa de LEDs. Na maior parte dos casos basta enviar o número do led e o número do estado. Com este router é preciso enviar a configração de todos os LEDs. Esta configuração está disponível no ficheiro /etc/led.conf, descrito abaixo.


[editar] Configuração

   # cat /etc/led.conf
   #################################################################
   # Configuration File for AR7WRD board
   ##################################################################
   ##################################################################
   # The GPIO numbers 0 to 31  ==> correspond to GPIO pins  #########
   # The GPIO numbers 32,33 are mapped to ADSL (LED) pins ###########
   ##################################################################
module = pwr # module = {adsl,usb,pppoe,wlan}
state = 1 # 0 = link down, 1 = link up gpio = 7 # gpio number mode = 1 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
#################################################################### module = adsl # module = {adsl,usb,pppoe,wlan} ################################################################## # Note: state 0 for adsl is dummy state and is present only for ## # compatibility with the new LED driver ## ################################################################## state = 0 # 0=dummy, 1=idle, 2=training, 3=sync, 4=activity gpio = 33 # gpio number mode = 0 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 1 # 0=dummy, 1=idle, 2=training, 3=sync, 4=activity gpio = 33 # gpio number mode = 1 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 2 # 0=dummy, 1=idle, 2=training, 3=sync, 4=activity gpio = 33 # gpio number mode = 4 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash param1 = 200 # flash on duration in ms param2 = 200 # flash off duration in ms
state = 3 # 0=dummy, 1=idle, 2=training, 3=sync, 4=activity gpio = 33 # gpio number mode = 0 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 4 # 0=dummy, 1=idle, 2=training, 3=sync, 4=activity gpio = 33 # gpio number mode = 0 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash ######################################################################
module = usb # module = {adsl,usb,pppoe,wlan}
state = 0 # 0 = link down, 1 = link up, 2 = pkt rcv, 3 = pkt xmit gpio = 12 # gpio number mode = 0 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 1 # 0 = link down, 1 = link up, 2 = pkt rcv, 3 = pkt xmit gpio = 12 # gpio number mode = 1 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 2 # 0 = link down, 1 = link up, 2 = pkt rcv, 3 = pkt xmit gpio = 12 # gpio number mode = 2 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash param1 = 100 # blink/flash rate in ms
state = 3 # 0 = link down, 1 = link up, 2 = pkt rcv, 3 = pkt xmit gpio = 12 # gpio number mode = 2 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash param1 = 100 # blink/flash rate in ms
###################################################################### module = pppoe # module = {adsl,usb,pppoe,wlan}
state = 0 # 0 = pppoe down, 1 = pppoe active gpio = 13 # gpio number mode = 0 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 1 # 0 = pppoe down, 1 = pppoe active gpio = 13 # gpio number mode = 1 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
###################################################################### module = cpmac # module = {adsl,usb,pppoe,wlan,cpmac}
state = 0 # 0 = link down, 1 = link up gpio = 15 # gpio number mode = 0 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 1 # 0 = link down, 1 = link up gpio = 15 # gpio number mode = 1 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 6 # 0 = link down, 1 = link up, 6 = pkt rcv, 7 = pkt xmit gpio = 15 # gpio number mode = 2 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash param1 = 100 # blink/flash rate in ms
state = 7 # 0 = link down, 1 = link up, 6 = pkt rcv, 7 = pkt xmit gpio = 15 # gpio number mode = 2 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash param1 = 100 # blink/flash rate in ms
###################################################################### module = wlan # module = {adsl,usb,pppoe,wlan}
state = 0 # 0 = link down, 1 = link up gpio = 6 # gpio number mode = 0 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 1 # 0 = link down, 1 = link up gpio = 6 # gpio number mode = 1 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash
state = 2 # 0 = link down, 1 = link up, 2 = pkt rcv, 3 = pkt xmit gpio = 6 # gpio number mode = 2 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash param1 = 100 # blink/flash rate in ms
state = 3 # 0 = link down, 1 = link up, 2 = pkt rcv, 3 = pkt xmit gpio = 6 # gpio number mode = 2 # 0 = off,1 = on,2 = blinkoff,3 = blinkon, 4 = Flash param1 = 100 # blink/flash rate in ms
#


[editar] Alterar valores

Há um binário na pasta /sbin chamado ledcfg que recebe um ficheiro de configuração e a aplica. Para podermos efectuar alterações é necessário copiar a configuração para /var.

   Ledcfg usage:   ledcfg -f <configuration file path>



[editar] Binários

[editar] Reiniciar

   # reboot


[editar] Restantes binários

Os restantes binários encontram-se nestas pastas:

   # cd /bin/
   # ls
   ash       chown     echo      ln        mv        rm        tar
   busybox   cp        false     login     netstat   sed       touch
   cat       date      grep      ls        ping      sh        true
   chgrp     dd        hostname  mkdir     ps        sleep     umount
   chmod     df        kill      mount     pwd       sync
   #


   # cd /usr/bin/
   # ls
   [              cm_pc          id             test           updatedd
   appwrapper     cmcli          killall        tftp           upgrade
   cm_convert     ddnstask       nslookup       tinyproxy      wget
   cm_klogd       foxy           passwd         tinyproxy-bin  whoami
   cm_logic       free           showroute      tty            yes
   #


   # cd /sbin/
   # ls
   arp       init      ledcfg    msntp     route
   dproxy    insmod    lsmod     reboot    tc
   ifconfig  iptables  modprobe  rmmod     utelnetd
   #


[editar] IpTables

[editar] Listar iptables

   # iptables -L -n


[editar] Lista de comandos

   # iptables -h


[editar] Imagens

Placa do router, vista de baixo, com a Placa MiniPCI ainda no sítio.


Placa do router, vista de baixo, com a Placa MiniPCI (Wireless) fora. É visível o fio da antena, para o encaixe exterior.


Placa do router, vista de cima.


Novamente, a placa do router, vista de cima.

[editar] Links

Aztech

Linux Ethernet Bridging

Toolchains

DHCP Forwarder

dproxy - DNS Caching

IpTables/NetFilter

ATM on Linux

Netkit-routed

net-tools

thttpd

udhcp

utelnetd

zlib

SquashFS

Datasheet do AR7

AR7 Firmware

OpenWrt - AR7 Port

OpenWrt

ADAM2

Artigo da Linux.com sobre OpenWrt

Alguns extras para routers

Ferramentas pessoais