Best viewed on NetFront (640x480) my Zaurus SL-C3000 and SL-C3100
|
# ipkg update |
You will also find that you will get more success when using the command line ipkg command to install packages rather than the GUI Package Manager.
You can install both OPIE and GPE on different virtual terminals and switch between those two VTs to switch between OPIE and GPE. However, running both environments like this concurrently also uses up more resources. Alternatively, you can also pick one of the two environments to be your main environment and run the other in a shrink down version so you can just run the applications.
Personally, I believe OPIE is more mature than GPE as a windowing environment for the Zaurus, and the configuration items in OPIE also appear to be more relevant for the Zaurus than they are in GPE. Thus it makes more sense to add GPE functionality to OPIE rather than the other way around.
The following will assume that OPIE is installed as the main windowing environment...
Alternatively, you can also use X/Qt under OPIE to run X based applications without the need to switch virtual terminals. This feature would be similar to the X/Qt functionality under Sharp/Cacko. Unfortunately, unlike the X/Qt packages that are for Sharp/Cacko which has dedicated feeds that contain packages with basic default configurations, the X/Qt package under OPIE is a standalone package of the binary without any configuration scripts or whatsoever. In order to make use of it, quite a lot of manual customisation and tweaking is required under OPIE....
Although GPE is quite rudimentary you still might want to run a full X server comparable in features and usability to pdaXrom. Using the Hentges GPE image would be a good start. It is much more usable than the standard GPE install. However, there is still a need for a considerate amount of customisation effort to be put into it....
There are several essential customisations in order to get OZ working properly.
The default OZ install only has a few timezones predefined. If your timezone is not one of them, then you need to first install a package for your timezone and then configure it. My timezone package that I needed to add was: timezones-australia. Once you installed the timezone package, do the following according to your timezone:
# ln -s /usr/share/zoneinfo/Australia/Sydney /etc/localtime |
The above is for the Australia/Sydney timezone. Substitute that part with the appropriate entry for you. Additionally, you also need to add export TZ=Australia/Sydney (substitute with appropriate value) to hwclock.sh under /etc/init.d
You also need to modify locale.conf and change the timezone entry for OPIE.
The default keymapping is defined in /etc/keymap-2.6.map
You can customise this file to remap certain keys. The most common change is to exchange , with / which is done by modifying keycode 51, ie:
keycode 51 = slash comma |
The ` key (grave) seems to be missing. I have assigned it to Fn + q:
altgr keycode 16 = grave |
Also since on Sharp/Cacko ROM a common mapping for { and } is Fn + o and Fn + p, I have added mappings to mimick those familiar key mappings:
altgr keycode 24 = braceright altgr keycode 25 = braceleft |
Since Fn + d shows a . (dot) on the physical keyboard but nothing is mapped for it, I added a mapping:
altgr keycode 32 = period |
I also remapped Fn + k back to the yen character since that is what is shown on the physical keyboard:
altgr keycode 37 = yen |
Keymappings common to both GPE and OPIE need to be done in keymap-2.6.map, however, there are also keymappings specific for GPE and OPIE respectively which need to be configured separately. The GPE version of Hentges has fluxbox which uses /home/zaurus/.fluxbox/keys
The default window manager in GPE is matchbox which runs all applications in maximised mode. In order to switch between several applications easily, it is a good idea to install the tasks applet and add it to the taskbar at the bottom of the screen.
It is also a good idea to install the cards applet as well, so you get to control the SD and CF cards.
matchbox also supports screen rotation, however, it is misconfigured in GPE. In order to fix it, add --no-flip to the matchbox-panel command in the matchbox session file:
matchbox-panel --orientation south --no-flip & |
OPIE is similar to the Sharp distro/Cacko and a lot of the customisations for those can also be applied to OPIE since it is also based on Qtopia but is a newer version (version 2.3 vs version 1.5) and open source.
Unfortunately, the cardmon applet in OPIE is broken. It allows you to unmount the internal MicroDrive and does not show the SD card. To fix this, uninstall or disable the pcmcia applet and install the cardmon applet from the 3.5.4 feed instead of the 3.5.4.1 feed.
You also need to install volumeapplet in order to be able to turn on/off keyboard clicks just like in Sharp/Cacko.
OpenZaurus has a lot of packages in its official feed, however, it does not have everything pre-installed so many packages need to be manually installed once OZ has been installed. The following are the recommended ones that I added straight away:
The following are applications that I really need to get working. These either don't exist in OpenZaurus yet, or are out of date and/or need fixing:
OpenZaurus can also run some packages from other distros. This depends on the dependencies of those packages. For example, OPIE can run some of the Sharp/Cacko binaries because they are also based on Qt/E. OPIE is based on a newer version of Qt/E than Cacko and Sharp ROM and can run quite a few of those applications using compat libraries. However, some Sharp/Cacko applications depend on proprietary non-opensource libraries which cannot be run on OPIE. Opera for example can be run on OPIE.
Some pdaXrom packages can also be run on GPE since both are based on X11 and GTK+. However, pdaXrom also has many applications that use other display widgets such as QT or fltk which GPE does not have by default. Also, pdaXrom packages before beta4 depend on a separate iconv library which is not part of glibc. Packages compiled after beta4 no longer have this dependency just like OZ packages and also use a similar kernel as well and thus should be even more compatible.
Nevertheless, I have tried a few pdaXrom beta1 packages on OZ and they work fine. So instead of trying to build useful packages that don't exist in OZ, I just installed the pdaXrom package on OZ instead. The following are some of the packages that just work:
Similarly, debian arm packages (PocketWorkstation) can also be installed on OZ. The .deb file can be easily converted to .ipk files. In fact, the OZ .ipk format is almost identical to the .deb format.
The virtual USB network interface via the USB client cable does not currently work with Windows. It does however work with Linux. This is just standard ifconfig and route stuff once you have loaded the gadget module. You will need to load it manually after plugging in the USB cable. Don't expect it to be loaded automatically like in Sharp/Cacko or pdaXrom.
Just plug the CF WiFi card in and provided it is supported, the appropriate drivers will be loaded for it and you can configure your network using the network applet. This is straightforward stuff if you know how to setup a network.
Just plug the CF Bluetooth card in and provided it is supported, the appropriate drivers will be loaded for it and you can setup PAN or GPRS with the applet. Make sure you don't forget to set your PIN.
Using a USB Ethernet adaptor you can connect to an ethernet network. Usually, those adaptors use a rtl8150 or pegasus chip so installing the appropriate kernel module will enable the adaptor as eth0 once plugged in. The rest is standard ifconfig and route stuff.
You can share the files on your Zaurus via Samba. Just install the samba packages and configure smb.conf. Furthermore, you can also get a remote terminal into the Zaurus via ssh and transfer files via scp. OZ by default uses dropbear instead of the more common sshd.
Configuring VNC allows you to remotely control other machines or allow other machines control your Zaurus.
You can plug in external USB keyboard and USB mouse if you have a USB host cable. Using a USB hub, you can have multiple USB devices connected concurrently. The USB keyboard should be correctly mapped and just work. The USB mouse might be a bit more problematic since it might fight for control with the stylus.
Support for displaying and inputting Chinese and Japanese is possible. You will need to install unicode fonts with the extended character set that supports the extra Chinese and Japanese characters. Additionally, an input server such as SCIM and inputmethod plugins also need to be compiled and installed...
Backups are always important for recovery in case something goes wrong or accidental deletions. However, doing a NAND backup on any of the C3x00 series models in OZ 3.5.4.1 is useless since it does not even use the NAND flash area. The backup application provided by OZ only backs up the PIM data which is a good thing but not sufficient. A gzipped tarball of everything seems to be the only solution at the moment.
OZ is able to facilitate booting of different media through the use of altboot. With the addition of kexec to altboot, it is even able to boot another kernel. Using these features you can boot different versions of OZ or even other distros from SD or CF cards.
Altboot allows you to boot straight off an ext2 filesystem from a physical media such as an inserted CF or SD card, or mount an ext2 loop back filesystem from either CF or SD card as well. I have enhanced the altboot config and menu to also allow you to boot off ext2 loop back images from the internal MicroDrive located on /hdd3 partition. In order to do that, place the loop back images under /media/hdd/boot-images and add 30-bootHDD to /etc/altboot-menu and update altboot.conf and altboot.func.
If you want to disable the altboot menu from being shown several times, then disable altboot on the ext2 loop image. This prevents altboot to be run a second time during bootup once you have selected which image to boot.
A native on-board gcc compiler can be used to develop and compile applications directly on the Zaurus. Although this is not as fast as developing on a PC, it is quite useful when you are using your Zaurus as a laptop replacement and want to build your own apps without access to a PC running Linux.
To install gcc so you can develop X applications, do the following from a terminal:
# ipkg -nodeps install make diffutils pkgconfig # ipkg install gcc-symlinks g++-symlinks binutils-symlinks libc6-dev gtk+-dev ncurses-dev libpng-dev libjpeg-dev libungif-dev libx11-dev libxpm-dev libxft-dev libxrender-dev libxt-dev xproto-dev libz-dev |
Alternatively, I have also created a cramfs image containing a ready made gcc bundle similar to the pdaXrom native gcc image. The native gcc packages for OpenZaurus are based on gcc 3.4.4 and glibc 2.3. I have created an image zgcc-344.cramfs which was build using the armv5te packages from the 3.5.4.1 feed. The following packages are a minimum set that is required to compile C/C++ code and build simple packages:
With this mimimal set of packages, I can compile simple C/C++ programs. I have build a cramfs image (zgcc-344.cramfs) which includes many more development packages and tools for easy compilation of X11 applications similar to what the pdaXrom zgcc image offers. See packages.txt for a list of packages included in this cramfs image.
In addition to installing the packages, I also had to add a few symbolic links as well as apply some changes in the directory structure as well as some configuration changes. All the required changes have been captured in mkzgcc.sh.
To use the cramfs image, mount it under /mnt/zgcc and run the zgcc-setup script to create the necessary links. Finally, source zgcc-env and you are ready to compile.
# mount -o loop zgcc-344.cramfs /mnt/zgcc # /mnt/zgcc/zgcc-setup # . /mnt/zgcc/zgcc-env |
To compile a little test application using the C compiler (gcc), create a file called hello.c with the following content:
#include <stdio.h> int main() { printf("Hello World for C compiler\n"); } |
Then run the following command which will generate an executable called hello.
# gcc -o hello hello.c |
To compile a little test application using the C++ compiler (g++), create a file called hello.cpp with the following content:
#include <iostream> using namespace std; int main() { cout << "Hello World for C++ compiler\n"; } |
Then run the following command which will generate an executable called hello++.
# g++ -o hello++ hello.cpp |
To compile source packages, first download and extract the source tarball. Then do the following (for example grisbi):
# bzip2 -dc grisbi-0.5.9.tar.bz2 | tar xvf - # cd grisbi-0.5.9 # ./configure # ./make # ./make install |
A java compatible environment exists on the Zaurus via the use of jamvm and classpath as an alternate JVM and jikes as a compiler.
To install java so you can run and compile java applications, do the following from a terminal:
# ipkg install classpath # ipkg -nodeps install libffi3 jamvm jikes |
Back to Main Page
DISCLAIMER: The information contained on this site is provided AS IS. No assurance is given to the accuracy of the information or instructions provided. You may use this as a guide but do not blame me if anything bad happens to your system or your data. Use anything described on this site at your own risk. I shall not be made responsible for anything you do.