Hacking Debian onto the Zipit Z2 Wireless Messenger


I'd like to thank Hunter Davis and Aliosa27 who literally did all the work to make this stuff. I'm just reproducing sections of it as a sort of clearer guide, and for my own reference.


 This guide is basically hacked together from hunterdavis.com, from the varous coment threads and instructions that have been posted there, the files hosted by aliosa27 which I've mirrored here to not waste his bandwidth, and some photos/screenshots that I've taken on my own.


About This Guide

About This Guide

Specifications

Setup
    Windows
    Linux

Installation
    Windows
    Linux

Mouse Emulation
    z2mouse-option

ScreenShots

Files

Other Links

This guide is intended to step through the process of putting a barebones debian installation onto the Zipit Z2 Wireless Messenger, and implementing various hacks and drivers to emulate the functionality of a small computer, on what is essentially a toy for tweens.

There are multiple ways to do this, and there are multiple variants which will yield different results. This page is designed specifically to set up Debian, with a disk image on the MiniSD card that will allow both Windows and Linux computers to drop files into what is essentially the "hard drive" of the device.

Once the installation is complete, you may choose to install optional mouse drivers for the directional pad, and a keymap to emulate the functionality of a more complex keyboard. You will also be able to use apt to download packages from the debian repositories. Instructions on how to do so appear underneath the basic install instructions.

I am not a programmer. I am a nerd who likes to tinker with things. While I have gone through these steps myself and have tried to make sure that the steps are accurate and clear, we are still hacking a device to to something it is not intended to do, and I take no responsibility for you bricking your Zipit or encountering an unresolvable issue with the installation process.

 

The ZipIt's Specifications

Processor

  • Marvell XScale PXA270 ~312 Mhz

Flash Memory

  • 8MB

System Memory

  • 32MB SDRAM

Audio

  • Wilson Micro WM8751 Audio CODEC

  • Digital volume control

  • Headphone output

  • Speaker output

802.11g Wireless

  • Marvell 88W8686 Rev. B2 Wi-Fi “B/G” Solution

  • Supports receive antenna diversity

  • Supports Power Management

Battery

  • Internal rechargeable battery based on Li-Ion Polymer with at least 1000 mAH (min)

  • Connector on battery

LCD Display

  • 320 x 240 TFT LCD

  • Transmissive Display

  • Dot pitch: .18h x .18v

  • 256K Colors

  • Min 2.8” diagonal

  • LED Backlight

  • 200nit Backlight

Keyboard

  • Full backlit QWERTY design

  • Zipit Layout

  • PolyMetal Dome

  • Tactile Feel

Internal Connectors

  • Keyboard

  • LCD

The Setup

Using a Windows Computer for preparation.

To begin, you'll need the following items:

  1. A Windows Computer
  2. A miniSD card or microSD with adapter
  3. A way to connect the SD card to your Windows Computer
  4. A Zipit Z2 Messenger
  5. The Internet!

