Gateworks Avila GW234x

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 22:42, 14 January 2008 (edit)
Samueldg (Talk | contribs)
(RedBoot commands summary)
← Previous diff
Revision as of 22:52, 14 January 2008 (edit) (undo)
Samueldg (Talk | contribs)
(=Commands summary)
Next diff →
Line 90: Line 90:
==RedBoot== ==RedBoot==
-===Commands summary==+===Commands summary===
 +====General====
Here is it: Here is it:
RedBoot> help RedBoot> help
Line 147: Line 148:
Display (hex dump) a range of memory Display (hex dump) a range of memory
x -b <location> [-l <length>] [-s] [-1|2|4] x -b <location> [-l <length>] [-s] [-1|2|4]
 +====fis====
 + RedBoot> fis
 + *** invalid 'fis' command: too few arguments
 + Usage:
 + fis create -b <mem_base> -l <image_length> [-s <data_length>]
 + [-f <flash_addr>] [-e <entry_point>] [-r <ram_addr>] [-n] <name>
 + fis delete name
 + fis erase -f <flash_addr> -l <length>
 + fis free
 + fis init [-f]
 + fis list [-d]
 + fis load [-b <memory_load_address>] [-c] name
 + fis lock [-f <flash_addr> -l <length>] [name]
 + fis unlock [-f <flash_addr> -l <length>] [name]
 + fis write -f <flash_addr> -b <mem_base> -l <image_length>
===Basic procedures=== ===Basic procedures===
====Install dd-wrt firmware==== ====Install dd-wrt firmware====
 +See: [[Installation#Gateworks_Avila_Network_Processor_GW2348|Intall into GW2348]]
 +I'll not repeat the good explanation there.
====Upgrade dd-wrt firmware==== ====Upgrade dd-wrt firmware====
Brainslayer explain to me the upgrade method very basically and it works very fine: Brainslayer explain to me the upgrade method very basically and it works very fine:
Line 156: Line 174:
load -r -b 0x00800000 root.fs load -r -b 0x00800000 root.fs
fis create ramdisk fis create ramdisk
 +====Unbreak dd-wrt firmware====
 +Mmmm, the reason why I wrote this section.
 +
 +Sometimes, detected playing with v24 RC 6.2 and perhaps is a bug inside this version and not in the release, when you SAVE and APLY under certain circunstances in the webpage, your GW234X finish to response to you and goes into a '''reboot and try to load''' cicles.
 +
 +Fine, the solution I found is to erase the NVRAM:
 +
 +1) Access to RedBoot.
 +
 +2) Type:
 + RedBoot> fis list
 + Name FLASH addr Mem addr Length Entry point
 + RedBoot 0x50000000 0x50000000 0x00080000 0x00000000
 + linux 0x50080000 0x00800000 0x00200000 0x00800000
 + ramdisk 0x50280000 0x00800000 0x00520000 0x00800000
 + mampf 0x507A0000 0x507A0000 0x00020000 0x00800000
 + nvram '''0x507C0000''' 0x507C0000 '''0x00020000''' 0x00800000
 + FIS directory 0x507E0000 0x507E0000 0x0001F000 0x00000000
 + RedBoot config 0x507FF000 0x507FF000 0x00001000 0x00000000
 +3) See where are your '''nvram''' and what is the size of it.
 +
 +4) Erase it:
 + RedBoot> fis erase -f 0x507C0000 -l 0x00020000
 + ... Erase from 0x507c0000-0x507e0000: .
 +5) Plug-off and plug-on your GW234X. It will answer your questions.

Revision as of 22:52, 14 January 2008

Contents

Avila Gateworks

Thanks to

Brainslayer (Sebastian) to all the help send to me (and the patient he has) to explain many things about this topic (and others).

All developer team for this great firmware.

Avila for this device.

Prerequisites

RedHat 5 or similar

I'm using CentOS 5 to write this.

I have been installed minicom, tftp-server and telnet packages (and their dependences) previously and copied zImage and root.fs to /tftpboot/.

