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 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 files/OpenZipitDistro.2.0.tar.bz2

    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 
    -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 (cd /mnt/removable). 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:

    ls /mnt/removable
    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!