You're going to need to download several files:

  1. Either the 1gb or 2gb disk image from sourceforge (Created by Aliosa27)
  2. Aliosa27’s latest oe userland image
  3. Aliosa27's keymap.map file and z2mouse-option file (Optional: For mouse emulation)
  4. phsydiskwrite  Either version, though the GUI version is easier to use.
  5. The autoflasher script
  6. Windows ext2 filesystem driver (If you can't see fat partition from Windows)

Using a Linux Computer for preparation.

You will need:

  1. Your zipit z2
  2. A linux computer with an internet connection to download files and gparted installed.
  3. A miniSD card, or microSD in a miniSD adapter.

You will need to download these files:

  1. Either the 1gb or 2gb disk image from sourceforge (Created by Aliosa27)
  2. Aliosa27’s latest oe userland image
  3. Aliosa27's keymap.map file and z2mouse-option file (Optional: For mouse emulation)
  4. The autoflasher script

 

The Installation

 

Using a Windows Computer to set up the Zipit

  1. First, flash the zipit. Extract the autoflasher bundle to a fat16 formatted memory card
  2. Open Aliosa27’s wireless+x+audio.tar.gz file, and copy out the /boot/linux-2.6.29 file to your memory card
  3. Rename this file kernel.bin
  4. Boot the zipit with the SD card inserted. If this does not start the linux flash, go to settings->reset to default and it should soft-reset
  5. Some SD cards are reported to not work, or not always be seen by the zipit. Try both with and without the power cable plugged in
  6. The z2 will boot linux and copy the wifi firmware to the sd card before flashing linux to the Z2.
  7. Copy off the 2 wireless firmware files gspsi.bin and gpspsi_helper.bin to a folder, you will copy these back to the memory card after we write the image
  8. IMPORTANT — rename helper_gspi.bin to be gspi8686_hlp.bin or it will not load later!
  9. Extract the 1/2gb image to a folder
  10. Extract phsydiskwrite to a folder
  11. Insert your microSD card into the computer (adapter, usb stick, etc)
  12. Run phsygui.exe from within the folder you extracted psydiskwrite to (requires .net framework)
  13. right-click on the drive letter for your SD card, select the first menu item, and then select the 1/2gb image you extracted earlier (.img)
  14. After it writes, safely remove the disk then plug it back in. if windows can see the fat partition copy the firmware files to it
  15. If windows cannot see this fat partition, dowload the ext2 filesystem driver, run it, then copy the firmware files over to /lib/firmware/notlibertas/ (yes notlibertas, the fat filesystem is mounted as /lib/firmware/libertas so you can’t use that)
  16. Insert the sd card into the Z2, and boot. Login as root, password debian. Congrats! You’ve got debian on the zipit!
  17. If windows couldn’t see your fat32 partition, copy the firmware files from /lib/firmware/notlibertas to /lib/firmware/libertas. You may need to run fsck if linux can’t see the files.
  18. Reboot, and you should have wireless device when you type iwconfig. Configure the wireless settings, and you’re ready.

 

Using a Linux Computer to set up the Zipit

  1. First, flash the zipit. Extract the autoflasher bundle to a fat16 formatted memory card
  2. Extract Aliosa27’s wireless+x+audio.tar.gz file, and copy out the /boot/linux-2.6.29 file to your memory card
  3. Rename this file kernel.bin
  4. Boot the zipit with the SD card inserted. If this does not start the linux flash, go to settings->reset to default and it should soft-reset
  5. Some SD cards are reported to not work, or not always be seen by the zipit. Try both with and without the power cable plugged in
  6. The z2 will boot linux and copy the wifi firmware to the sd card before flashing linux to the Z2.
  7. Remove the MiniSD card and connect it to your computer.
  8. Copy off the 2 wireless firmware files gspsi.bin and gpspsi_helper.bin to a folder, you will copy these back to the memory card after we write the image
  9. Rename rename helper_gspi.bin to be gspi8686_hlp.bin
  10. Extract either the 1gb or 2gb disk image from sourceforge, you will end up with an .img file.
  11. Write that .img file to the MiniSD with "dd if=/<folder>/<filename>.dd of=/dev/<deviceid>
  12. Copy the two wireless firmware files gspsi.bin and gspi8686_hlp.bin to /lib/firmware/notlibertas
  13. Remove the MiniSD from the computer and insert into the Z2, then boot the Z2, the OpenZipit logo should appear, followed by a login prompt.
  14. Login: root      Password: debian
  15. Copy the firmware files gspsi.bin and gspi8686_hlp.bin from /lib/firmware/notlibertas to /lib/firmware/libertas, ane make them excecutable.
  16. Reboot the device and login, wireless should be working, use iwconfig to connect to an access point.

 

Mouse Emulation

To get the directional pad working as a mouse, you'll need to download one of the mouse drivers from the files section

z2mouse-option

This driver works with the keymap.map file to make the directional pad act as a mouse, and the upper row of keyboard keys act as function keys when the Options button at the top of the keypad is pressed.

To install:

  1. Download the driver z2mouse-option and the keymap keymap.map to the device
  2. place z2mouse-option in /bin and chmod 777 it.
  3. place keymap.map in /etc, if there is a file there named keymap.map already, back it up before doing this.
  4. edit "~/.fluxbox/startup" and add "/bin/z2mouse-option &" in the startup section
  5. edit "/usr/bin/startfluxbox" and add "/bin/z2mouse-option &" in the startup section
  6. reboot the device and startx, wait until the desktop has loaded fully then hit the option key to toggle the mouse on/off

 

 


 

Screenshots/Videos


A cleared screen taking a framebuffer screenshot.


output of iwconfig after placing wireless firmware in libertas


Installing and then using fbgrab to take framebuffer screens


output of fdisk -l


links2 viewing google.com from CLI


output for pinging google.com


viewing reddit.com from CLI with Links2


Fluxbox desktop after startup.
 


The fluxbox menu in action using z2mouse-option


using dillo to view google.com from flux


using dillo to view reddit.com from flux


Another shot of reddit.com.

 


 

Files

1 and 2 GB Debian Image Files for the MiniSD - Choose One.

 1gb or 2gb

Other files

    Description Aliosa27's Files Quantum Lime Mirror Filesize
  Debian-Z2.tgz Coming Soon 118M
  debianz2.gz Coming Soon 118M
  keymap Coming Soon 14K
 This is the keymap file you will need to key the keyboard working properly with the mouse driver. Not Active keymap.map  4.3K
The mouse driver that is toggled on by the option Key z2mouse-option z2mouse-option  11K
 This is the userland image zipit2-audio+x+mouse.gz Coming Soon  40M

 

 


 

Links to Zipit Z2 Linux sites

http://linux.zipitwireless.com/

http://www.openzipit.org/

http://www.zipitwireless.com/default.aspx?skinid=1

http://hunterdavis.com/archives/227


 

Comments

27 comments posted
needed moderator or someone with alot of experience

i need help with this could i give you my email or should i just post problems here?

Posted by Anonymous on Tue, 08/24/2010 - 00:00
.rar file passwords

Both the 1 GB and 2 GB images are password protected in their respective .rar images. What is the password for extracting these files, and why was a password put on these files in the first place???

Posted by Anonymous on Tue, 07/20/2010 - 15:20
I screwed up and deleted the wireless files from the Zipit

Anyone have these backed up? I've been looking and looking online. Can someone help me out? Please? Thanks.

Posted by Anonymous on Thu, 04/08/2010 - 23:23
SD 8GB

I make two parition on the 8gb SD card and use this files from this site

http://zipit.rootnexus.org/files/Z2-USERLAND/RC1-PRE2/1gb-image/

Create Partitions:
Partition 1: MUST BE EXT3
Partition 2: MUST BE SWAP

Create Filesystems:
# mkfs.ext3 /dev/deviceid1
# mkswap /dev/deviceid2

Mounting using the offset method
offset should be 1536 on the original image for scratch
# mount -o loop,ro,offset=1536 image.img /path/to/mount/to

Copying files:
You want to make sure you preserve the file permissions and links: '
**cp -RvPp' will do just that.

# cp -RvPp /path/to/mounted/image/. /path/to/mounted/sd/card/partition/1.ext3

Posted by Anonymous on Wed, 03/24/2010 - 00:39
I guess I'm missing something...

In step 2 you say to extract "Aliosa27’s wireless+x+audio.tar.gz" yet at no time do you actually link to that file or anything like it. In fact that's the first mention of anything like that. I thought perhaps this just meant the zipit2-audio+x+mouse.gz file which I do have. But there's no /boot/ folder in that archive just the one file that's the same name as the archive (without the .gz part). So what am I missing? Where is this apparently vital file? I'm even looking on http://aliosa27.net/projects/zipit2/ (presumably aliosa27's official site) and still not seeing any reference to this file. So someone...help...please?

Posted by Anonymous on Tue, 03/02/2010 - 23:59
Zipit Distro

Checkout the latest thread over at http://hunterdavis.com/archives/440
Coming a LONG way in useability

Posted by Anonymous on Thu, 02/04/2010 - 00:32
can someone help me im stupid

when i put the sd card in my computer and try to make another folder in the firmware folder so i can put the wifi drivers on it says i dont have the correct permissions or something like that

Posted by Anonymous on Thu, 01/28/2010 - 18:07
Easier Dillo Mod

The file .dillorc in your home directory (~ or /root in Debian) stores the configurable User Agent string... mod that with a text editor to the mobile browser string of your choosing. Enjoy.

Posted by Anonymous on Sat, 01/23/2010 - 03:19
Need help with few steps

Hi,

As one user already commented, we cannot find the file listed in Step 2 --
"2. Open Aliosa27’s wireless+x+audio.tar.gz file, and copy out the /boot/linux-2.6.29 file to your memory card "

One thing is I can't find the .gz file being referenced here.
I got the file one user had posted the link to. But it does not have the "/boot/linux-2.6.29" file.

Another step is -
"8. Copy off the 2 wireless firmware files gspsi.bin and gpspsi_helper.bin to a folder, you will copy these back to the memory card after we write the image"

Is the file name "gpspsi_helper.bin " a typo and the correct name listed in the step #9 ?

Cheers

Posted by Anonymous on Thu, 01/14/2010 - 01:26
Found it

Okay I found it here under openzipit -> 2.6.29+Userland-r1:
http://sourceforge.net/projects/openzipit/files/

Posted by Anonymous on Sat, 01/09/2010 - 13:45
wireless+x+audio.tar.gz

Maybe I'm totally stupid but where can I find the wireless+x+audio.tar.gz file which contain the linux-2.6.29 file?

Posted by Anonymous on Wed, 01/06/2010 - 09:41
4GB

I use 4GB no problem at all but you have to format Fat32 above 2GB

Posted by Anonymous on Sat, 01/02/2010 - 12:00
Dillo modification for somewhat easier web-access

This will spoof your user agent and tell sites like google, ebay, facebook, myspace; that you are running a very pathetic and weak mobile browser like MSIE! (which you basically are).
This in turn will redirect you to the mobile versions of their sites automatically.

Hopefully this will also tell websites what screen resolution you are using and provide some sort of other layout changes based on that.

Download dillo from source and recompile.
#edit http.c
1 nano -w src/IO/http.c

# There are 2 References to User-Agent
2 put a // infront of both lines containig User-Agent

3 Directly below each line that you just commented out with the // put the following string on one line:
"User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; IM-REALLY-Dillo-Linux/ZipitZ2-ARM-Debian; Windows CE; PPC; 240x320; MOBILE;)/%s\r\n"

#https support do ./confiure-enable-ssl
4 ./configure ; make ; make install ; dillo

Posted by Anonymous on Thu, 12/31/2009 - 11:43
Linux zipit + 4Gb on ebay

Hi,
I am selling one of my debian linux zipit Z2 + 4Gb on ebay if someone is interested:

http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=110475621694

Cheers,
rsalazar333

Posted by Anonymous on Wed, 12/30/2009 - 19:30
fennec mobile browser...or dillo xhtml

Hi.
I ordered one of these units specifically for making a very inexpensive version of word processing pc, light browser system and maybe a little bit of NES gaming.

Has anyone attempted using fennec from the arm deb repositories on this unit? Or maybe modifying dillo to send xhtml compliant user agent and strings to the sites it accesses?

Posted by Anonymous on Wed, 12/30/2009 - 05:48
SDs

To answer a question someone else brought up...

I tried flashing the zipit with a 8GB and a 4GB microSD but it did not work, even if I repartitioned and formatted to Fat16. It did however work with a 2GB MicroSD into a miniSD adapter, formatted Fat16.

Posted by Anonymous on Mon, 12/28/2009 - 02:50
404s

I've relinked the files that got moved, and mirrored the keymap.map file that was taken down, as well as the mouse option driver.

All of Aliosa27's current drivers are available here:

http://aliosa27.net/projects/zipit2/

Thanks for the comment. =)

