Gateworks Avila GW234x

From DD-WRT Wiki

Revision as of 10:02, 18 March 2008 by Samueldg (Talk | contribs)
Jump to: navigation, search

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.

Gateworks for this device.

Notes about diferent firmware versions

DDWRT v24 Firmware

DDWRT v24 RC 6.2 (20080102)

Web GUI problems
  • When you change some parameters in Wireless -> Setup Basic page that will change some combo box lists, is not working. You must change the value, save it, apply changes, go to other page, return to Wireless -> Setup Basic page. Reported here: ticket 336
  • Bandwidth monitor not include the wds links status and the wireless graphics are not really real when you have been configure some wds links. Reported here: ticket 353
  • The help is not very usefull with GW234X devices, because many modes and parameters are not explained fine (Wireless modes, Bonding settings, etc.). I think the wiki is a more usefull tool for documentation purposes than the firmware webpage.
  • Wireless status page show WDS links as clients. Perhaps you don't know this info with atheros drivers. Reported here: ticket 352
  • Web upgrade doesn't work. Reported in: ticket 347 There's a workaround: downgrade using RedBoot and try again. But ... why use RedBoot to downgrade? Better upgrade directly!!.
Unclassified problems
  • GW2347 suddenly losses the configuration and the firmware: ticket 366
  • GW234X Loss the LAN MAC address afther erase NVRAM partition: ticket 369

DDWRT v24 pre - RC 7 (20080118)

You can download from here and upgrade using webupgrade.

  • GW234X Web interface goes down saving current configuration: ticket 371

DDWRT V24 pre -RC 7 (20080317)

B.S. sent it to me via e-mail. I supose that he will send to people that need it for testing purposes.

  • Bandwidth monitor don't working fine (perhaps is the scale) ticket 479
  • WDS interfaces naming changed from previous versions. I think is for the reviewer madwifi driver.
  • ScanList channels list added to AP modes too.

DDWRT v24 FINAL

Soon ... I think.

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

Will be usefull you clear the ARP entry for 192.168.3.2:

  $ arp -d 192.168.3.2

And you add the correct MAC for that IP (you gain some milliseconds with this):

  $ arp -s 192.168.3.2 00:D0:12:02:81:48

You must do it when you need to change cable to another GW234X device (for example).

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

This is a snapshot of the process:

  $ 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.220 seconds - enter ^C to abort
  ^C
  RedBoot> load -r -b 0x00800000 zImage
  Using default protocol (TFTP)
  Raw file loaded 0x00800000-0x00976107, assumed entry at 0x00800000
  RedBoot> fis create linux
  An image named 'linux' exists - continue (y/n)? y
  ... Erase from 0x50080000-0x50280000: ................
  ... Program from 0x00800000-0x00976108 at 0x50080000: ............
  ... Unlock from 0x507e0000-0x50800000: .
  ... Erase from 0x507e0000-0x50800000: .
  ... Program from 0x01fe0000-0x02000000 at 0x507e0000: .
  ... Lock from 0x507e0000-0x50800000: .
  RedBoot> load -r -b 0x00800000 root.fs
  Using default protocol (TFTP)
  Raw file loaded 0x00800000-0x00cfafff, assumed entry at 0x00800000
  RedBoot> fis create ramdisk
  An image named 'ramdisk' exists - continue (y/n)? y
  ... Erase from 0x50280000-0x507a0000: .........................................
  ... Program from 0x00800000-0x00cfb000 at 0x50280000: ........................................
  ... Unlock from 0x507e0000-0x50800000: .
  ... Erase from 0x507e0000-0x50800000: .
  ... Program from 0x01fe0000-0x02000000 at 0x507e0000: .
  ... Lock from 0x507e0000-0x50800000: .
  RedBoot>

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.

WiFi Configurations

Wireless modes

AP (Access Point)

The wifi interface is turned into a MASTER mode and synchronizes all wireless clients that connect to it. You need to configure the acces parameters to allow clients to connect (or not) to it. You must configure the ESSID, authentication and cipher parameters.

The wifi interface is bridged to an ethernet interface to allow cable access to the wireless LAN.

Client bridge

The same as AP but the wifi interface is turned into a MANAGED mode and you use the device to connect many computers using LAN to the WIFI LAN.

You must configure the same values in ESSID, auth and cipher to allow connect it to the APs in the wifi LAN.

The WIFI MAC is proxied to allow connect many PCs using only one device to the wifi LAN.