Then I configure /etc/xinetd.d/tftp file as this:

  $ cat /etc/xinetd.d/tftp
  # default: off
  # description: The tftp server serves files using the trivial file transfer \
  #       protocol.  The tftp protocol is often used to boot diskless \
  #       workstations, download configuration files to network-aware printers, \
  #       and to start the installation process for some operating systems.
  service tftp
  {
          socket_type             = dgram
          protocol                = udp
          wait                    = yes
          user                    = root
          server                  = /usr/sbin/in.tftpd
          server_args             = -s /tftpboot
          disable                 = no
          per_source              = 11
          cps                     = 100 2
          flags                   = IPv4
  }

And verified that xinetd daemon is runing after the configuration:

  $ service xinetd restart
  Parando xinetd:                                            [  OK  ]
  Iniciando xinetd:                                          [  OK  ]
  $ service xinetd status
  Se está ejecutando xinetd (pid 10353)...

Windows

See: Intall into GW2348

Accesing via telnet

By default you can access the device using a serial port cable (not null-modem) or using telnet.

Using TELNET

1) Configure your ethernet to have the 192.168.3.1/24 ip address

  $ ip addr add 192.168.3.1/24 brd 192.168.3.255 dev eth0 label eth0:3

Where eth0 is your ethernet interface and eth0:3 is the alias (used if you have more than one IP assigned to the interface).

If you have an address assigned to the 192.168.3.0/24 subnetwork, delete it previously:

  $ ip addr del 192.168.3.1/24 brd 192.168.3.255 dev eth0 label eth0:3

2) Open a terminal window (a window better than a tab in some terminals programs) and send a ping to the GW234X.

  $ ping 192.168.3.2
  PING 192.168.3.2 (192.168.3.2) 56(84) bytes of data.

3) Open a new terminal window and prepare to do the telnet to the GW234X. Very important is that you don't hit RETURN yet.

  $ telnet 192.168.3.2 9000

Where 192.168.3.2 is the default GW234X ip for access RedBoot and 9000 is the default port where RedBoot has a telnet daemon listening.

4) Go to the TELNET terminal and prepare de RETURN key and the CTRL+C combination.

5) Take in view the 2 terminal windows to see when the GW234X is answering the pings and plug-off/plug-on the power to the GW234X.

6) When the ping has the first answer pres RETURN and very quickly the CTRL+C keys.

7) If you were lucked, you can see the RedBoot Prompt:

  $ telnet 192.168.3.2 9000
  Trying 192.168.3.2...
  Connected to 192.168.3.2 (192.168.3.2).
  Escape character is '^]'.
  == Executing boot script in 2.490 seconds - enter ^C to abort
  ^C
  RedBoot> 

8) If you were too slow hitting CTRL+C or hitting RETURN you will not have the RedBoot prompt and will need to go to step 3.

Using MINICOM

1) Configure MINICOM with the default values: 115200,8,N,1 without hardware/software flow control.

2) Save configuration (usefull to not reconfigure the access next time).

3) Connect a serial cable (DB9 MALE to DB9 FEMALE) from your PC to the GW234X.

4) Plug-off and plug-on the power to the GW234X.

5) Remember that you will need to hit CTRL+C keys, but now you, really, not need to do it quickly.

6) Play with RedBoot.

RedBoot

Commands summary

General