Posted by reddyenumber4 on Sat, 12/19/2009 - 22:22
404

A lot of the Aliosa links have 404'd, the keymap.map, z2mouse-option, etc.

Does anyone have a mirror for them?

Posted by Anonymous on Sat, 12/19/2009 - 00:26
RE:Internet

Thats what I do and it associates just fine but it can't interact with any outside computers i.e. google and what not, but I can ping other computers on my network just fine.

Strangely enough dhcpcd and udhcpc weren't on the build of debian that I got, I just downloaded udhcpc and dhcpcd and I'm gonna give those a try and see how it goes...so far it looks like its gonna be difficult.

Thanks for the quick response :)

Posted by Anonymous on Fri, 12/18/2009 - 08:05
Internet

Generally after I start up the device, I use:

iwconfig wlan0 essid <APNAME>

dhcpcd wlan0

At which point everything works.

Did you use dhcpcd to finish connecting to your wireless access point?

Posted by reddyenumber4 on Thu, 12/17/2009 - 15:36
No internet

Thanks for the guide :)

I've been having one problem though, after I associate with my AP I can interact with the computers on my network but when it comes to pinging google or any other website or ip address it immediately throws up a host not found error. Any ideas if its a router problem or a zipit problem?

Posted by Anonymous on Thu, 12/17/2009 - 08:21
re: Image & SD sizes