If you use the special ESSID any you will allow to connect to any wireless network that shares the auth and cipher configuration with your device.

Client

Called routed client too.

The wifi interface is turned into a MANAGED mode and will connect to any AP that shares the ESSID, authentication and cipher configuration with it.

The wifi interface has the rol of another ethernet interface and will be used as the WAN port of the router.

AdHoc

Really is a routed adhoc client. The same as client routed but the wifi interface only will connect to another ad-hoc devices that shares the same auth and cipher configuration.

AdHoc bridge

Is not impletented by DD-WRT firmware (and don't know why).

The ideal implementation is to be used as client bridge without ARP PROXY, to allow the point to point links to eat all the band.

Here is some information about this:

http://madwifi.org/wiki/UserDocs/AhdemoInterface

WDS Station and WDS AP

See: http://madwifi.org/wiki/UserDocs/WDSBridge

Please, somebody that really know how to use this two modes with ddwrt, write here. I don't know how to use them because AP could be use to WDS links and WDS links works fine with AP mode.

Drivers Parameters

Important notes

As BrainSlayer remark to me, the madwifi driver inside dd-wrt is not the madwifi-ng.

I remember he had a trunk from an old madwifi driver and began to work into it to make it stable, full featured and usefull from the firmware point of view.

The explanation about the parameters are based on the oficial madwifi documentation and many of them our own experiences configuring and testing GW234X using the diferent parameters.

You are warned about these, is somebody know better than me how each parameter works: please be free in modify this page to put the corrected information.

Antenna Gain

Don't know why you need to use this, but I think that ddwrt atheros driver use it for some type of optimization. Perhaps any developer can explain this better than me (or anybody that know that).

Turbo Mode

You can use a real x2 speed (108Mbps) doubling the needed band in a non standar way.

In this way, only Atheros devices can connect to it using the same operation mode and channel.

When you configure this mode you can see that the channel selection list is not the same as the original one, because the frequency used are in the middle of 2 standar channels.

See: http://madwifi.org/wiki/UserDocs/TurboMode and http://madwifi.org/wiki/UserDocs/802.11a_channels

Notes:

1) When you configure GW234X using this mode, you can't see it using kismet or any other sniffing tool. I don't play with this much time, but I think you can put the kis0 interface in your sniffer machine in this mode and adapt the kismet.conf to allow kismet to see this type of AP's.

2) This is not a standar mode, be warned.

3) Before use it in outdoor links, use kismet with standard channels to have the antennas oriented. First use a standard channel near the "non standard" channel to use kismet (or the tool you use to adjust antenna position): after that, you can enable the turbo mode.

Extended range

Please, sombody that knows what is this, explain here.

Super G Compression

Don't know, but appears to be some special mode when SuperG is enabled.

I think this mode is similar to afterburned in broadcom chipsets, but don't know yet.

Super G Fast Framing

Don't know yet, but appears to be some special mode when SuperG is enabled.

I think this parameter is analogous to frame burst in broadcom devices.

Outdoor Band

The ddwrt atheros driver allow you to select only indoor channels or only outdoor channels with this option.

Appears to be useful when you play with outdoor configurations.

Diversity

Don't know. Appears to be a bit confuse parameter with TX and RX antenna parameters.

Channel Width

I know that with 20Mhz channel bandwidth, the A channels don't overlap, but I don't know why we can change this parameter. Perhaps is anything related to SuperG mode or Turbo modes.

Please, if anybody know why I need to change this parameter, explain here!!

OFDM SIFS Time

Don't know yet. Any physical parameter to adjust the modulated signal.

OFDM Preamble Time

Don't know yet. Any physical parameter to adjust the modulated signal.

Sensitivity Range (ACK Timing)

Adjust this when you have point to point links (WDS) to allow some driver internals optimization.

ScanList

Use to put here, when the channel is in Auto (or the Mode for the device don't set a channel), the list for the channels you want to use for the device.

You have to put here the channels (in MHz) separated with spaces). You can use ranges too.

For example, put your channel en Auto and in ScanList 2437-2447 5180-5200. This will allow your device to hop from channel 4 to 6 and from channel 36 to 40. This is useful en WDS-STA modes, for example, or for AP's.

B.S. notice that is a very usefull parameter when using SuperChannel extension with Atheros interfaces.

For more information about channels and frecuencies take a view into:

SuperChannel extension

