Introduction

I found these at sale about 3 years back and did a quick search about these boxes and it turns out that they are pretty decent hardware. Unfortunately these didn't get too useful as routers shortly after became more powerful and my intention quickly lost focus in favour to the routers. The iConnect was released back in 2000 and recieved updates the following 2 years so the firmware isn't exactly "fresh". I did however setup one as a NAS about 2 years back and it's been doing fine but the software is getting really dated. I did however make short (and cryptic) notes about how to flash this thing using OpenWRT.

Prerequisites

  • USB flash drive (128Mbyte minimum) - FAT16 or FAT32
  • OpenWRT U-Boot and image (openwrt-kirkwood-iconnect-u-boot.kwb , openwrt-kirkwood-iconnect-rootfs.ubifs) - Copied on the flash drive
  • Serial to USB (TTL) adapter, or a native serial port
  • Philips-head screwdriver
  • Terminal app such as PuTTY

Preparations

  • Open the case (one screw under each rubber pad)
  • Gently pry the case open (no tools needed)
  • Connect your serial cable/adapter (115200 baud)
    Pinout: 1 (near the end): VCC, 2 TX (connect RX), 3 GND, 4 RX (connect TX)
  • Copy u-boot and image to the USB flash drive

Installation

  • Enter U-Boot
  • Save the MAC address (ethaddr)
    printenv
U-Boot 2010.09 (Feb 16 2012 - 03:17:03)
Iomega iConnect Wireless

SoC:   Kirkwood 88F6281_A0
DRAM:  256 MiB
NAND:  512 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
Hit any key to stop autoboot:  0
Marvell>> printenv
bootcmd=${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; ${x_bootcmd_usb}; bootm 0x6400000;bootdelay=3 baudrate=115200 x_bootargs=console=ttyS0,115200 mtdparts=orion_nand:1M(u-boot),3M@1M(kernel),32M@4M(rootfs),475M@36M(data)x_bootcmd_kernel=nand read 0x6400000 0x100000 0x300000
x_bootcmd_kernel=nand read 0x6400000 0x100000 0x300000
x_bootcmd_usb=usb start
x_bootargs_root=root=/dev/mtdblock2 rw rootfstype=jffs2
ethact=egiga0
ethaddr=00:D0:B8:0D:FF:FF
filesize=9E0800
stdin=serial
stdout=serial
stderr=serial

Environment size: 481/131068 bytes
  • Start the USB subsystem
    usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1   
USB EHCI 1.00   
scanning bus for devices... 3 USB Device(s) found   
       scanning bus for storage devices... 1 Storage Device(s) found
  • Load U-Boot into memory
    mw 0x0800000 0xffff 0x100000 ; fatload usb 0 0x0800000 openwrt-kirkwood-iconnect-u-boot.kwb
reading openwrt-kirkwood-iconnect-u-boot.kwb
456776 bytes read
  • Delete currently installed U-Boot
    nand erase 0x0 0x100000
NAND erase: device 0 offset 0x0, size 0x100000
Erasing at 0xe0000 -- 100% complete.
OK
  • Write loaded U-Boot
    nand write 0x0800000 0x0 0x100000
NAND write: device 0 offset 0x0, size 0x100000
 1048576 bytes written: OK
  • Restart
    reset

  • Boot into U-Boot again

  • Reset settings to default
    env default -a

## Resetting to default environment
  • Set MAC-address (your own)
    setenv ethaddr 00:D0:B8:0D:FF:FF

  • Save
    saveenv

Saving Environment to NAND...
Erasing NAND...
Erasing at 0xe0000 -- 100% complete.
Writing to NAND... OK
  • Wipe firmware arena
    nand erase 0x200000 0x1fe00000
NAND erase: device 0 offset 0x200000, size 0x1fe00000
Erasing at 0x1ffe0000 -- 100% complete.
OK
  • Create flash UBIFS
    ubi part root ; ubi remove rootfs ; ubi create rootfs
UBI: attaching mtd1 to ubi0
UBI: scanning is finished
UBI: empty MTD device detected
UBI: attached mtd1 (name "mtd=3", size 510 MiB) to ubi0
UBI: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 512
UBI: VID header offset: 512 (aligned 512), data offset: 2048
UBI: good PEBs: 4080, bad PEBs: 0, corrupted PEBs: 0
UBI: user volume: 0, internal volumes: 1, max. volumes count: 128
UBI: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 0
UBI: available PEBs: 3996, total reserved PEBs: 84, PEBs reserved for bad PEB handling: 80
Volume rootfs not found!
No size specified -> Using max size (515579904)
Creating dynamic volume rootfs of size 515579904
  • Start the USB subsystem
    usb start
(Re)start USB...
USB:   Register 10011 NbrPorts 1   
USB EHCI 1.00   
scanning bus for devices... 3 USB Device(s) found   
       scanning bus for storage devices... 1 Storage Device(s) found
  • Load firmware and write to NAND (one line)
    fatload usb 0 0x800000 openwrt-kirkwood-iconnect-rootfs.ubifs ; ubi write 0x800000 rootfs ${filesize}
reading openwrt-kirkwood-iconnect-rootfs.ubifs
22579200 bytes read in 1179 ms (18.3 MiB/s)
22579200 bytes written to volume rootfs
  • Lastly reboot
    reset

All set! Happy hacking