Here is it:

  RedBoot> help
  Manage aliases kept in FLASH memory
     alias name [value]
  Set/Query the system console baud rate
     baudrate [-b <rate>]
  Manage machine caches
     cache [ON | OFF]
  Display/switch console channel
     channel [-1|<channel number>]
  Compute a 32bit checksum [POSIX algorithm] for a range of memory
     cksum -b <location> -l <length>
  Display disks/partitions.
     disks 
  Display (hex dump) a range of memory
     dump -b <location> [-l <length>] [-s] [-1|2|4]
  Execute an image - with MMU off
     exec [-w timeout] [-b <load addr> [-l <length>]]
          [-r <ramdisk addr> [-s <ramdisk length>]]
          [-c "kernel command line"] [<entry_point>]
  Manage FLASH images
     fis {cmds}
  Manage configuration kept in FLASH memory
     fconfig [-i] [-l] [-n] [-f] [-d] | [-d] nickname [value]
  Execute code at a location
     go [-w <timeout>] [-c] [-n] [entry]
  Help about help?
     help [<topic>]
  Display command history
     history 
  Set/change IP addresses
     ip_address [-l <local_ip_address>[/<mask_len>]] [-h <server_address>]
  Load a file
     load [-r] [-v] [-d] [-h <host>] [-p <TCP port>][-m <varies>] [-c <channel_number>] 
          [-b <base_address>] <file_name>
  Dump information on PCI devices
     lspci 
  Compare two blocks of memory
     mcmp -s <location> -d <location> -l <length> [-1|-2|-4]
  Copy memory from one address to another
     mcopy -s <location> -d <location> -l <length> [-1|-2|-4]
  Fill a block of memory with a pattern
     mfill -b <location> -l <length> -p <pattern> [-1|-2|-4]
  Network connectivity test
     ping [-v] [-n <count>] [-l <length>] [-t <timeout>] [-r <rate>]
          [-i <IP_addr>] -h <IP_addr>
  Reset the system
     reset 
  Set/Read MAC address for NPE ethernet ports
     set_npe_mac [-p <portnum>] [xx:xx:xx:xx:xx:xx]
  Swap bytes in 16-bit or 32-bit words in a block of memory
     swab -b <location> -l <length> [-2|-4]
  Display RedBoot version information
     version 
  Display (hex dump) a range of memory
     x -b <location> [-l <length>] [-s] [-1|2|4]

fis

  RedBoot> fis
  *** invalid 'fis' command: too few arguments
  Usage:
    fis create -b <mem_base> -l <image_length> [-s <data_length>]
        [-f <flash_addr>] [-e <entry_point>] [-r <ram_addr>] [-n] <name>
    fis delete name
    fis erase -f <flash_addr> -l <length>
    fis free 
    fis init [-f]
    fis list [-d]
    fis load [-b <memory_load_address>] [-c] name
    fis lock [-f <flash_addr> -l <length>] [name]
    fis unlock [-f <flash_addr> -l <length>] [name]
    fis write -f <flash_addr> -b <mem_base> -l <image_length>

Basic procedures

Install dd-wrt firmware

See: Intall into GW2348 I'll not repeat the good explanation there.

Upgrade dd-wrt firmware

Brainslayer explain to me the upgrade method very basically and it works very fine:

  load -r -b 0x00800000 zImage
  fis create linux
  load -r -b 0x00800000 root.fs
  fis create ramdisk

Unbreak dd-wrt firmware

Mmmm, the reason why I wrote this section.

Sometimes, detected playing with v24 RC 6.2 and perhaps is a bug inside this version and not in the release, when you SAVE and APLY under certain circunstances in the webpage, your GW234X finish to response to you and goes into a reboot and try to load cicles.

Fine, the solution I found is to erase the NVRAM:

1) Access to RedBoot.

2) Type:

  RedBoot> fis list
  Name              FLASH addr  Mem addr    Length      Entry point
  RedBoot           0x50000000  0x50000000  0x00080000  0x00000000
  linux             0x50080000  0x00800000  0x00200000  0x00800000
  ramdisk           0x50280000  0x00800000  0x00520000  0x00800000
  mampf             0x507A0000  0x507A0000  0x00020000  0x00800000
  nvram             0x507C0000  0x507C0000  0x00020000  0x00800000
  FIS directory     0x507E0000  0x507E0000  0x0001F000  0x00000000
  RedBoot config    0x507FF000  0x507FF000  0x00001000  0x00000000

3) See where are your nvram and what is the size of it.

4) Erase it:

  RedBoot> fis erase -f 0x507C0000 -l 0x00020000
  ... Erase from 0x507c0000-0x507e0000: .

5) Plug-off and plug-on your GW234X. It will answer your questions.