Don't confuse with Atheros SuperA/G modes.

SuperChannel increments the number of channels you can use allowing more Bandwidth to be used (not more speed, be care).

In many places there are many wireless AP's working and is a bit difficult to configure a robust wireless link without external interferences, in this links is adecuate to enable this mode that allow you to use more channels to select them.

You must ask about the regulatory domain for your zone to see if you will interfere with any militar reserved frecuency before use any non standard channel.

SuperChannel allows you to use extended channels. In 5 MHz steps you can select any channel from 2.3 - 2.7 GHz and 4.9 - 6.1 GHz.

SuperChannel is compatible with Turbo, allowing you to use Turbo mode on any of these extended channels.

SuperChannel bypass the regulatory domain in all countries, but you still can rerenable regulatory domain.

NOTE: Be warned that the use of many of these aditional channels will break your regulatory domain in your country and if you were discovered perhaps (surely) you will be penalized.

Thanks to BrainSlayer for his explanation and remarks about this extension.

SuperA/G mode

The first aproximation in break the 54Mps restriction in A/G modes with Atheros chipsets where to use a centered channel (channel 6 in G) and a aditional channel to double the speed (doubling the bandwidth without overlaping the channels).

In this mode you only can select the centered channel and the another channel will be selected dynamically. You only can use some channels in this mode, selecting, really, the centered channel.

Supposition: I think that centered channels depend on the regulatory domain selected (it has its logic), but I don't know certainly.

I remember that SuperA/G modes are used principally in AP modes, don't know yet if it can be used in WDS links or not. If anybody know, please, put here.

Turbo mode born to allow the user to sum the bandwidth (and the speed) of the channels used in a bigger channel (has a doubled bandwidth) and select that channel statically, allowing the user to control better the bandwidth.

NOTE: Don't know if ddwrt support this mode, I think this is an obsoleted mode.

Configuration examples

Normal AP WDS configuration between 2 GW2347 and 1 GW2348

This case we'll connect 3 LAN using 2 GW2347 and 1 GW2348 and they will be transparent for the direfent Ethernet subnets.

  GW2347_0 - - - - - GW2348 - - - - - - GW2347_1
     |                 |                   |
    LAN               LAN                 LAN

Because this is a bit extense document (with some screenshots) is writen into this page: Normal AP WDS configuration between 2 GW2347 and 1 GW2348

Standing Network configuration

I put this here to remember things that I want to write (or see writen by somebody).

GW234X interfaces

Here I put the interfaces defined by default in GW234X device when they are booted with a dd-wrt v24 firmware flashed.

GW2347

When you use 1 atheros miniPCI card, the router will configure these physical interfaces:

ixp0: The first ethernet interface.

wifi0: The first Atheros card. This is the real interface and is used for management purposes.

ath0: The first wifi defined interface over wifi0 real interface.

ath0.N: The (N+1)th wifi defined interface over wifi0 real interface.

ath0.wdsN: The (N+1)th WDS link defined virtual interface over ath0 interface.

(obsoleted) wdsath0.N: The (N+1)th WDS link defined virtual interface over ath0 interface.

lo: loopback interface

imq0: Intermediate Queueing Device (see http://www.linuximq.net/). For QoS control purposes (General In).

imq1: Intermediate Queueing Device (see http://www.linuximq.net/). For QoS control purposes (Generao Out).

bond0: The first bonding defined interface.

teql0: Don't know yet.

GW2348-2/4

When you use 2 atheros miniPCI card, the router will configure these physical interfaces:

ixpN: The (N+1)th ethernet interface.

wifiN: The (N+1) Atheros card. This is the real interface and is used for management purposes.

athN: The first wifi defined interface over wifiN real interface.

athN.M: The (M+1)th wifi defined interface over wifiN real interface.

athN.wdsM: The (M+1)th WDS link defined virtual interface over athN interface. (obsoleted) wdsathN.M: The (M+1)th WDS link defined virtual interface over athN interface.

lo: loopback interface

imq0: Intermediate Queueing Device (see http://www.linuximq.net/). For QoS control purposes (General In).

imq1: Intermediate Queueing Device (see http://www.linuximq.net/). For QoS control purposes (Generao Out).

bond0: The first bonding defined interface.

teql0: Don't know yet.

Networking concepts

Routing

Bridges

Bonding

See: http://www.linux-foundation.org/en/Net:Bonding

VLAN

Configuration examples