Gateworks Avila GW234x
From DD-WRT Wiki
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.