I believe the images are designed to be written to the SDcard such that there is a certain amount of free space allocated, so use the image size that corresponds to the size of your card. There should be no difference between the actual files included on the two images. I've been busy with exams the last few weeks, so it's been a while, but I remember wondering that and checking it out, and I'm 95% sure that's the case.

As far as I know, the two largest MiniSD sizes are 1gb and 2gb. This is NOT the same as MicroSD, which I think currently goes up to 16gb.

I've heard rumor from comments on Hunter Davis' site that you might be able to use a MicroSD card in a MicroSD to MiniSD adapter, but I cannot verify that personally. If you can't find any resources that verify this, I'd err on the side of caution and stick to a 2gb MiniSD.

Cheers,

-Red

 

Posted by reddyenumber4 on Tue, 12/08/2009 - 17:48
Image & SD sizes?

Thanx for the guide. I'll be picking up a few of these zipits soon. However, I have two questions?

First, what is the difference between the 1GB and the 2GB Debian images? Are there more packages installed on the 2GB image?

Second, can you use a larger miniSD card?

Posted by Anonymous on Tue, 12/08/2009 - 11:48
Hrm

Not sure about how you'd go about a serial connection there, but thanks should definitely go to Hunter Davis who figured this stuff out in the first place.

Cheers!

Posted by reddyenumber4 on Wed, 12/02/2009 - 23:47
zipit rs232?

Love the hack. Thanks for posting it.

I plug into a lot of devices thru a direct connect (com port) rs-232 terminal type interface. Usually using Putty over serial or even the dreaded HyperTerminal.

I can't help but wonder if there is some way to hack this to work with a serial connection. Either thru a device connected to the SD port or even better to a wireless com port. It would be awesome to plug into these panels by just connecting some small wireless rs232 device and then just opening up the Zipit. ;-)

Anyway, good work.

Posted by Anonymous on Wed, 12/02/2009 - 14:59
mouse repeat

Anyone able to get mouse repeat working so that we can play side scrollers?

Posted by Anonymous on Thu, 11/19/2009 - 17:24
fluxbox

thanks for the clear instructions and the work all you did so far!!!

one way of controlling the fluxbox:
OpenZipIt:~# cat .fluxbox/apps
[app] (name=dillo) (class=Dillo)
[Dimensions] {320 240}
[end]
[app] (name=scummvm) (class=scummvm)
[Close] {yes}
[end]

Posted by Anonymous on Sun, 11/15/2009 - 17:41

Post new comment

Mollom CAPTCHA (play audio CAPTCHA)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.