This is it!
Yeah, this is what I had in mind when I started tinkering with
the Zipit: a portable, battery operated, device, which could
run some serious Linux stuff. And, not cost me a lot to get
more of them put together.
By removing the restrictions of the ROM file system puny size,
and moving it onto the SD card, this makes the Zipit a serious
little Linux machine. Add to that mixture, the OpenEmbedded
tool for building an embedded distro, this frees the Zipit from
the limitations it had.
OpenZipit is a fully featured wireless client, sorry, no GUI, but
there is a wealth of text console apps that will run on the Zipit.
TopSome of the packages
Here is a list of the major packages in OpenZipit:
pine - email client which does either POP3 or IMAP protocols.
links - an ssl enabled html browser, yes, you can login to secure sites with it.
irssi - an IRC client, similar to xchat, but without the GUI.
openssh - you already know what ssh is...
openvpn - a secure IP tunneling package, I use it to connect to my home computer with the Zipit.
sysvinit - runlevels, you can 'halt' and the Zipit will power off, or, 'reboot'.
cron - scheduler for events per date / time / day of week / etc..
minicom - a serial terminal emulator.
perl - when all else fails, there is always a script...
bash - a real console shell instead of the ash shell of busybox.
console-tools - showkeys, loadkeys and dumpkeys to assist in (re)mapping the keyboard.
madplay, sox, aumix - to play MP3 files (11025 Hz does not skip).
A larger list of the more interesting executables (incomplete listing of all):
addgroup adduser ar ash awk basename batlvl bunzip2 busybox
bzcat cat chattr chgrp chmod chown chroot chvt clear cp
cpio cron crontab cut date dc dd deallocvt delgroup deluser
depmod depmod.24 df diff dirname disable-paste dmesg du
dumpkmap dumpleases e2fsck echo egrep env expr false fbgetty
fbset fdisk fgrep file find free fsck fsck.ext2 fsck.ext3
fsck.minix fuser fuser.psmisc getty gpm gpm-root grep gunzip
gzip halt halt.sysvinit head hexdump hltest hostname hwclock
id ifconfig ifdown ifup init init.sysvinit insmod ip ipkg
ipkg-cl irssi iwconfig iwgetid iwlist iwpriv iwspy kill killall
killall5 klogd last lastb last.sysvinit lcd ldconfig less
links ln loadfont loadkmap logger login logname logread losetup
ls lsmod mailutil makedevs md5sum mesg mesg.sysvinit mev
mkdir mke2fs mkfifo mkfs.ext2 mkfs.ext3 mkfs.minix mknod mkswap
mktemp mlock modprobe more mount mountpoint mouse-test mv
nc netstat nslookup ntpd od openvpn openvt passwd patch perl
perl5.8.7 pico pidof pidof.sysvinit pilot pine ping ping6
pivot_root poweroff printf ps pwd rdate readlink realpath reboot
reboot.sysvinit renice reset rm rmdir rmmod route runlevel
run-parts scp scp.openssh sed seq setconsole setserial sh
shutdown shutdown.sysvinit sleep slogin sort ssh sshd ssh-keygen
ssh.openssh start-stop-daemon strings stty su sulogin swapoff
swapon sync sysctl syslogd tail tar tee telinit tellVT telnet
test tftp tickadj time tinylogin top touch tput tr traceroute
true tset tty udhcpc udhcpd umount uname uniq unzip
update-alternatives update-inetd update-modules update-passwd
update-rc.d uptime usleep utmpdump vi vlock wall wall.sysvinit
watch wc wget which who whoami xargs yes zcat zipit_utils
TopBefore you get started...
This is the second of the linux distributions that are openzipit.org
has available for the Zipit. This distribution uses the Flash
memory of the Zipit to hold the bootloader, splashscreen and
kernel. All other files are kept on the SD (MMC) card. The
kernel is loaded into RAM by the bootloader, then is launched,
the kernel then boots from the SD card.
To use this distribution, you will have to had to install a serial
port on the Zipit and an SD card. Effectively, you need something
like the Addon Board
. You can still use this distro if you have built
your own 5wire mod and added your own SD card
In addition the serial port and SD card, you will need a Linux host
to put the installation software on and to make the filesystem of
the SD card. Nothing fancy, any old Linux machine should do.
Oh, and, you need one of those multi-memory card (camera flash readers)
installed, and working, on that Linux machine. I use a cheap
"Apacer Mega Steno" model MGA20 that I picked up from the net as
a $14 closeout. You probably can use any cheap card reader, most
of this type of stuff is now working on Linux.
TopGet the files and unpack them
There is one tarball that has all the files that you need.
Make a directory to work from (e.g. mkdir ~/OpenZipit), then
download the tarball, move it into that directory, and unpack it with tar jxf
You should see something like the following files:
-rw-rw-rw- 1 tom tom 1440 Apr 2 03:32 bootstrap.bin
-rw-r--r-- 1 tom tom 10442042 Apr 2 02:39 bootzipit-image-zipit.rootfs.tar.gz
-rwxr-xr-x 1 tom tom 303 Apr 2 02:34 buildSplash.sh
-rwxr-xr-x 1 tom tom 19492 Apr 2 02:34 FiveWireLoader
-rw-r--r-- 1 tom tom 1267849 Apr 2 02:11 Image
-rwxr-xr-x 1 tom tom 8849 Apr 2 02:34 Raster2Xpm
-rw-r--r-- 1 tom tom 852 Apr 2 03:32 README.loader
-rw-r--r-- 1 tom tom 509 Apr 2 02:34 README.splash
-rw-rw-rw- 1 tom tom 38400 Apr 2 03:32 splash.bin
-rw-rw-rw- 1 tom tom 2048 Apr 2 03:32 utils.bin
-rwxr-xr-x 1 tom tom 10200 Apr 2 02:34 Xpm2Raster
TopPut OpenZipit filesystem onto SD card
(A detailed step-by-step of this section is here)
Using fdisk, delete the current FAT16 partition from the SD card, then create
a linux partition (type 83). Once the linux partition has been created, put
an ext3 filesystem on the card with mke2fs -j /dev/sdX1
Now, mount the new filesytem so that files can be copied onto it
(mount -t ext3 /dev/sdX1 /mnt/removable
WARNING! It has been reported to me that the Zipit MMC driver has
problems booting from a partition of more than 1024 cylinders. Maybe make two
partitions, the first only 128Meg and the other partition being
the remainder of the card?
Now, as root, cd into the directory where you mounted the SD card
). Unpack the tarball onto the SD
card with tar zxf /home/tom/OpenZipit/bootstrap-image-zipit.rootfs.tar.gz
Your directory of the SD card should now look like this:
bin/ dev/ home/ media/ proc/ sys/ usr/
boot/ etc/ lib/ mnt/ sbin/ tmp/ var/
Unmount the drive now and it is ready to use (cd / ; umount /mnt/removable
TopInstall the new kernel
There is a new strategy to how the kernel boots. This kernel will mount the
SD card, then do its boot from the files on the SD card. The Flash memory
only holds the bootstrap loader and a Linux kernel. There is no ROM file
system in the Flash. This not only gives us more room for "stuff", but
allows for more flexibility for customizing things.
Run the FiveWireLoader from the directory you unpacked the tarball and
give it the device name of the serial port connected to the Zipit. For
example, I have the Zipit attache to /dev/ttyS1, so I would run the
command of: ./FiveWireLoader /dev/ttyS1
You will be asked to short DBG to GND and then power up the Zipit. Once
powered up, with a steady GREEN LED, press the ENTER
on the keyboard. The program will then transfer a small utility into
the Zipit and present you with the menu as shown:
ZipIt OPERATIONS MENU -- Choose the operation(s)
0 - upload everything & burn 'bootstrap.bin, splash.bin, Image'
1 - upload system loader: 'bootstrap.bin' (64KB max)
2 - upload kernel image: 'Image' (1920KB max)
3 - upload bootsplash image: 'splash.bin' (38400 bytes max)
4 - burn uploaded files into the ZipIt Flash memory.
G - grab rom image from Zipit into: 'zipit-image.rom'
R - upload, but not burn, rom image: 'wholeThing.rom' (2MB max)
q - quit
Choose '0' to upload it all and program the Flash. That's it! After the
programming is finished, enjoy your new Zipit!