Actiontec MI424WR

From DD-WRT Wiki

Revision as of 22:30, 9 February 2011 by SMC (Talk | contribs)
Jump to: navigation, search

Contents


THX to Jose Vasconcellos from OpenWRT for the instructions

Flashing

Flashing the Actiontec MI424WR (oem'ed to Verizon )

Notes

  • Coax is not supported. And will be non functional.
  • Rev A units Wireless is unsupported read the MI424 thread here for info on radio replacements
  • Rev C & D wireless is fully functional.

Installing Redboot

Since the stock ROM will not allow us to upload the DD-WRT directly, using Python, we overwrite the ROM with Redboot which in turn allows us to flash the ROM manually.

  1. One If not already installed on your machine download and install Python. (Windows: http://python.org/ftp/python/2.6.2/python-2.6.2.msi)
  2. Two
  3. Three
  4. Four

Be sure to have the latest firmware installed.
Reset the device to defaults.

Since the device has the Jungo loader installed by default we have to change it to Redboot to get DD-WRT up and running. But keep cool its easy to handle as you will see below.

You will need a lil .py script that will do the backup of the orig flash content and flash the new redboot. A backup of this script can be found here: Jungo-image.jpg (You will have to rename it to jungo-image.py!).

The 2nd thing that is needed is the Redboot itself. The latest version can be downloaded here: MI424WR Redboot . You should verify what each MAC address for WAN/LAN is, and write them down somewhere, before installing DD-WRT. The MAC address for the wireless card should be on a sticker on the bottom, and the WAN and LAN are probably 3 hex numbers away if you neglect to do this beforehand.

From here it is partially taken from the OpenWRT Wiki:
Installation of RedBoot can be accomplished with the jungo-image.py script. The script uses the telnet interface into the router to accomplish it's task. Depending on the version of the firmware (Original Rev.A at least), telnet may have to be manually enabled in the advanced tab under local administration.

The standard password for the Verizon software is: admin/password. If that fails a common alternate is: admin/password1, or whatever you may have changed it to. Note that on July 27th 2010 Verizon sent email notice to customers whose active FiOS routers had a "default" password that the password was being changed to be more secure and they remotely altered the password to match the router serial number.

The script will first make a backup of the current flash image; this procedure takes about 4 minutes. Use -h to get help on all the options. If there's some failure, the only recourse is to install a JTAG header and restore the firmware via JTAG; so, use at your own risk! BE WARNED: Presently there is no known method for using JTAG on a Revision D, because the header was removed in that revision.

For Windows: You will need to download and install python located here http://python.org/ftp/python/2.6.2/python-2.6.2.msi (for windows) and enter then at the DOS command line you will enter the info below. You may need to put your files in the install directory of python (ex. c:\python26)

Note: Windows 7 users must enable telnet under Control Panel -> Programs -> Turn Windows features on or off Current secondary telnet port is 8083 for Rev C/D and you may have to edit the Jungo-image.py script to reflect port 8083.

For Linux: You may have to install Python from your respective distribution's repository if you do not have it, but so long as you can point to the redboot image you should be able to have the files anywhere.

Basic Usage:

  • Help: python jungo-image.py -h
  • Backup existing image: python jungo-image.py -d -p <password> <router ip address>

*Write new redboot: python jungo-image.py -p <password> <router ip address> <redboot file>

Configure MAC addresses (initial setup only)

  • fconfig npe_eth0_esa 0x00:0x01:0x02:0x03:0x04:0x05 (The "0x" tell's the redboot that its hex code.). Use the MAC address at the bottom of the unit plus 3. The one printed on the bottom is for the lan, but we need to tell RedBoot what the WAN port MAC address is.
  • fconfig npe_eth1_esa 0x00:0x01:0x02:0x03:0x04:0x05 tells Redboot the LAN mac. Now you can use the MAC printed on the bottom label.
  • All ALPHA characters in your mac address must be entered in lower case.
  • If you forgot to write down the mac address for the WAN port, you can get it by looking at your arp table. It's "arp -a" in windows, look for 192.168.1.1.

Upgrade RedBoot (Optional)

With this guide you can upgrade your RedBoot if there is a newer version available.

  • Plug your LAN cable into the WAN port.
  • Connect to the RedBoot.
  • Check the correct RedBoot length and base address with
fis list
  • Load the RedBoot ram file to the device
load -r -b %{FREEMEMLO} mi424.ram
  • Execute the RedBoot with
go
  • Load the new RedBoot rom file to the device
load -r -b %{FREEMEMLO} mi424.rom
  • Unlock the flash partition (set -l the length and -f the base address of the RedBoot part)
fis unlock -f 0x50000000 -l 0x00060000
  • Write the new RedBoot (set -l the length and -f the base address of the RedBoot part)
fis write -b %{FREEMEMLO} -f 0x50000000 -l 0x00060000
  • Powercycle your device
  • Do

Format FLASH image system

RedBoot> fis init -f
About to initialize [format] FLASH image system - continue (y/n)? y

      • Initialize FLASH Image System

... Erase from 0x50040000-0x507dffff: Err = a2

initialization failed 0x50040000: Error trying to erase
... Unlocking from 0x507e0000-0x507fffff: .
... Erase from 0x507e0000-0x507fffff: .
... Program from 0x01fd0000-0x01ff0000 to 0x507e0000: .
... Locking from 0x507e0000-0x507fffff: .

Installing DD-WRT

The RedBoot prompt is accessible via telnet 192.168.1.1 9000 on the Wan port. The Wan port is configured to obtain an address via DHCP; if this fails it defaults to 192.168.1.1. Note that there's a feature that allows skipping the RedBoot boot script by pressing the "Reset" button after power on for about 10 seconds. When RedBoot is ready to accept commands, it sets the Internet LED red. After establishing a telnet session to RedBoot, the flash must be initialized and configured:

Note: Client may not receive DHCP address and must be manually fixed to IP address (example: 192.168.1.100)

  • Initialize flash: fis init


Flashing/recovery

Install and configure your favorite TFTP server to serve the dd-wrt image as linux.bin Load linux.bin into memory:

load -r -b 0x800000 -h <hostip> linux.bin

At this point, you should see the file transfer taking place, if it times out, check your TFTP server configuration and try again. Do not proceed past this point until you've successfully loaded the image to the router.

  • Write linux.bin to flash:
fis create linux 

This may take a while, be patient. Proceed to the next step when you get the redboot prompt back.

Configure Redboot

In order to autonomously boot to the DD-WRT kernel you just installed, you need to add a boot script to RedBoot:

Open RedBoot's configuration:

fconfig -d
  • When prompted with Run script at boot, change the value to true
  • Enter the following in the first line of the script enter: fis load linux
  • Enter the second line: exec
  • Hit enter to finish the script with an empty line.
  • Change the timeout setting for loading the script to about 5 sec.
  • Keep hitting enter until you get this prompt: Update RedBoot non-volatile configuration - continue (y/n)?.
  • Type y and enter.
  • Power cycle the router and dd-wrt should boot.

Rev D Configure Wan Port Select

As the Lan & Wan ports assignments are reversed on Rev D you need to Log into DD-WRT. Go to Setup, submenu Networking, Port setup, and change the Wan port assignment to ixp1 for your wan connection to function

Escape from booting

Redboot build < 02/2009

Since u cant set the timeout setting in the redboot.conf (its hardcoded!) you can escape from the booting process:

  • you'll see a red LED when redboot is waiting for input
  • then press the reset button for > 10 sec

Hardware Specs

Hardware

  • CPU: Intel IXP 425, 533MHz
  • Flash: Rev A: Numonyx JS28F640J3D-75, 8MB; Rev C: Intel JS28F640J3D75
  • RAM: Rev A: 2x Hynix HY57V281620ETP-H, 2x 16MB; Rev C: 2x Samsung K4S281632I-UC75, 2x 16MB
  • Switch: Micrel KSZ8995MA, 5 Port Fast Ehternet
  • WAN PHY: Micrel KZ8721BL (rev A) or KSZ8721BL (rev C)

Differences

  • different housing
  • Rev A: Ralink RA2560 b/g Wifi (Unsupported, see thread about replacement)
  • Rev C: Atheros b/g Wifi
  • Rev D: Atheros b/g Wifi but Lan Wan ports reversed (to correct use port select in DD-WRT)

Power supply

  • Input 5V/3A (Voltage regulator LTC3736 (http:// pdf1.alldatasheet.com/datasheet-pdf/view/87091/LINER/LTC3736.html) accepts up to 9,8V input voltage)

Serial port

pin | function
 1  | Gnd
 2  | TX
 3  | RX
 4  | -
 5  | Power
 6  | -

Pics

Rev. A & C

Front

Image:Mi424_rev_c_pcb_front.jpg

Back

Image:Mi424_rev_c_pcb_back.jpg

Rev. D

TAG Image:MI424-WR_REV.D_TAG.jpg

FRONT Image:MI424-WR_REV.D_FRONT.jpg

BACK Image:MI424-WR_REV.D_BACK.jpg

External Links

http://nuwiki.openwrt.org/oldwiki/openwrtdocs/hardware/actiontec/mi424_wr?s[]=mi424
http://opensource.actiontec.com/index.html
http://www.mail-archive.com/openwrt-devel@lists.openwrt.org/msg01967.html