This article describes how to install and run Arch on Iomega iConnect.
Author assumes that USB stick will be used for system and external USB Hard Drive will be used for data storage.
You will need access to computer with linux or use OpenWRT which could be installed erlier on iConnect. See my tutorial on OpenWRT page.

1. Preparing USB memory stick.

Fresh installation of ArchARM with updates takes about 600MB.
I would advise to use 2GB memory stick at least, 4GB and more is best option. Size depends on how many additional packages you will install.

1.1 Basic partition configuration for sticks up to 4GB

Remove all partitions and create new Primary, EXT 3 partition.
Use fdisk (commanf line) or GParted (graphical).

If you have old U-Boot it can have problems with booting from EXT 3, change file system to EXT 2 or upgrade U-Boot.
See my tutorial on OpenWRT about Updating U-Boot (you will need serial cable).

1.2 Advanced partition configuration for large memory sticks

On larger memory it is good idea to make three primary partitions for system, home and swap.
In my case I will use 4GB stick with partitions:
- 2,2 GB system partition EXT 4 (boot flag)
- 768 MB /home partition EXT 4
- 768 MB swap partition

1.3 Download system image

Open page: and download ArchLinuxARM-armv5te-latest.tar.gz.
Save it on USB memory system partiiton.

Or use:


1.4 Extract image to memory stick

Extract it:

tar -xzvf ArchLinuxARM-armv5te-*.tar.gz
rm ArchLinuxARM-armv5te-*.tar.gz

2. Setting up iConnect bootloader

2.1 Connecting USB flash

Connect memory stick to USB port on back (this one near to the LAN socket) it has psyhical address 0:1.
If you want to use another USB port see image here for port number.

2.2 Setting up U-Boot env for ArchARM boot only

Connect Serial cable, power up iConnect and press enter key when you will see "Hit any key to stop autoboot:  3"
, then execute:

setenv bootargs console=ttyS0,115200 root=/dev/sda1 rootdelay=10
setenv load_archarm 'usb start;ext2load usb 0:1 0x00800000 /boot/uImage;bootm 0x00800000;'
setenv bootcmd 'run load_archarm'

It will reboot and start loading Arch from USB flash attached to port USB 1.

2.3. Dualboot OpenWRT and ArchARM

To boot OpenWRT or ArchARM depended if USB flash is inserted change env to this:

setenv load_openwrt 'setenv bootargs $(console) $(bootargs_root); nand read $(loadaddr) 0x100000 0x400000; bootm $(loadaddr)'
setenv bootcmd 'run load_archarm;run load_openwrt'

It will work for OpenWRT instalation described by me in OpenWRT Wiki.

Using that you may prepare FailSafe OpenWRT configuration which gives you acces to internet.
Iin case that you mess up ArchARM just remove USB flash and it will boot OpenWRT.

2.4. First boot

U-Boot 2012.10 (Apr 02 2013 - 19:08:46) Iomega iConnect

SoC:   Kirkwood 88F6281_A0
DRAM:  256 MiB
WARNING: Caches not enabled
NAND:  512 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0
(Re)start USB...
USB:   Register 10011 NbrPorts 1
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Loading file "/boot/uImage" from usb device 0:1
2869736 bytes read
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-3.1.10-16-ARCH
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2869672 Bytes = 2.7 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
Using machid 0xb36 from environment

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[   21.722676] sd 0:0:0:0: [sda] No Caching mode page present
[   21.728250] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   21.737673] sd 0:0:0:0: [sda] No Caching mode page present
[   21.743187] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   21.754675] sd 0:0:0:0: [sda] No Caching mode page present
[   21.760192] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   24.191948] EXT4-fs (sda1): couldn't mount as ext3 due to feature incompatibilities
[   24.214563] EXT4-fs (sda1): couldn't mount as ext2 due to feature incompatibilities

Welcome to Arch Linux ARM!

         Expecting device dev-ttyS0.device...
[  OK  ] Listening on Syslog Socket.
[  OK  ] Reached target Remote File Systems.
[  OK  ] Listening on Delayed Shutdown Socket.
[  OK  ] Listening on Device-mapper event daemon FIFOs.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on LVM2 metadata daemon socket.
[  OK  ] Reached target Encrypted Volumes.
[  OK  ] Listening on udev Kernel Socket.
[  OK  ] Listening on udev Control Socket.
[  OK  ] Set up automount Arbitrary Executable File Formats F...utomount Point.
[  OK  ] Reached target Swap.
[  OK  ] Listening on Journal Socket.
         Starting Remount Root and Kernel File Systems...
         Starting Setup Virtual Console...
         Starting Apply Kernel Variables...
         Starting udev Kernel Device Manager...
         Mounting POSIX Message Queue File System...
         Mounting Debug File System...
         Starting udev Coldplug all Devices...
         Starting Journal Service...
[  OK  ] Started Journal Service.
[  OK  ] Reached target Syslog.
         Mounting Temporary Directory...
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started Remount Root and Kernel File Systems.
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Debug File System.
[  OK  ] Mounted Temporary Directory.
[  OK  ] Reached target Local File Systems.
         Starting Recreate Volatile Files and Directories...
         Starting Trigger Flushing of Journal to Persistent Storage...
[  OK  ] Reached target Local File Systems (Pre).
         Starting Load Random Seed...
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Started Recreate Volatile Files and Directories.
[  OK  ] Found device /dev/ttyS0.
[  OK  ] Started Load Random Seed.
[  OK  ] Started Trigger Flushing of Journal to Persistent Storage.
[  OK  ] Started Setup Virtual Console.
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting Netcfg multi-profile daemon...
         Starting SSH Key Generation...
         Starting Periodic Command Scheduler...
[  OK  ] Started Periodic Command Scheduler.
         Starting Login Service...
         Starting D-Bus System Message Bus...
[  OK  ] Started D-Bus System Message Bus.
         Starting System Logger Daemon...
[  OK  ] Started System Logger Daemon.
         Starting Permit User Sessions...
[  OK  ] Started Login Service.
[  OK  ] Started Permit User Sessions.
         Starting Getty on tty1...
[  OK  ] Started Getty on tty1.
         Starting Serial Getty on ttyS0...
[  OK  ] Started Serial Getty on ttyS0.
[  OK  ] Reached target Login Prompts.

Arch Linux 3.1.10-16-ARCH (ttyS0)

alarm login: [  OK  ] Started Netcfg multi-profile daemon.
[  OK  ] Reached target Network.
         Starting OpenNTP Daemon...
[  OK  ] Started SSH Key Generation.
         Starting OpenSSH Daemon...
[  OK  ] Started OpenSSH Daemon.
[  OK  ] Started OpenNTP Daemon.
[  OK  ] Reached target Multi-User.
[  OK  ] Reached target Graphical Interface.

Arch Linux 3.1.10-16-ARCH (ttyS0)

alarm login: root
[root@alarm ~]# 

3. Post instalation procedure

3.1 Log in using SSH

When booted correctly Arch obtains IP address from DHCP server.

SSH server is available on port 22.

login: root
pass: root

use "passwd root" to change default password.

3.1 System update

It is good idea to firstly update system with latest packages, run:

pacman -Syu

and confirm:

Proceed with installation? [Y/n] y

4. Other usefull info

4.1 Software installation


#pacman -S packagename

Packages list is here:

© Paweł Woźniak