OpenWrt Forum Archive

Topic: How to install OpenWRT on a Verizon/Actiontec MI424-WR?

The content of this topic has been archived on 22 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Ladies and gentlemen,

I wish to replace the firmware on my Verizon MI424-WR router so that I may set up some openswan VPN goodness; however, I'm having a bit of trouble figuring out what to do.

The page here [ http://wiki.openwrt.org/toh/actiontec/mi424wr ] indicates that this sucker is easy to brick, and that if I do brick it, I'm going to have a hell of a time recovering it via JTAG because the header's not populated. (No JTAG and no flash-update protection? Some people have absolutely no business playing at being hardware engineers.)

Anyway, since this thing is presently my link to the Internet, I kinda need to make sure that I dot all my Is and cross all my Ts before I start blowing things away.

I have done the following:

1. Downloaded jungo-image.py that is linked to from the wiki page
2. Fixed bug in jungo-image.py that causes the -u option to not be recognized
3. Extracted backup image of flash chip's current contents (I hope)
4. Downloaded rb-mi424wr-ROM.bin (MD5sum 83241fec4aca13518daf1f9cc198ea06)
5. Downloaded rb-mi424wr-RAM.img (MD5sum dc100dc1e035d76baf8c86459dccb05d) so that I have some recourse when^Wif things go awry
6. Installed a TFTP server (TFTPD32)

Here's where I'm stuck.  The wiki says to load these files:
openwrt-mi424wr-zImage
openwrt-mi424wr-squashfs

but it doesn't say where to get them from.  I've searched around and found several forum posts about people who were having problems, but they all started with "I've gotten OpenWRT installed and.." and didn't elaborate on how they managed that part.

I've checked the following places:

backfire/10.03.1-rc4/ixp4xx/
backfire/10.03-rc3/ixp4xx/
snapshots/backfire/10.03.1-RC5-testing/ixp4xx/generic/
snapshots/trunk/ixp4xx/

Do I have to build the firmware myself?

I also have some other questions:

* Are the MD5 sums for my rb-mi424-wr-{ROM.bin,RAM.img} correct?
* 'file' reports rb-mi424-wr-ROM.bin is just 'data', but rb-mi424-wr-RAM.img is an ELF executable. Is this right? Did I pull the wrong files?
* The wiki gives commands that include the text '%{FREEMEMLO}'. This looks like some sort of placeholder.  Am I actually supposed to put that exact string in, or where am I supposed to find the value for FREEMEMLO ?
* For the backout procedure, it tells me to write mi424wr-ROM.bin with a length of 0x40000 (4MB). Is 'mi424wr-ROM.bin' actually supposed to be the flash image I extracted with jungo-image -d? My flash image is of length 0x80000 (8MB). Should I use 4MB or 8MB?

Hi,
I'm having this same issue. I've been successful with dd-wrt however openwrt is new to me. How and where can i create or locate the mi424wr image files located in the wiki.

Thanks,
Turtle


Stevie-O wrote:

Ladies and gentlemen,

I wish to replace the firmware on my Verizon MI424-WR router so that I may set up some openswan VPN goodness; however, I'm having a bit of trouble figuring out what to do.

The page here [ http://wiki.openwrt.org/toh/actiontec/mi424wr ] indicates that this sucker is easy to brick, and that if I do brick it, I'm going to have a hell of a time recovering it via JTAG because the header's not populated. (No JTAG and no flash-update protection? Some people have absolutely no business playing at being hardware engineers.)

Anyway, since this thing is presently my link to the Internet, I kinda need to make sure that I dot all my Is and cross all my Ts before I start blowing things away.

I have done the following:

1. Downloaded jungo-image.py that is linked to from the wiki page
2. Fixed bug in jungo-image.py that causes the -u option to not be recognized
3. Extracted backup image of flash chip's current contents (I hope)
4. Downloaded rb-mi424wr-ROM.bin (MD5sum 83241fec4aca13518daf1f9cc198ea06)
5. Downloaded rb-mi424wr-RAM.img (MD5sum dc100dc1e035d76baf8c86459dccb05d) so that I have some recourse when^Wif things go awry
6. Installed a TFTP server (TFTPD32)

Here's where I'm stuck.  The wiki says to load these files:
openwrt-mi424wr-zImage
openwrt-mi424wr-squashfs

but it doesn't say where to get them from.  I've searched around and found several forum posts about people who were having problems, but they all started with "I've gotten OpenWRT installed and.." and didn't elaborate on how they managed that part.

I've checked the following places:

backfire/10.03.1-rc4/ixp4xx/
backfire/10.03-rc3/ixp4xx/
snapshots/backfire/10.03.1-RC5-testing/ixp4xx/generic/
snapshots/trunk/ixp4xx/

Do I have to build the firmware myself?

I also have some other questions:

* Are the MD5 sums for my rb-mi424-wr-{ROM.bin,RAM.img} correct?
* 'file' reports rb-mi424-wr-ROM.bin is just 'data', but rb-mi424-wr-RAM.img is an ELF executable. Is this right? Did I pull the wrong files?
* The wiki gives commands that include the text '%{FREEMEMLO}'. This looks like some sort of placeholder.  Am I actually supposed to put that exact string in, or where am I supposed to find the value for FREEMEMLO ?
* For the backout procedure, it tells me to write mi424wr-ROM.bin with a length of 0x40000 (4MB). Is 'mi424wr-ROM.bin' actually supposed to be the flash image I extracted with jungo-image -d? My flash image is of length 0x80000 (8MB). Should I use 4MB or 8MB?

Hi Stevie-O and TurtleTech

welcome to openwrt

i was noob here yesterday like you guys but after flashing MI424WR Rev C and MI424WR Rev D with openwrt  compile from scratch. i am feeling great and now i will help you guys to get your router flash with openwrt

first of all you have to tell what Rev your router is ? ( which is located at the bottom of your router, it should says Actiontec MI424WR Rev _ ).  I can help you on Rev C and Rev D only

Hi raceway01,
Thank you for reaching out as I'm struggling with this new journey initially.  I have returned my Rev e for the current one im trying to flash which is rev c.  I've got the pyton script going and am currently in redboot. However my question is:

Can I just use the generic image from ipx4xx?

I just found this information: is this true? 
https://forum.openwrt.org/viewtopic.php?id=28199

How would you proceed? tHANKS.

Hi TurtleTech

you can download 2 file from here  http://downloads.openwrt.org/snapshots/ … uashfs.img
and   http://downloads.openwrt.org/snapshots/ … ric-zImage
once you download it save them in tftp folder 

then  connect your pc to the wan port of the router with pc set at static address 192.168.1.10  and any subnet 255.255.255.0   

run the telnet  type 192.168.1.1 in the bar and set the port 9000

if you get redboot>  then follow this steps

make sure you run tftp server first!
 
1.  fis init

2. fconfig npe_eth0_esa 0x00:0x01:0x02:0x03:0x04:0x05. Use MAC address at the bottom of the unit plus 3. The one printed on the bottom is really for the lan… but we need to tell RedBoot what the WAN port MAC address is. You should probably verify what each MAC address is, and write them down somewhere, before installing OpenWRT.

3. load -r -b %{FREEMEMLO} -h <192.168.1.10> openwrt-mi424wr-generic-zImage

4. fis create linux

5. load -r -b %{FREEMEMLO} -h <192.168.1.10> openwrt-mi424wr-generic-squashfs.img

6. fis create rootfs


In order to autonomously boot to the openwrt kernel just installed, a boot script needs to be added to RedBoot:

1. fconfig -d

2. When prompted with Run script at boot, change the value to      true

3.  Enter the following in the first line of the script enter:      fis load linux

4.  Enter the second line:     exec

5. Hit enter to finish the script with an empty line.

6.  You last entry is the timeout for loading the script. it shouldn't take longer than 1 or 2 seconds.

7.  Keep hitting enter until you get this prompt: Update RedBoot non-volatile configuration - continue (y/n)?

8.  Type     y      and  enter.

9.  Power cycle the router or type reset and switch the wan wire to lan port of the router.

10. open up the telnet and see if you can connect to the router @ 192.168.1.1   if you connect it then try with web browser   http://192.168.1.1  and see if you can see luci gui  ( last time i checked it and luci was not included in the image  see the ticket # 10709)   

I compile my own image for both Rev C and Rev D  so both has luci gui.  if any one need it feel free to request.

Let  me know if you need any thing else or stuck some where

Good luck

(Last edited by raceway01 on 12 Jan 2012, 08:33)

Race, I got it figured and booted up just before i observed this post. However, I'm confident many people will find your post extremely useful.

As a openwrt noob, I assume the snapshots are the absolutely latest builds.  I installed mine with the backfire http://downloads.openwrt.org/backfire/10.03.1/

No gui available so im trying this wiki page.
http://wiki.openwrt.org/doc/howto/luci.essentials

Your guide is spot on other than that. Much better than the wiki that doesnt even mention critically important things like tftp server. Thanks again. Let the journey begin.

What have you all been able to do on the device so far?

For reference here is what it looked like start to finish.   Pretty easy...



RedBoot> fis init
^JAbout to initialize [format] FLASH image system - continue (y/n)? y
^J*** Initialize FLASH Image System
... Unlocking from 0x507e0000-0x507fffff: .
... Erase from 0x507e0000-0x507fffff: .
... Program from 0x01fd0000-0x01ff0000 to 0x507e0000: .
... Locking from 0x507e0000-0x507fffff: .
RedBoot>
^JRedBoot>
^JRedBoot> fconfig npe_eth0_esa *****************
^Jnpe_eth0_esa: Setting to **************************
RedBoot> load -r -b %{FREEMEMLO} -h 192.168.1.8 openwrt-ixp4xx-generic-zImage
^JUsing default protocol (TFTP)
TFTP timed out 1/15
Can't load 'openwrt-ixp4xx-generic-zImage': operation timed out
RedBoot> ^[[A
^Jload -r -b %{FREEMEMLO} -h 192.168.1.8 openwrt-ixp4xx-generic-zImageUsing default protocol (TFTP)
Raw file loaded 0x00021c00-0x000f742b, assumed entry at 0x00021c00
RedBoot> fis create linux
^J... Unlocking from 0x50040000-0x5011ffff: .......
... Erase from 0x50040000-0x5011ffff: .......
... Program from 0x00021c00-0x000f742c to 0x50040000: .......
... Locking from 0x50040000-0x5011ffff: .......
... Unlocking from 0x507e0000-0x507fffff: .
... Erase from 0x507e0000-0x507fffff: .
... Program from 0x01fd0000-0x01ff0000 to 0x507e0000: .
... Locking from 0x507e0000-0x507fffff: .
RedBoot> load -r -b %{FREEMEMLO} -h 192.168.1.8 openwrt-ixp4xx-generic-squashfs.img
^JUsing default protocol (TFTP)
Raw file loaded 0x00021c00-0x001e1bff, assumed entry at 0x00021c00
RedBoot> fis create rootfs
^J... Unlocking from 0x50120000-0x502dffff: ..............
... Erase from 0x50120000-0x502dffff: ..............
... Program from 0x00021c00-0x001e1c00 to 0x50120000: ..............
... Locking from 0x50120000-0x502dffff: ..............
... Unlocking from 0x507e0000-0x507fffff: .
... Erase from 0x507e0000-0x507fffff: .
... Program from 0x01fd0000-0x01ff0000 to 0x507e0000: .
... Locking from 0x507e0000-0x507fffff: .
RedBoot> fconfig -d
^JRun script at boot: false ? true
^JBoot script:
Enter script, terminate with empty line
>> fis load linux
^J>> exec
^J>>
^JBoot script timeout (1000ms resolution): 0 ? 2000
^JUse BOOTP for network configuration: false ?
^JGateway IP address:  ?
^JLocal IP address:  ?
^JLocal IP address mask:  ?
^JDefault server IP address:  ?
^JConsole baud rate: 115200 ?
^JGDB connection port: 9000 ?
^JForce console for special debug messages: false ?
^JNetwork debug at boot time: false ?
^JDefault network device: npe_eth0 ?
^JNetwork hardware address [MAC] for npe_eth0: ******************** ?
^JNetwork hardware address [MAC] for npe_eth1: ********************* ?
^JUpdate RedBoot non-volatile configuration - continue (y/n)? y
^J... Unlocking from 0x507e0000-0x507fffff: .
... Erase from 0x507e0000-0x507fffff: .
... Program from 0x01fd0000-0x01ff0000 to 0x507e0000: .
... Locking from 0x507e0000-0x507fffff: .
RedBoot>

(Last edited by TurtleTech on 12 Jan 2012, 09:12)

raceway can you assist in your uci interface config   Presently I'm unable to establish wan connections to the box. Thanks.

Hi TurtleTech,

on this router i am runing asterisk with google voice   (free baby  free)

I will be happy to help you out.

there are 2 way to do this    1) luci GUI and 2) telnet or SSH

1) if you can access gui than go to network tab > interface  than click add new intreface ( lower left corner) this will bring up  Create Interface at their you can type 

Name of the new interface:   WAN

Protocol of the new interface:   DHCP client

Create a bridge over multiple interfaces:   check

Cover the following interfaces:   Ethernet Adapter: "eth1"  ( if you have Rev C ) (if you have Rev D then choose "eth0")

click on submit

if eveything goes ok then you will see 2 tab under the interface  WAN and LAN 

click on WAN  and you will see 4 tabs   click on Physical settings   and follow this

Bridge interfaces:    "check" creates a bridge over specified interface(s)

Enable STP:        "check" Enables the Spanning Tree Protocol on this bridge

Interface:         "check" Ethernet Adapter: "eth1" (wan) ( if you have Rev C, choose eth0 for Rev D)

last but not least  Save & Apply

wait for router to save and reload the settings.   ( you may have to reboot your cable modem or DSL Modem so they release IP address to the router,  I have to do this all the time when i changed the router)

Good luck

(Last edited by raceway01 on 12 Jan 2012, 17:23)

Confusing!  Someone Make A Video On How To Do This!

TurtleTech wrote:

Race, I got it figured and booted up just before i observed this post. However, I'm confident many people will find your post extremely useful.

As a openwrt noob, I assume the snapshots are the absolutely latest builds.  I installed mine with the backfire http://downloads.openwrt.org/backfire/10.03.1/

No gui available so im trying this wiki page.
http://wiki.openwrt.org/doc/howto/luci.essentials

Your guide is spot on other than that. Much better than the wiki that doesnt even mention critically important things like tftp server. Thanks again. Let the journey begin.

What have you all been able to do on the device so far?

WHAT?  Backfire is just a bunch of directories with crazy letters and numbers.  That's no help.

tynol10 wrote:

WHAT?  Backfire is just a bunch of directories with crazy letters and numbers.  That's no help.

The platform that this router runs on is the ixp425 (see the wiki page), so that would fall under the "ixp4xx_generic", since these routers don't have hard disks (since the other option is ixp4xx_harddisk). So click ixp4xx_generic.

That brings you to another list, which is (mostly) a list of files. Typically, there is one specifically built for each kind of router, but since there isn't, we go with the generic one (openwrt-ixp4xx-generic-squashfs.img and openwrt-ixp4xx-generic-zImage) Click each file on that page to download.

Sorry to raise this from the dead, but I'm having a related problem here - it's an actiontec MI424-WR, revision E, but I'm not even able to get as far as installing RedBoot.  Downgrading to Python 2.6 and enabling telnet on the router fixed some initial problems, but I'm fairly stumped by what remains - running jungo-image.py appears to work up until the actual loading process begins.  That is, I get messages of 'Unlocking flash,' and 'Writing new image.'  But this is where things apparently go wrong, as I notice three issues of concern.

1.  Despite the fact that I specified an IP of 192.168.1.1 for the router, the 'load' command points to 192.168.1.3:23.
2.  The script terminates shortly after, without the 'Flash update complete!' message that it seems like I'm supposed to get if the flash update actually completes.
3.  I'm unable to telnet in to the router afterword on port 9000, either at the 192.168.1.1 address or the 192.168.1.3.

Has me stumped, unfortunately.  Any suggestions would be appreciated.

(Last edited by cyberspyder on 22 Mar 2013, 10:42)

cyberspyder wrote:

Sorry to raise this from the dead, but I'm having a related problem here - it's an actiontec MI424-WR, revision E, but I'm not even able to get as far as installing RedBoot.  Downgrading to Python 2.6 and enabling telnet on the router fixed some initial problems, but I'm fairly stumped by what remains - running jungo-image.py appears to work up until the actual loading process begins.  That is, I get messages of 'Unlocking flash,' and 'Writing new image.'  But this is where things apparently go wrong, as I notice three issues of concern.

1.  Despite the fact that I specified an IP of 192.168.1.1 for the router, the 'load' command points to 192.168.1.3:23.
2.  The script terminates shortly after, without the 'Flash update complete!' message that it seems like I'm supposed to get if the flash update actually completes.
3.  I'm unable to telnet in to the router afterword on port 9000, either at the 192.168.1.1 address or the 192.168.1.3.

Has me stumped, unfortunately.  Any suggestions would be appreciated.


I think the Rev E and F versions have a different chipset.

EDIT:

Seems a more comprehensive source code has been released for these however.

REV.E : http://opensource.actiontec.com/mi424wref.html

REV.F : http://opensource.actiontec.com/mi424wref.html

EDIT2:

The fiber version of these routers (FiOS etc) have their USB ports neutered. Can OpenWRT be configured for access to the following USB FS (unpowered and powered)  FAT32,NTFS,EXT,XFS,HFS,HFS+,BTRFS ?
I ask because it seems these use 1.6+ amps so they would make a great low power wireless USB NAS for unpowered usb drives.

(Last edited by AVN6293 on 22 Aug 2014, 16:03)

There's also a MI424wr rev I, with gigabit ports - it has a red band around it near the LEDs.
Wireless N too..

But this too is unsupported... any idea if it will ever be?

The discussion might have continued from here.