|
Best viewed on NetFront (640x480) my Zaurus SL-C3000 and SL-C3100
|
|
# ipkg install ipkfile # ipkg remove ipkfile |
The advantage of the ipkg tool that it can be used to script a batch of applications, such as all your favourite fonts, or all your security tools. It also shows you detailed error messages if something goes wrong unlike the qinstall tool which just reports an error but nothing else useful.
However, the ipkg tool does not generate the required links for you if you want to install to SD or CF card. Qinstall (the GUI Package Installer) does that for you during the installation if you select either SD or CF for the destination location. You will need to run ipkg-link after installing to SD or Cf card in order to relink the applications you install with ipkg. However, ipkg-link does not get shipped with the C3000 nor the C3100 by default. I have included ipkg-link in my ipktools package.
By default, the package installer expects package files to be located under /hdd3/Documents/Install_Files, /mnt/card/Documents/Install_Files and /mnt/cf/Documents/Install_Files. ipkg exspects all the packages to be in the same directory. Additional sources and package feeds can be configured by modifying /etc/ipkg.conf and adding source location like the following example:
|
src zug http://www.zaurususergroup.org/feed/ |
I have created a script called xipk (part of my ipktools package) which allows you to install packages to virtually any location you like. This allows you to install packages to /hdd3 where the bulk of the MicroDrive's space is instead of the default main memory which is /hdd2 on a C3000 and /home on a C3100. However, not all applications can be installed to /hdd3 because it is by default formatted as a FAT filesystem and can't handle symbolic links. If you reformat it as ext2 or ext3, then you won't have that problem (see later sections on /home and loopback filesystems).
Some application that you install will be in Japanese. Have a look at the Localisation section to see if you can change it to English. Try the langswitch tool, which can fix it for you in most cases.
Also, if the application was written for an older Zauri model, then you need to change the application's default screen orientation. See the Screen Orientation section on how to do this.
Connect the Zaurus via USB (make sure to plug the USB cable into the PC first, then the Zaurus). Copy the terminal ipk file [qpe-terminal-ja_1.5.0-3_arm.ipk] from the CD-ROM into the /Documents/Install_Files directory. Disconnect the USB device on the PC. The Zaurus will turn back to normal mode. Click on the third TAB on the top and then click on the little disk like icon. Then select the Install_Files folder. Inside, click on the ipk file (should be the only file there) and the installer will launch it. Press install (the big button at the bottom) and then OK (the button on the left) on the dialog box that comes up.
If you have a SD or CF card and a card reader for it, then you can also just copy the ipk file onto the SD card and insert the card into the Zaurus afterwards and install the ipk file from the card instead of using the USB cable which sometimes can be problematic.
A much better terminal [qkonsole_0.9.3-20040205_arm.ipk] can be download and installed instead of the one provided on the CD-ROM.
Most of the customisation work requires a terminal so you really should install one. All the instructions inside a white box assume its done from within a terminal window, and most entries in gray boxes are illustrations of configuration file fragments. Also I assume you know how to use vi. Personally, I love Vim (vi improved) and use it all the time for most things. However, if you are really struggling to use vi, then you can use pico instead which is like the DOS edit (see pico section on how to install). Then whenever you see the instructions tell you to use vi to edit or create a file, use pico instead. The esc key in vi is mapped to the cancel key on the Zaurus.
The C3000 and C3100 come in Japanese only by default. The irony of this is that Qtopia and most of Linux were developed in English, and Sharp had to change it all to Japanese, and we have to change it all back again. This makes changing the Zaurus back into English rather simple except for a few new applications that were written in Japanese natively. There are several approaches to switch back into English only mode, and there are even some scripts out there that automate the whole process. I consider the Japanese a bonus so no way am I going to get rid of it. (Ever tried to add Japanese support to an older Windows version?)
Launch the terminal and change the /home/zaurus/Settings/locale.conf file to use 'en' instead of 'ja'.
|
[Language] Language = en [Location] Timezone = Australia/Sydney |
Reboot the Zaurus.
The goal of this localisation is to keep all the Japanese funtionality but have English menu items and mixed Japanese and English display of tab entries. Japanese input method, fonts and dictionary will not be affected by this customisation and will still work afterwards.
|
# su # cd /home/QtPalmtop/i18n/ja # mkdir .hide # mv *.qm* .hide # mv .hide/libjpn* . # cp /home/zaurus/Documents/custom/movieplayer.qmid . # chown root:qpe movieplayer.qmid # chmod 640 movieplayer.qmid # cd /home/QtPalmtop/i18n/en # cp /home/zaurus/Documents/custom/movieplayer.qmid . # cp /home/zaurus/Documents/custom/libsl.qmid . # chown root:qpe *.qmid # chmod 640 *.qmid # cd /home/QtPalmtop/bin # mv word-eucJP.rc word-eucJP.rc.hide # cd /home/QtPalmtop # tar cf apps-orig.tar apps # gzip apps-orig.tar # cp /home/zaurus/Documents/custom/apps-mod.tar . # tar xf apps-mod.tar # chown -R root:qpe apps # cd /home/QtPalmtop # tar cf etc-orig.tar etc # gzip etc-orig.tar # cp /home/zaurus/Documents/custom/etc-mod.tar . # tar xf etc-mod.tar # chown -R root:qpe apps # cd /home/zaurus # tar cf Settings-orig.tar Settings # gzip Settings-orig.tar # cp /home/Zaurus/Documents/custom/Settings-mod.tar . # tar xf Settings-mod.tar # cd Settings # chown zaurus:qpe *.conf # chmod 644 *.conf |
Reboot the Zaurus and this is what it will look like:
This package [c3000-custom-jaen_0.2_arm.ipk] will do the above and is what I use to recover my localisation if I need to reset my Zaurus to factory setting and start again. This package works for the C3100 and C1000 as well. You can switch back to Japanese by simply uninstalling the package.
Some applications that you install after the localisation will still appear in Japanese, but most of those can be easily localised as well by looking under the /home/QtPalmtop/i18n/ja directory and if there is an additional qm file named after the application you installed there, simply move it into the .hide directory. However, some applications are written natively in Japanese and cannot be easily localised. I have created [langswitch_0.2_arm.ipk] which will allow you to move the qm files back and fro from the GUI (it requires opie-sh).
The help files are still in Japanese. If that bothers you and you want English help instead, then you can install helpfiles_1.23-lite-1_arm.ipk from the Cacko feed and once installed, create a link from ja to en under the help directory:
|
# su # cd /home/QtPalmtop/help # mv ja ja.orig # ln -s en ja |
The addressbook will display text and menus in English, but entries are still sorted according to the Japanese kana. If you rather have them sorted alphabetically and don't care about storing entries in Japanese, then you can install [qtopia-addressbook_1.23_arm.ipk].
If you want Netfront to be able to display German umlauts, French accents, and other special characters in addition to the standard English characters and Japanese characters, change /home/zaurus/Applications/netfront3/prefs and find an entry FontFamilyJa:. Add or modify FontFamilyEn: and set it to a font such as verdana that contains the extended character sets. The following font package is recommended: unicodefonts-verdana_1.5.0-3_arm.ipk
|
FontFamilyEn: verdana FontFamilyJa: lcfont |
The Zaurus comes with the following fonts already pre-installed:
Unfortunately, the Japanese character mapping has some overlaps and it is not always possible to correctly map some extended characters in the latin character maps. Unicode fonts help a bit in this aspect. However, many fonts do not have all the unicode characters which results in little square boxes being displayed. It is essential to have a font which has all the unicode characters fully and correctly mapped, however, such a font will use over 1MB of memory for each font size.
The following fonts get very close to that, however, the unifont only has size 16.
Having fonts that contain as many character sets as possible is a good start, however, it also depends on the application whether it uses unicode and can extract the right character out of the fonts and display them. Some fonts are also missing details for screen rotation and thus will look garbled when the screen is rotated. Make sure you install the rotated font also if you find the font garbled on rotation.
I have added the following extra fonts:
Note: The unicodefonts-verdana_1.5.0-3_arm.ipk is a repackaged version of mico-unicodefonts-verdana_1.5.0-2_arm.ipk with a rotatable font set.
These fonts are for the default Qtopia deskop and applications. X/Qt and Pocketworkstation use a different set of fonts. The Qtopia fonts are stored in /opt/QtPalmtop/lib/fonts. Zaurus fonts use the Trolltech's QT Prerendered Format (QPF). If you want to make your own additional fonts, then you can convert fonts to Zaurus fonts by using a utility called makeqpf-arm which is provided by Trolltech.
lcfont is the default system font used with the Japanese system, ie when your locale is set to ja which is what your Zaurus is set to by default. However, Qtopia defaults to helvetica if it can't find the font it needs.
When generating fonts, you will need to generate two versions, one for portrait mode and one for landscape. The qpf font for the rotated screen has t10 appended to the filename.
Here are some sample steps to convert the arial.ttf font to a size 16 qpf in landscape and portrait mode. Doing this may result your Zaurus being locked up, and you definately have to reboot your Zaurus afterwards so make sure you save any open files before doing the following:
|
# mkdir -p /hdd3/build/lib/fonts # cp arial.ttf /hdd3/build/lib/fonts # export QTDIR=/hdd3/build # cd $QTDIR/lib/fonts # echo "arial arial.ttf FT n 50 160 s" > fontdir # makeqpf-arm -display Transformed:Rot0 -A # makeqpf-arm -display Transformed:Rot270 -A # cd /hdd3/build # newipk arial # cp /hdd3/build/lib/fonts/*.qpf /hdd3/arial/data/opt/QtPalmtop/lib/fonts # makeipk arial # su # reboot |
The above assumes you have downloaded makeqpf-arm from trolltech and extracted it to a location in the PATH, ie /usr/local/bin. Also it is assumed you have ipktools installed.
And finally, the Japanese display character for the ⁄ symbol is ¥. It is incorrectly displayed but the correct character is being used, so don't worry about it.
The Zaurus comes with a full QWERTY keyboard and like most notebooks, some special characters and keys need to be accessed with a function key (Fn) combo. Most of those combos are already clearly marked on the keyboard, however, some are not marked and some are missing. All of the following key mappings work for most applications, however, some applications that have codepages directly compiled into them will not recognise the mappings and ignore them.
The Print Screen key sequence is:
Navigation keys:
Other useful and unmarked keys:
There are other essential keys that need to be mapped. For that install keyhelper [keyhelper_1.2.2-1_arm.ipk] and put keyhelper.xml into /home/zaurus/Settings and then reload the key mappings from a console.
|
# cd /home/zaurus/Settings # cp /home/zaurus/Documents/custom/keyhelper.xml . # khctl reload |
Installing keyhelper-c3000map [keyhelper-c3000map_0.4_arm.ipk] will also do the above and it will also enable the keyhelper menus too as shown below:
It will give you the following mappings:
The file /home/zaurus/Settings/keyhelper.conf contains the menu item definitions for what to display and what to execute. If you want to customize your own key mappings, you can install keyhelperconf which helps you determine the correct xml code required for the mappings:
You can also remap the application keys on the right hand side of the screen and at the bottom of the keyboard. The ApplicationKey tool under the Settings tab will allow you to assign different applications to those keys.
The following is my mapping:
And here are some useful keyboard shortcuts for Qkonsole:
If you get ~0, ~1, ~2, ~3 when you hit the function keys at the bottom of your keyboard while in qkonsole, copy my modified linux.keytab and vt100.keytab to /opt/QtPalmtop/etc/keytabs and it won't happen anymore.
|
# su # cd /opt/QtPalmtop/etc/keytabs # cp /home/zaurus/Documents/custom/linux.keytab . # cp /home/zaurus/Documents/custom/vt100.keytab . |
Here are some useful keyboard shortcuts for NetFront:
The esc key in vi is mapped to the cancel key on the Zaurus.
The function keys F1 - F10 in midnight commander are mapped to Fn + 1 to 10 respectively.
X/Qt (and also Debian PocketWorkstation which uses X/Qt) has its own keymapping. Get xmodmaprc-c3000 and place it under /home/zaurus and/or /home/root as .xmodmaprc if your keys misbehave.
.xmodmaprc does the following remapping so the keys are mapped similar to keyhelper:
The Menu key will activate the X/Qt control.
Fn + m will kill X/Qt
If your keys turn all CAPS then just hold down the Shift key for a few seconds and they will turn back to lower case.
The file association information is derived from two places. The file /opt/QtPalmtop/etc/mime.types stores the mime types that is used to derive the association information which is then combined with the desktop files stored under /opt/QtPalmtop/apps
The information inside mime.types specifies what file extensions are associated with each file type. The desktop file for each application then specifies which file type the application should handle. If you have more than one application associated with a certain file type, then only one of them will be associated, however, the logic that the Z uses to determine which one to use is unknown to me. Therefore, make sure that only one of them is associated to a file type and you will get the expected file association.
As an example, to associate Opera to .htm and .html files, you would have the following in mime.types
| text/html html htm |
And opera.desktop would have the following:
|
MimeType=text/html MimeTypeIcons=opera |
You can also associate an icon to the file association as well which is shown in the above sample. Multiple associates can be delimited with a semi colon (;).
The C3000 and C3100 have a larger screen resolution (640x480) than the older models. Older applications designed for those models by default start in portrait mode (because that is their default mode). The C3000 and C3100 support both portrait and landscape mode. The clam shell design detects when the screen is rotated and automatically re-adjusts the orientation. However, it also detects that these older applications were build for portrait mode and also automatically switches to portrait mode when those applications are run.
To change this behaviour, tab on the application icon and hold the stylus there for a few seconds and a properties screen will appear. Untick the option "Display with magnified screen". (This needs to be done for each application)
Alternatively you can add the following line to the appropriate .desktop file located under /opt/QtPalmtop/apps
| Display=640x480/144dpi,480x640/144dpi |
Only applications that do not have Display=640x480/144dpi,480x640/144dpi in their desktop file will show the Display with magnified screen option, however, if EnableForcedVGA in /home/zaurus/Settings/Launcher.conf is set to 0, then this option will not be available. The value of 3 in /home/zaurus/Settings/display.conf also means that the application will run in 640x480 mode.
By default, applications run as the zaurus user, however, some applications need to be run with root priviledges.
To do that, tab on the application icon and hold the stylus there for a few seconds and a properties screen will appear. Tick the option "Execute with root priviledge".
Some applications are preloaded on startup. This means when the Zaurus starts up, they are automatically loaded into memory. This makes them load very fast when you run them because they are already loaded. However, because of that, they also use up memory.
You can prevent them from preloading and conserve memory by disabling the preloading flag for each of the preloaded applications. To do that, tab on the application icon and hold the stylus there for a few seconds and a properties screen will appear. Untick the option "Fast load (consumes memory)".
Customising the startup screen is possible. The startup image is a 90 degrees rotated bmp file (480x640) with a 24bit colour depth called Startup_screen.bmp. You simply need to copy it to the correct location so it will be picked up at boot time.
|
# su # cp /home/zaurus/Documents/custom/Startup_screen.bmp /opt/QtPalmtop/pics144 |
It will look like this:
If you want to get rid of the Sharp screen right at the beginning of the boot process, then you will need to recompile the kernel with the sharp logo option disabled. Tetsu's kernel does that as well.
The file /root/etc/rc.d/rc.sysinit controls what is started at bootup. It runs all the scripts under the rc.d directory depending on which runlevel is invoked and then runs rc.rofilesys. However, rc.local which normally is the last script it runs is commented out and won't be run. You can make it run rc.local by uncommenting that section:
cd /etc/rc.d
if [ -f "./rc.local" ];then
if [ -x "./rc.local" ];then
echo "*** Running rc.local"
./rc.local
fi
fi
|
Alternatively, you could also modify /home/QtPalmtop/qpe.sh and make it run /etc/rc.d/rc.local
sdisp /home/QtPalmtop/pics144/Startup_screen.bmp &
/etc/rc.d/rc.d/rc.local
cd
if [ -f /etc/restorefile ]; then
export LD_LIBRARY_PATH=/usr/QtPalmtop.rom/lib
else
export LD_LIBRARY_PATH=$QTDIR/lib
fi
qectrl -c
|
The difference between running rc.local from rc.sysinit and qpe.sh is that the output of the scripts executed from rc.local will be displayed during the boot process if its run from rc.sysinit (if using tetsu's kernel) while nothing will be displayed when running it from qpe.sh because it will be covered by the boot screen image.
The C3000 and C3100 allow you to use a wallpaper which can be a png or jpg file. By default, if you use the Appearance application under the Settings tab, your selected image will be tiled unless you pick an image that exactly fits the screen (640x420 or 480x620 minus the Qtbar) depending on which your preferred orientation is. However, if you rotate the screen, then the image will be out of proportion and will be tiled.
There is a way around this if you install Plasterer [plasterer_2.1.0-1_arm.ipk] which allows you to choose an image that you can center or tile. It will then generate two images for you, vImage.png and hImage.png which will be used as your wallpaper depending on which orientation you are in. You can replace those two files with your preferred images which can be two completely different images.
I have created the following background images with their horizontal and vertical pairs so they look decent on the Zaurus in either orientation:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Note: Most of the above images were taken from Cresho's zaurusthemes.org site. There are plenty more pretty background images over there. These are just my favourite ones.
You will notice that this application is in Japanese. Use the Menu Language Switcher (en) tool under the Settings tab (if you have langswitch installed) to move the qm file and it will be in English.
Once you have used Plasterer to generate hImage.png and vImage.png you can use bgswitch [bgswitch_0.1_arm.ipk] to switch between your available backgrounds provided they are located in /home/zaurus/Documents/Image_Files/wallpaper
The default screensaver on the C3000 and C3100 is rather ugly. You can replace it with something much better. To do that install the following:
In addition, also install at least one of the following:
You will notice that this application is in Japanese. Use the Menu Language Switcher (en) tool under the Settings tab (if you have langswitch installed) to move the qm file and it will be in English.
In addition, you can customise the icons that are displayed for each application on the menu, and also the icons displayed for the applications according to their mime associations.
The icons for the menu and the tabs are located under /opt/QtPalmtop/pics144. Qtopia will always search this location for the icons first. If no icon is found with the specified name, then it will also search under /opt/QtPalmtop/pics as well. If an icon exists with the same name in each location, then the icon in /opt/QtPalmtop/pics144 is used.
The default icons that come with the default Sharp ROM on the C3000 are located under /hdd1/usr/QtPalmtop.rom/pics144 and /hdd1/usr/QtPalmtop.rom/pics and are symbolically linked to /opt/QtPalmtop/pics144 and /opt/QtPalmtop/pics144 respectively.
Similarly on the C3100, they are located under /usr/QtPalmtop.rom/pics144 and /usr/QtPalmtop.rom/pics and are symbolically linked to /opt/QtPalmtop/pics144 and /opt/QtPalmtop/pics144 respectively.
The icons for file association are by default searched under /opt/QtPalmtop/pics. When installing applications, they add their icons to /opt/QtPalmtop/pics144 and/or /opt/QtPalmtop/pics. Usually icons under /opt/QtPalmtop/pics144 are 64x64 in size and icons under /opt/QtPalmtop/pics are 32x32 in size. However, some special smaller icons of size 28x28 are also located in /opt/QtPalmtop/pics144 and size 14x14 under /opt/QtPalmtop/pics
The icons can be customised by replacing the icons used by the applications or copying additional icons to those locations and using the TabConf utility to change the icons used for the applications. Alternatively, each .desktop file under /opt/QtPalmtop/apps can also be manually modified. If you replace an icon by copying over another icon file with the same name, then you will not see the new icon until you reboot because Qtopia still has the old icon in cache.
customised start menu:
The following is a list of the names of the icons that need to be replaced in order to change the look and feel of the default Qtopia desktop. Since some of these icons are symbolic links, the symlinks need to be deleted first before a new icon can be copied to replace them. I have replaced and added the following default icons:
SettingsAdditionally, more icons were added, some are listed below
Menu Tabs:The zicons-wmtux package [zicons-wmtux_0.2_arm.ipk] will replace the above listed icons with a set of nicer looking ones and also adds a few extra icons for applications. This package is based on the cool-icons package from cacko.biz and also the z-oslinux theme from zaurusthemes.org
The Appearance tool under the Settings tab can be used to switch themes. Crystal Blue is one of my favourites, although a combination of SLStyle for the Style, umicons for the Title Bar and Gray for the Colour Scheme does look very good too.
The Zaurus comes with bash 2.05 by default. It also comes with ash and sh which is the default shell for the root and zaurus user accounts. The zaurus user forks off and launches bash when you launch a console from within Qtopia. When you connect to the zaurus via telnet for example or su to root, you will get the default shell (/bin/sh) which is not bash. If you want to make bash your default shell, then edit /etc/passwd and change /bin/sh to /bin/bash
|
root:x:0:0:root:/home/root:/bin/bash zaurus:x:500:500:Zaurus User:/home/zaurus:/bin/bash |
You can also customise the bash prompt by creating or editing a file called .profile or .bashrc which is in the user's home directory, eg: /home/zaurus/.profile or /home/root/.profile
You can change the bash prompt by changing the PS1 variable definition to something simple like zaurus-:) or even something fancy with different colours.
If you don't have a .bashrc file, you can just copy .profile for starters and then modify it.
The zaurus user's home directory (/home/zaurus) is located on the /home partition (/dev/mtdblock3). On the C3000 it is only 4MB in size. It is physically located on the internal flash memory which is only 16MB in total on the C3000. This partition cannot be made bigger since the rest of the flash memory is used for the main rootfs (/dev/mtdblock2), the emergency rootfs (/dev/mtdblock1). The /home partition is also used to store kernel modules (/home/root/modules), system configuration (/home/zaurus/Settings and /home/etc/) and other things. In addition, some applications also store their configuration and data into the zaurus home directory (this is what linux apps are supposed to do), but it is not so ideal on the C3000. Thus the /home partition quite quickly fills up. It it advised to not store large files there, in fact, try avoiding saving anything there to preserve the precious space available on /home.
If you do run out of space, you can move some files and directories to /hdd2 or /hdd3 and symlink the files/directories. To simplify this, I have created a script zhomefix which will move all files and directories in /home/zaurus starting with . to /hdd2/zaurushome and symlink them back. If you are low on space on /hdd2 as well, you can modify zhomefix to move files to /hdd3/zaurushome instead.
On the C3100, however, the situation is slightly different. The internal flash memory on the C3100 is 128MB in size compared to the tiny 16MB on the C3000. Now you would think that the C3100 won't run out of space so easily. Unfortunately, that is not the case. The rootfs is now allocated 32MB instead of 4MB which was what it was on the C3000, and remember, there is also the emergency rootfs (smf). So after allocating some of the space for the other stuff, there is still 89MB of space left on /home. This isn't so bad after all you think, but wait, there is another surprise. On the C3000, the internal MicroDrive was partitioned into /hdd1, /hdd2 and /hdd3. The default binaries and settings were stored on /hdd1 which was a read-only filesystem. All the applications were installed to /hdd2 and the remaining /hdd3 was used for data. On the C3100, the content of /hdd1 has moved to the rootfs and /hdd2 has moved to /home. Those two partitions (/hdd1 and /hdd2) are now about 9MB in size each on the C3100 and are more or less empty and not in use. This makes /hdd3 much bigger on the C3100 compared to the C3000.
However, this in effect makes /home on C3100 equivalent to /hdd2 and /home on the C3000. There was around 400MB allocated to /hdd2 on the C3000 for installing applications. We only have 89MB on the C3100. Luckily, this 89MB is located on a jffs2 filesystem which has built-in compression so we could be able to install around 200-300MB of applications and stuff if we are lucky. Still, we will run out of space eventually. If that happens, we could uninstall some applications (such as the additional applications that came with the C3100 but weren't present on the C3000) or we could move some files to /hdd3, but be careful, /hdd3 is by default a FAT filesystem and does not support symbolic links which some applications might require. See the Filesystem section on discussion on using cramfs or ext2 loopback filesystem on /hdd3 to extend the amount of installable space. Alternatively, you can install to SD or CF card, but some applications require to be installed to non-FAT partitions so you might need to reformat them.
Both the C3000 and C3100 contain an internal 4GB MicroDrive which is partitioned into /hdd1, /hdd2 and /hdd3. By default, /hdd3 is formatted as a FAT filesystem so it can be shared as a USB drive when the Zaurus is connected to a computer as a USB slave and accessed from Windows. The first partition, /hdd1 is a read-only partition containing the OS images and binaries required to run and restore the Z to factory default on the C3000. On the C3100, it is an almost empty partition with a size of 9MB. It contains a file called hdimage2.tgz that has the directory structure and sample template files for hdd3. The second partition, /hdd2 is where applications get installed to on the C3000. On the C3100, it is also an empty partition with a size of 9MB. The third partition, /hdd3 is allocated the remainder of the MicroDrive and is a FAT formatted partition. It can be used to store data on files of any type, including relatively large files. Alternatively, /hdd3 could potentially also be used for applications when /hdd2 or /home is full if you apply a few modifications.
However, since the default /hdd3 is using the FAT filesystem, no symlinks can be created on it and file permissions and ownership are also not available. Thus, there are a few drawbacks with having /hdd3 as a FAT partition. You can either reformat the entire /hdd3 to linux filesystem (ext2/ext3) or repartition /hdd3 into /hdd3 and /hdd4. This leaves a smaller FAT formatted /hdd3 and additionally a /hdd4 with a linux partition.
Before repartitioning /hdd3, make sure you backup everything on it first. The dictionary files (dict1 and dict2) which are by default on /hdd3 can be found on the first two CD-ROMs that came with the Zaurus. The C3100 has a third CD-ROM which contains the files for the Contents_Files directory. The contents of the sd_map directory (C3100 only) are located under a sub-directory under the Applications directory on the first CD.
/hdd3 is usally mounted from /dev/hda3 or /dev/hdc3 depending on how you booted. If you booted with no CF card, then it will be /dev/hda3, however, if you had booted with a CF card inserted, then it will be /dev/hdc3.
The steps required for splitting hdd3 into two are:
There is also a tool called parted which allows you to resize your existing partitions without having to remove them. This is certainly very useful tool, but remember to backup your hdd3 before resizing it if you have files on hdd3 that you want to keep. Although parted can resize the partition without wiping your data, it is not guaranteed. There may be instances where resizing could corrupt the partition so its always wise to do a backup first. Also run fsck after using parted to verify that the partition has been resized successfully without corruption.
Once that is done you need to remount / as read/write and create a mount point for hdd4, ie /hdd4. Remember to remount / to read-only after you have created your mount point. Also you will need to create a startup script to mount hdd4 during bootup. But be careful since hdd4 can boot up as /dev/hda4 or /dev/hdc4 depending on whether a CF card is inserted during bootup or not. My automounter package [automounter-c3000_0.5.0_arm.ipk] will automatically mount hdd4 if it detects it.
Alternatively, if you don't need your Zaurus to act like a USB drive, or your PC runs Linux, then you could just reformat the entire /hdd3 to linux filesystem.
You might also consider creating a small swap partition while you are at it. A swap partition is faster than a swapfile. A swap partition between 64MB and 256MB should be fine depending on your usage and applications.
Also note that the default installer tool (qinstaller) won't let you install applications to either /hdd3 or /hdd4. ipkg will allow you to install to those locations but won't relink the applications for you, so you will have to use ipkg-link afterwards which is not included with the default Sharp ROM. My xipk script which is part of my ipktools package enables you to install to /hdd3 and/or /hdd4, and also relinks the files and directories for you. In addition, it uses the same mechanism as qinstaller and thus applications installed with xipk can be uninstalled using the qinstaller.
If you want to maximise the space on hdd3 and you don't care about the Japane se/English dictionary and translator, then you could remove the dictionary files under /hdd3/dict1 and /hdd3/dict2. If you later decide that you do want them, simply copy them back from the CD-ROM (so don't loose your CD-ROMs). On the C3100, there is additionally the MobileMap application which has some files under /hdd3/Documents/sd_map. You can uninstall the application and remove the sd_map directory to get more space. You can re-install MobileMap from the first CD, and find the contents of sd_map under X:/Applications/MobileMapData/sd_map. The MobileMapData part is in katakana. There is also the Contents_Files directory containing many Japanese books and reading material on the C3100. If you don't know Japanese, you probably want to hide the Contents tab. This can be done though the Appearance tool under the Settings tab. You probably also want to remove the /hdd3/Documents/Contents_Files directory afterwards as well. If you ever want it back, you can simply copy it from the third CD.
Lastly, /hdd3 gets wiped when you do a factory reset, but you can disable that behaviour. To do that you need to first remount / as rw and then modify /root/etc/rc.d/rc.rofilesys and comment out the following section:
if [ "$HDDCLEAR" = "YES" ]; then
dd if=/dev/zero of=/dev/${IDE1}3 > /dev/null 2> /dev/nulls
fi
mkfs.vfat -F 32 /dev/${IDE1}3 2> /dev/null > /dev/null
|
Of course, after you do a factory reset, you will need to fix rc.rofilesys again so the next time you do a reset it won't wipe your hdd3. Alternatively, you could also update .home_default.tar and replace the rc.rofilesys in there with the hacked version and not worry about it anymore.
On the C3100, /hdd1 and /hdd2 doesn't contain anything important and are a waste of space because those partitions are not really used except for factory reset to wipe /hdd3 which sux anyway. Thus you can hack rc.rofilesys to not even mount them or you could resize the partitions so that /hdd1 is a swap partition, /hdd2 is a linux filesystem (instead of /hdd4) and /hdd3 becomes a smaller fat partition.
Here is the default partition table:
|
Disk /dev/hda: 4095 MB, 4095737856 bytes 16 heads, 63 sectors/track, 7936 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Start End Blocks ID System /dev/hda1 1 20 10048+ 83 Linux /dev/hda2 21 40 10080 83 Linux /dev/hda3 41 7936 3979584 c Win95 FAT32 (LBA) |
Here is my custom partition table which has /hdd1 as a 256MB swap partition, a 1.2GB ext3 partition on /hdd2 and a 2.5GB on /hdd3:
|
Disk /dev/hda: 4095 MB, 4095737856 bytes 16 heads, 63 sectors/track, 7936 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hda1 1 256 128992+ 82 Linux swap /dev/hda2 257 2790 1277136 83 Linux /dev/hda3 2791 7935 2593080 c Win95 FAT32 (LBA) |
In order to do this, you need to replace /root/etc/rc.d/rc.rofilesys after you have remounted / as rw. You also need to remove the NotAvailable file from the unmounted /hdd1 and /hdd2.
I have successfully used parted to shrink /hdd3 dynamically without destroying my existing files but backing up the files is still recommended just in case. Then I used fdisk to recreate /hdd1 and /hdd2 with their new sizes and formatted them using mkswap and mk2fs -j respectively.
Now when the C3100 boots up, it automatically mounts /hdd3 as before but it won't erase /hdd3 on a factory reset, and it also mounts /hdd2 as ext3 if it exists. Additionally, it also enables the 256MB swap partition (formerly /hdd1) and mounts tmpfs as 2MB instead of 1MB.
The C3000 and the C3100 both have a 4 GB CF MicroDrive internally, which is used as its harddisk to store data. Since a CF Flash card is generally faster than a MicroDrive, it would make the Zaurus faster if the CF MicroDrive is replaced with a CF Flash card. This makes sense for the C3000 where the applications and binaries are stored on the MicroDrive and there is a slight delay for the MicroDrive to spin up when it has gone into powersaving mode after some time of disk inactivity. However, for the C3100 it would not make such a big impact on application performance since they actually are on the flash memory instead of the MicroDrive. Still, if the application is also stored on the MicroDrive, ie /hdd3 is used for installing additional applications such as PocketWorkstation and a large swapfile, then it would make sense too.
To do this, you would need a CF Flash card to replace the MicroDrive with. Make sure the Flash card you are using has a similar capacity to the MicroDrive (4GB would be good, 2 GB is managable and bigger ones should be better). However, make sure the Flash card you are using is faster than the current MicroDrive inside the Zaurus (the Z has a 4GB Hitachi MicroDrive inside), otherwise you won't be gaining anything.
What you want to do is mirror the 4GB MicroDrive to the Flash card. You can d o this by inserting the Flash into the CF slot on the Zaurus and partition it ex actly like the MicroDrive using fdisk. Then use the dd command to copy each partition, ie hdd1, hdd2 and hdd3. Unmount hdd2 and hdd3 before you copy them or remount them to read-only. The other partitions are located in the internal flash memory (also called Nand). Alternatively, you can also use parted to copy the entire partition from one disk to another. Once this is done, you can open up your Z and swap the two drives. This will void your warranty, so make sure you understand and know what you are doing. It is your own responsibility if you break your Zaurus or any parts of it. Finding replacement parts will be extremely difficult unless you live in Japan, so be careful and consider the consequences of your actions, or modifications. Let me say it again. If you open your Zaurus up to replace parts, you void your warranty. If you break something during the process, then you are on your own since you just voided your warranty.
You should always backup your system since that is the only way to recover if something goes wrong.
The C3000 and C3100 come with a backup and restore tool which is located under the Settings tab. Use this application to backup your Zaurus. It allows you to backup your system (flash, applications and configurations) to either SD, CF or /hdd3. Basically, everything except /hdd3, /hdd1, /root and /mnt will be backed up and can be restored which means you will need to backup /hdd3 by other means. Before you backup, make sure you unmount any loop devices that are mounted, unless they are mounted under /mnt, otherwise they will be backed up as well (which you think might be great) but you won't be able to restore the backup image (because the additionally backed up files on the loop device(s) will make the backup image bigger than the backed up partitions). If you have automounter installed, you can unmount all the loop devices by running the following:
|
# su # automounter stop |
Once you have backed up all the files on your Zaurus, you can remount all the loop devices by running the following:
|
# su # automounter start |
Since /hdd3 is quite large, you either need to get a big CF card, or mount a Samba or USB drive that has enough space to hold your data. A USB drive would be the best (cheaper than CF drive and faster than Samba since its connected directly and not over a network unless you have got a fast network).
Assuming you have your USB disk mounted as /mnt/usbdisk1 you could do the following to backup /hdd3:
|
# tar cf - /hdd3 | gzip - > /mnt/usbdisk1/hdd3-backup.tgz |
If you are paranoid you can backup /hdd1, /hdd2 and /home as well:
|
# tar cf - /hdd1 | gzip - > /mnt/usbdisk1/hdd1-backup.tgz # tar cf - /hdd2 | gzip - > /mnt/usbdisk1/hdd2-backup.tgz # tar cf - /home | gzip - > /mnt/usbdisk1/home-backup.tgz # tar cf - /root | gzip - > /mnt/usbdisk1/root-backup.tgz # tar cf - /mnt | gzip - > /mnt/usbdisk1/mnt-backup.tgz |
The Zaurus backup tool basically shuts down Qtopia so all open files are closed and then tars up /hdd2 and /home which become the backup image. This is much safer than the above approach while Qtopia is still running. You should, however, gzip the backup image to save some space. There is no real need to backup /hdd1 each time since it is a read-only partition and does not change unless you have changed something on it manually or applied an update via flashing.
I have written a script called hdbackup which will backup /hdd3 by archiving and compressing each directory separately and datestamping them so regular backups can be made by simply running a single command.
Alternatively, you can connect your Zaurus to your Windows PC through the USB link cable and use Windows backup software or anything else you like to backup the USB drive that the Zaurus is recognised as. Since the USB PC connection is buggy, you might be better of enabling Samba and then backup /hdd3 over the network or USB cable.
Lastly,don't forget about backing up your SD and CF card also. They can get corrupted or fail without warning as well, so make sure you back them up to.
In addition, there is also a NAND backup feature in the Zaurus Diagnostic Menu which allows you to backup the entire NAND. Since the C3000 only has 16MB of NAND flash and everything actually sits on the hdd3, doing a NAND backup won't buy you much. On the C3100, however, everything is on the NAND except for the data on /hdd3, thus making a NAND backup for the C3100 gives you a reliable system image which you can use to restore your C3100 if you really mess it up. The same is not the case with the C3000 so be very careful with what you flash your C3000 with.
To do a Nand Backup, you need a CF or SD card which can hold the entire Nand. A 256MB card should be sufficient. To do a Nand Backup or Restore, do the following:
If you manage to corrupt your Zaurus configuration so badly that you cannot boot it anymore or things just don't work any more, then you have several options to fix it.
If you really messed up and just start over again without retaining anything, then just do a factory reset and the Zaurus will revert to its initial Japanese ROM state.
If you have a backup, you can restore your previous settings contained in your backup files. If you had to factory reset, then a restore can quickly get you to where you were before.
This is by far the most advanced option. Use this to recover files that might not have been backed up yet before doing a restore and/or factory reset.
Please refer to Trisoft's C3000 manual on how to do the above. It would be a waste of my time to provide step by step instructions since they have it pretty much covered, and they even have emergency backup images for you to use in case you dont't have a system backup.
If you have booted into the console for recovery, then you are using the /dev/mtdblock1 partition. This is the emergency partition that you usually don't see. You will need to manually mount the usual partitions if you want to access them. /home is /dev/mtdblock3 and /dev/mtdblock2 is your root partition. Don't forget to unmount the partitions after you have finished your changes or they will be rolled back and all the files remain unchanged.
For the C3000, you should update your Sharp ROM to 1.11JP if you are still on 1.01JP
There is no updated Sharp ROM for the C3100 yet.
Warning: Only flash your Zaurus with a ROM intended for your specific model and make sure you downloaded the complete files. Never ever flash your Zaurus with a ROM for another model. It will cause you many sleepless nights trying to restore it to a working condition.
There are several replacement kernels for the C3000 and C3100 which enhance the stock kernel that ships with Sharp's ROM. You can even build your own if you want (and know how to). The kernel source is available on Sharp's developer website. However, there are some smart people who already build and tested their own enhanced kernels. One of those is Tetsu's special kernel which has been build for optimised speed and also includes iptables and bluetooth modules. It also makes the battery status more accurate and it has a few bug fixes too.
Warning: The kernel is an important part of the Linux OS. A bad kernel can corrupt your Zaurus, so don't play around with it unless you know what you are doing and install the correct kernel for your model.
fsck needs to be run on the Linux filesystems from time to time to check for inconsistencies in the file systems and to fix it if there are any. fsck is similar to the chkdsk or scandisk command in DOS and Windows.
Running fsck on a mounted filesystem is not recommended so the safest way to run it on the C3000 is from the maintenance menu. Unmounting the partitions on the MicroDrive is much easier on the C3100 since it runs off the flash instead of the disk. For FAT partitions, ie /hdd3, use fsck.vfat instead of fsck.
To perform fsck via the maintenance menu do the following:
The fsck from the Maintenance Menu checks all three partitions on the MicroDrive, ie /hdd1, /hdd2 and /hdd3. It does not fsck /home or /root which is located on Flash. In fact, there is currently no known way of fscking a jffs2 filesystem which /home and /root are formatted as.
You should also regularly fsck your SD and CF card. Please unmount them before fscking them. Here is how you would fsck a FAT formatted SD card:
|
# su # umount /mnt/card # fsck.vfat /dev/mmcda1 # mount /mnt/card |
Enabling the wireless network was amazingly easy and straightforward. Just plug in the Wireless CF card and the Zaurus automatically detects it. Then run the Network config applet and enter the network info and press connect. Voila! That's it. Way too easy. This was the case using a Netgear MA701 CF Wifi card. Not all CF Wifi cards are supported so your milage may vary depending on your card.
However, you can also manually configure the network without using the Network config applet. The config files it generates are located under /home/zaurus/Applications/Network/modules and are called WLANx.conf. You will also need to edit the corresponding entry in /etc/pcmcia/wlan-ng.opts. If for any reason the applet won't let you enter a value you want (such as space in ssid), then you can edit the mentioned config files yourself.
Now this one was a bit trickier. My USB LAN adaptor came with a Linux driver, a file called rtl8150.c and all that was required was to compile it on the Zaurus (provided you got gcc to work). Anyway, I cheated and googled for rtl8150-1.o and found it :)
Next I had to install this driver which was quite easy. All that was required was to drop it into the following location: /lib/modules/2.4.20/kernel/drivers/usb/net and the hotplug mechanism in Linux would detect whenever the device was connected and enable eth0.
Now came the slightly harder part, ie the automatic configuration of the device. The network applet seems to only work for the CF based cards so it completely ignored eth0 because it came from the USB interface. After looking at how the usbdnet and wlan is configured by the hotplug mechanism, I extended the net.agent to check for eth0 as well and added net.func and net.conf to automatically configure the network once the cable was plugged in.
In addition I also wrote a script called net to change the stored network settings so I can easily switch between networks. The configuration for net are stored under /etc/sysconfig/netconf and net is invoked with the name of one of the config files as the parameter. Proxy settings for the Zaurus are stored under /home/zaurus/Applications/Network/modules/Proxies.conf which net will automatically update depending on the config being loaded.
|
# su # cp /home/zaurus/Documents/custom/rtl8150-1.o /lib/modules/2.4.20/kernel/drivers/usb/net # cp /home/zaurus/Documents/custom/net /usr/bin # cp /home/zaurus/Documents/custom/net.* /etc/hotplug # mkdir /etc/sysconfig/netconf # cp /home/zaurus/Documents/custom/*.conf /etc/sysconfig/netconf for example: # net dhcp (loads the config file dhcp.conf)# net -gui (starts with opie shell in QTopia desktop) # net -refresh (tells NetFront that its connected already) # net -resume (manually force network to resume) |
Here is a sample config file for a private network:
|
DHCPC=no IP=192.168.1.2 NETMASK=255.255.255.0 DOMAIN= GATEWAY=192.168.1.1 PROXY=0 PROXYHOST= PROXYPORT= DNS1=192.168.1.1 DNS2= |
net also has a GUI front-end using opie-sh, but in order to use the GUI, sudo needs to be configured to allow zaurus user to change the network settings, ie. ifconfig and dhcpcd. I also created a netswitch package [netswitch_0.4_arm.ipk] which will do the above steps when installed.
Some application such as NetFront insist on doing their own connection and disconnection to the network and ignore the fact that your USB network is already connected. As a workaround net has a refresh option to reset the network status whenever those programs mess with it. Simply run the following after you have launched NetFront:
|
# net refresh |
A lot of the USB network cards use either the rtl8150 chipset or are compatible with the pegasus driver. Drivers for both are included with netswitch, so installing the netswitch package should enable your USB LAN device in most cases. However, some network cards use other chipsets. You should be able to compile your own driver if you can find the driver source. See gcc section for further details.
The USB sync cable which allows you to access your Zaurus as a USB disk can also be used in TCP/IP mode which means you could use that cable to network your Zaurus and your PC.
To do this, you first need to install the USB NDIS drivers onto your PC or laptop. The Zaurus Software for the PC (Windows) does not use UniCode and hence displays garbage when run on an English version of Windows (even if you have installed the Japanese language pack and your browser can display Japanese websites without problems). To fix this, change the default Windows system locale to Japanese and restart Windows. Then run X:\PCSOFT\Setup.exe from the Zaurus CD-ROM and you will be able to read the Japanese.
Select next as appropriate and use the following as guide for the options:
(you only need the last option for the USB network)
Restart Windows when the install has finished.
The USB network driver is now installed and Zaurus Manager should had started automatically. If it has not, start it manually by running "C:\Program Files\Common Files\Sharp\SL\SSPCLINK2\ComSet.exe". You should also make a copy of C:\Program Files\Sharp Zaurus 2\drivers, best is to zip up the whole directory. This is the Zaurus USB network driver. You can use this driver to re-install the USB network or install it to another machine without having to run through the whole setup process again.
Rather than carrying a floppy, CD-ROM or another USB stick around that contains the Zaurus NDIS USB driver, you could put it on /hdd3/Documents on the Zaurus itself. When you connect your Zaurus to a computer which has not been setup with the Zaurus NDIS USB driver before, it will detect the Zaurus as a plain USB storage device and allow you to copy the driver from the Zaurus. Then once you installed the driver to the computer, it will believe that it is connected to the Zaurus via a network instead of treating the Zaurus as a dumb USB disk (provided the Zaurus is in advanced USB mode).
Now, on to the Zaurus side of the configuration. Run the PC Link tool from the Settings tab and select PC Link Setting, then select Connection USB-TCP/IP (advanced). Now just connect the USB cable (USB mini-B into Zaurus, USB A into Laptop or PC). The Windows machine should detect a new device at this point, a SL series Ver3 (NDIS 5) network adaptor, and you should be able to configure it. By default, the Zaurus would be assigned an IP address of 192.168.129.201. Assign an IP address in the same range to this new network adaptor, eg 192.168.129.101. You should now be able to ping both ways unless you have a firewall blocking it or DDE service is not enabled. If you want the Zaurus to be able to access the internet as well, you could enable internet sharing on your Windows PC (assuming it has internet connectivity and you trust Microsoft security). If you do that, Windows will reset the IP address of your Zaurus NDIS driver to 192.168.0.1 but you can change it back to whatever value you had given it before, ie 192.168.129.101
On the Zaurus side, you need to run the following commands to setup a route to your windows box:
|
# su # route add -host 192.168.129.101 usbd0 # route delete -net 192.168.129.0/24 usbd0 # route add default gw 192.168.129.101 |
Now that the route is configured, you should be able to ping servers by their IP addresses. In order to resolve the hostnames, you need to configure /etc/resolv.conf on your Zaurus with the DNS that is used on your Windows box. Assuming your DNS is 192.168.10.1, do the following:
|
# echo "nameserver 192.168.10.1" > /etc/resolv.conf |
You can also automate the above on the Zaurus by modifying /etc/hotplug/usbd.func and adding the following to the end of the usbd_net_if_up() function
if [ "$DHCPC" = "no" ]; then
GATEWAY=192.168.129.101
DNS=192.168.10.1
route add -host $GATEWAY usbd0
route delete -net `echo $GATEWAY|cut -d. -f1,2,3`.0/24 usbd0
route delete default
route add default gw $GATEWAY
echo "nameserver $DNS" > /etc/resolv.conf
fi
|
Since the Zaurus has an infra-red port (IrDA), you can use it for networking as well provided you also have an IrDA port on your PC or laptop that you can configure to use PPP over IrDA (IrCOMM or IrNet). This method of networking your Zaurus would give you the slowest network speed and you usually would not use it if the other options were available to you. But if your CF slot and USB port are tied up with other things, then using IrDA for networking might be something viable.
For this to work, you would need to first choose whether to use IrCOMM or IrNet drivers. Then you would need to make sure the chosen driver is enabled on both your Zaurus and your PC or Laptop. For IrDA connectivity, one machine has to be the host and the other the client. I will describe how to make Zaurus the host and the other PC or Laptop the client. The roles can also be easily reversed. I also did not bother with security since both machines would have to be physically in close range to each other in order for this to work.
The IrCOMM driver is by default already installed on the Zaurus and most Linux machines that have IrDA enabled. However, you would need to install a driver for Windows. On Windows 2000, for example, you will need to disable Image Transfer and install an IrCOMM driver (IrCOM2k). The following site describes how to setup IrCOMM on Windows2000: http://www.stud.uni-hannover.de/~kiszka/IrCOMM2k/English/manual.html. Once you have installed the IrCOMM driver, you can setup a new network connection (Direct Connection) using IrDA as the device and setting up Windows as the client with no password prompt.
On the Zaurus, you will need to do the following to make it start IrDA as the host:
|
# su # /etc/rc.d/init.d/irda start # pppd /dev/ircomm 9600 10.10.10.21:10.10.10.20 local noauth nodetach |
On the IrDA client, if you are running Linux (and IrCOMM is already setup), you can simply do the following:
|
# su # /etc/rc.d/init.d/irda start # pppd /dev/ircomm 9600 nodetach |
If you are running Windows (and you have setup the direct connection using IrDA as client) you can simply double click on the Direct Connection icon to connect.
Once they are paired successfully, you can ping the other box from the Zaurus as 10.10.10.20. The Zaurus would be 10.10.10.21 in this example.
To stop IrCOMM, simply press Fn + c and then run /etc/rc.d/init.d/irda stop
You will need the IrNet module on the Zaurus and your other Linux box. However, it is already installed on Windows 2000 so all you need to do on Windows is to create a new Direct Connection using IrDA interface.
To install and enable IrNet on the Zaurus, you will need to copy irnet.o to /lib/modules/2.4.20/kernel/net/irda/irnet.
|
# su # mkdir -p /lib/modules/2.4.20/kernel/net/irda/irnet # cp irnet.o /lib/modules/2.4.20/kernel/net/irda/irnet # mknod /dev/irnet c 10 187 # chown root:root /dev/irnet # chmod 644 /dev/irnet # insmod irnet # /etc/rc.d/init.d/irda start # pppd /dev/irnet 9600 10.10.10.21:10.10.10.20 local noauth nodetach |
On the IrDA client, if you are running Linux (and IrNet is already setup), you can simply do the following:
|
# su # /etc/rc.d/init.d/irda start # pppd /dev/irnet 9600 nodetach |
If you are running Windows (and you have setup the direct connection using IrDA as client) you can simply double click on the Direct Connection icon to connect.
Once they are paired successfully, you can ping the other box from the Zaurus as 10.10.10.20. The Zaurus would be 10.10.10.21 in this example.
You can also just simply install irnet_2.4.20_arm.ipk which installs and configures irnet so that it will be available even after a reboot. It also provides an opie shell script to allow you to start and stop it from the Qtopia GUI or simply run irnet start to start it from the command line and irnet stop to stop it.
If you have a CF bluetooth card or a bluetooth USB dongle, then you can set up a PAN (Personal Area Network) with other bluetooth enabled devices.
In the case you have a bluetooth enabled mobile phone with GPRS service, then you can even use bluetooth to connect to your phone using dialup networking (DUN) to use the phone's GPRS service.
However, the default Sharp ROM does not have bluetooth drivers or tools installed out of the box and you will need to setup and install those first before you can use bluetooth. See the bluetooth section for more details.
By default, a Samba service is already installed on the Zaurus. It is used when you synchronise your Zaurus with your PC while the USB cable is plugged in. You can also manually start and stop the Samba service and allow it to go over your wireless and ethernet network instead of just the USB cable. If you use the USB cable in advanced mode (with TCP/IP enabled), then you will be able to access all your devices (MicroDrive, SD card, CF card and USB disk) at the same time instead of being able to only chose one at a time in normal sync mode.
To allow Samba to be accessed via the WLAN (wlan0, wifi0) or LAN (eth0) interface, edit the following file: /usr/lib/samba/smb.conf
Find the following line: interfaces = usbd0
add your network interface after usbd0 separated by a space like this: interface = usbd0 wlan0 eth0
You might also want to add a new entry: hosts allow = 192.168.1. (whatever the IP range of your network is from which you want to connect to your Zaurus, multiple entries are separated with a space)
[global] workgroup = HOME log file = /dev/null hosts allow = 192.168.1. 192.168.129. encrypt passwords = yes coding system = utf8 client code page = 932 force create mode = 0755 strict sync = yes sync always = yes interfaces = usbd0 eth0 wlan0 #wins support = yes bind interfaces only = yes [system] comment = System Folder path = /root/samba read only = no browseable = no guest ok = yes force user = root [home] comment = for User Data path = /home/samba short preserve case = no read only = no guest ok = yes force user = zaurus |
And finally, you need to know how to start the Samba service:
|
# su # /etc/rc.d/init.d/samba start |
To stop the Samba service:
|
# su # /etc/rc.d/init.d/samba stop |
Alternatively, you can install sambacontroller [sambacontroller_0.1-0_arm.ipk] which gives you a GUI interface to do it. Remember to give it root access or else nothing will happen. Also you need to do the following to enable it to configure smb.conf (only needed for the C3000)
|
# su # mkdir -p /home/root/usr/lib/samba # cd /home/root/usr/lib/samba # ln -s /usr/lib/samba/smb.conf smb.conf |
Once you install SambaController, you can use it to start and stop samba, as well as modify smb.conf from the Configure tab.
You should also install smbpasswd [smbpasswd_0.1-1_arm.ipk] which will allow you to set the samba password.
Once you installed smbpasswd, you will need to do the following to get it working:
|
# su # ln -s /usr/local/samba/lib/codepages /usr/lib/samba/codepages # rm /usr/local/samba/lib/smb.conf # ln -s /usr/local/samba/lib/smb.conf /usr/lib/samba/smb.conf # ln -s /usr/local/samba/private/smbpasswd /etc/smbpasswd |
Note: you might need to hack the Windows registry to enable plain text password to make Windows compatible with Samba (depends on the version of Windows you are running).
This configuration forces the samba user to be the zaurus. When giving access to the samba shares, all the access rights and file permission is that of the zaurus user. This will work fine on all FAT filesystems, however, if you change some of your partitions to ext2, then you might get some permission denied errors when trying to acces, create, modify, move or delete files. If that happens, make sure the file or directory in question has sufficient access rights for the zaurus user.
In addition, if you change /hdd3 to another filesystem other than fat, then samba will stop to work for /hdd3/Documents unless you change /etc/hotplug/usbdstorage.agent and change the mount options to the appropriate filesystem type, ie change fat to someting else like ext3.
If you only want to ssh to other machines from your Zaurus, install ssh client [openssh-client_3.6.1p1_arm.ipk].
If you want your Zaurus to be accessed via ssh as well, then you need to install the following:
There already is a command line telnet client pre-installed on the Zaurus which you can use.
In order to enable the telnet daemon within inetd, uncomment the telnet entry in /etc/inetd.conf and restart inetd.
|
Make sure you use tcp wrapper as it is slightly more secure. Then enable tcp wrapper security by creating hosts.allow and hosts.deny as follows:
|
# su # echo "ALL:ALL" > /etc/hosts.deny # echo "in.telnetd: 192.168.129., 192.168.1." >> /etc/hosts.allow |
Add any IP range you want to give access to in addition to the above.
A command line ftp client is already installed, however, there are much nicer ftp clients such as ncftp [ncftp_3.1.5-1_arm.ipk] and lftp [lftp_2.6.7-1_arm.ipk]. Alternatively, there are also GUI based ftp clients such as opie-ftp [opieftp_0.9.1-20020702_arm.ipk] and jftp [jftp_0.23.1_arm.ipk].
If you want to serve as a ftp server then you need to install utftp [utftpd_0.2.4_arm.ipk] or troll-ftpd [troll-ftpd_1.28-cg2_arm.ipk]. Alternatively, you can ftp to port 4242 on the Zaurus which is a very basic ftp service.
Alternatively, you can also enable the ftp daemon within inetd. To do that, uncomment the ftp entry in /etc/inetd.conf and restart inetd.
|
Make sure you use tcp wrapper as it is slightly more secure. Then enable tcp wrapper security by creating hosts.allow and hosts.deny as follows:
|
# su # echo "ALL:ALL" > /etc/hosts.deny # echo "in.ftpd: 192.168.129., 192.168.1." >> /etc/hosts.allow |
Add any IP range you want to give access to in addition to the above.
There is a few things that need to be done before you can install Apache:
|
# su # mkdir -p /hdd2/ramfs/www # ln -sf /hdd2/ramfs /mnt/ramfs # ln -s /hdd2/ramfs/www /usr/local/apache |
Now we are ready to install apache [apache-1.3.27-php-4.2.3_0.1_arm.ipk]
When apache is installed you need to do the following:
|
# su # ln -s /usr/local/apache/bin /usr/local/apache/src |
(you can also fix apachectl to look at the right place instead of creating a link)
You can now start apache with the following command:
|
# su # cd /usr/local/apache/bin # ./apachectl start |
You can stop apache with the following command:
|
# su # cd /usr/local/apache/bin # ./apachectl stop |
I have also created a opie-sh script [apachegui_0.1_arm.ipk] which allows you to stop and start apache from the GUI. You will be required to configure sudo and add /usr/bin/apache to the allowed list for zaurus user (see sudo).
Alternatively, you can also install boa [boa_0.94.12_arm.ipk] which is a light-weight http daemon if you just want simple web server.
There are several browsers available such as NetFront, Opera, Konqueror, Firefox, Minimo, Dillo, Links, ...
keypepple [opie-keypebble_1.0.0-1_arm.ipk] can be used as a vnc client to other machines or even the local one.
fbvnc server for Qtopia
You can run a vncserver on your Zaurus to enable remote access to its desktop. However, since the available fbvnc server packages were build for other models, it does not work reliably on the C3000 and C3100.
I have build my own version of fbvncserver [fbvncserver-c3000_0.9.4-0.3_arm.ipk] which allows me to view the Zaurus desktop remotely using a vnc client such as tightvnc or using a web browser to connect to port 5800 on the Zaurus.
I also managed to get the mouse pointer working through the vnc server as well as the keyboard. However, some keys are still wrongly mapped. If you just want a read only vnc server without remote mouse and keyboard entry, then do the following to disable them:
|
# su # rm /etc/rc.d/init.d/fbvncinput # reboot |
Alternatively, you could also just restart Qtopia instead of rebooting the Zaurus. To do that instead do the following:
|
# su # /usr/local/bin/fbvncinput stop # killall qpe |
If you want to re-enable the keyboard and mouse, then just recreate the the symbolic link to fbvncinput and reboot your Zaurus:
|
# su # ln -s /usr/local/bin/fbvncinput /etc/rc.d/init.d/fbvncinput # reboot |
Alternatively, you could also just restart Qtopia instead of rebooting the Zaurus. To do that instead do the following:
|
# su # /usr/local/bin/fbvncinput start # killall qpe |
Vncserver for Debian
Vncserver is part of the Debian PocketWorkstation bundle and is intended as a loopback service to connect to the Debian instance locally. However, there is nothing preventing it from being accessed remotely as well. Vncserver listens on port 5901 and can be easily accessed through keypebble and/or tightvnc [tightvnc-1.2.9_javabin.zip]. tightvnc is a java application and can be installed on any machine that runs java. It can also be installed under a webserver such as Apache. Simply make a directory such as vnc under the document root and copy index.html and VncViewer.jar into there.
|
# mkdir -p /mnt/ramfs/www/htdocs/vnc # cp index.html /mnt/ramfs/www/htdocs/vnc # cp VncViewer.jar /mnt/ramfs/www/htdocs/vnc |
Then just point your browser at it: http://zaurus/vnc
Install the following packages:
To mount a drive type:
| # smbmount //hostname/share /mnt/smb -o username=user |
To unmount type
| # umount /mnt/smb |
Or use the smbmounter GUI interface. Make sure you give it root access (see Run as root section). The NETBIOS name needs to be an IP address or if you provide a hostname, make sure in your /etc/hosts file on your Zaurus you have given the hostname an alias in all uppercase letters. For example if you have a hostname mylaptop mapped to an IP of 192.168.1.10 then you will need the following entry:
|
192.168.1.10 mylaptop MYLAPTOP |
Once you have created an entry with a valid share name and username/password, then you can mount and unmount the share by clicking on the appropriate buttons. If the share is valid and your username/password is correct, then the smb share will be mounted under /hdd3/Documents/NetworkFolders/hostname/sharename
To mount a drive type:
| # mount /dev/sda1 /mnt/usbstorage |
To unmount type:
| # umount /mnt/usbstorage |
You can also create the following simple script to automatically mount USB drives or use the more advanced usb-storage that I've written. Here is the simple version:
|
Hint: Once a USB disk is mounted, it will appear in the Files tab as well. In addition, creating a link to the mounted drive from /home/samba will allow it to be shared as well through Samba. In general, most devices such as memory sticks, cameras, mp3 players and usb harddrives have their disk partitioned as a primary partition and can be found at /dev/sda1. However, if you have partitioned your disk as an extended partition, then it most likely would be /dev/sda5. Do a fdisk -l /dev/sda as root to check and change the above accordingly.
In addition, if you are using a USB Hub, then you will be able to attach and mount multiple devices, usually up to four disks. In such a case, the devices will be /dev/sda, /dev/sdb, /dev/sdc and /dev/sdd. I have created a more advanced script which can automatically mount up to four usb disks and also automount disks partitioned as primary or extended partitions. Place this usb-storage into /etc/hotplug/usb and remove usb-storage.off if there already is one (it will generate a new one). The script will also create mount points under /mnt and update /etc/fstab as required. Alternatively, you can simply install [automounter-c3000_0.5.0_arm.ipk].
In addition to external harddisk enclosures with USB interfaces and memory sticks, most MP3 players, cameras and some mobile phones also have an internal storage that can be mounted on the Zaurus if they have a USB interface. Most of those devices will be recognised by the Zaurus as a Mass Storage device by default, however, some newer devices are not on the Zaurus' device list and you will need to update it to let the Zaurus know about the new device (see SonyEricsson section for an example).
The automounter script only automatically mounts the first mountable partition. If you have multiple partitions, then you will need to manually mount the remaining partitions or modify the automounter script to also mount the remaining partitions.
The C3000 and C3100 can also read NTFS formatted USB disks. You will need to copy ntfs.o to /lib/modules/2.4.20/kernel/fs/ntfsfs/ or install [ntfs-zaurus_2.4.20_arm.ipk].
A useful applet that I wrote [qtopia-usbapplet_1.0.3_arm.ipk] can be used to unmount the USB disks prior to unplugging them without needing to go to the command line.
The SD and CF cards are automatically mounted when they are inserted. In addition to mounting and unmounting them, additional hooks and controls can be added to the scripts such as invoking /etc/rc.d/init.d/mntloop (automounter) to check for the presence of a swapfile and enabling it when the card is mounted and disabling it when the card is unmounted. The SD card is auto mounted by the /etc/sdcard/sd_mem_ctrl script and this is where the control hooks need to be added. The CF card is auto mounted by /etc/pcmcia/ide.
Furthermore, by default, the SD card script only attempts to mount the first partition. If you have multiple partitions, then you need to enhance the above mentioned script to automatically mount additional partitions on the CF or SD cards.
Some partitions/file systems such as / cannot be unmounted. Some are also mounted as read-only. In order to modify the files on those file systems, you need to remount them as read/write and then remount them back to read-only after you have done what you wanted.
To remount as read/write:
| # mount -o rw,remount / |
To remount as read only:
| # mount -o ro,remount / |
The following demonstrates how to configure a 128MB swap file on the C3000's harddisk. Normally a swap file is not required unless you are running many X/Qt applications and doing onboard development. Most users with X/Qt will probably only require 32MB - 64MB swapfile.
|
# su # dd if=/dev/zero of=/hdd3/swapfile bs=1048576 count=128 # mkswap /hdd3/swapfile # swapon /hdd3/swapfile # echo "/hdd3/swapfile swap defaults 0 0" >> /etc/fstab |
To enable swap:
|
# su # swapon /hdd3/swapfile |
To disable swap:
|
# su # swapoff /hdd3/swapfile |
To check swap status:
|
# cat /proc/swaps |
In addition, you can install [qtopia-memoryapplet_1.0.4_arm.ipk] which allows you to monitor both your physical memory as well as your swap. It even can manage the swapfile creation for you. This version can create a swapfile with a max. of 512MB. It also gives you the option to create the swap on the internal HDD (/hdd3), CF card and SD card. The created swap file is also called swapfile rather than .swapfile.
By default /tmp is mounted from /dev/shm as a 1MB tmpfs. This 1MB is taken from the 64MB of RAM and for most applications, 1MB of tmp is sufficient. However, some applications such as kismet or qpdf2 may require a bit more than just 1MB. Opening some large pdf files for example might be very slow or does not work at all because there is insufficient space in /tmp. Some applications can utilise /home/root/tmp instead, but not all can.
You can increase the amount of memory allocated to /tmp. But remember that memory for /tmp is taken from RAM, so increasing /tmp will decrease the amount of physical available RAM.
To do that, you need to edit /etc/fstab and /root/etc/rc.d/rc.rofilesys and replace 1m with for example 2m to increase the size of /tmp to 2MB. Remember to remount / to rw before editing rc.rofilesys and remount it back to ro once done. Finally, you need to reboot the Zaurus in order for the change to take effect.
You can use a loopback filesystem which is a mounted filesystem image to do various things such as compressing files or overlaying a filesystem with another format.
The cram filesystem is a read only compressed filesystem format. The following demonstrates how to configure cramfs to preserve some space. Only convert directories to cramfs if you are sure those directories are read-only, ie you are never going to change or add any files there. You will need either [cramfs-1.1_arm.bin.tar.gz] or [mkcramfs.tar.gz], or install gcc which also includes it. Here is an example for compressing and mounting the jre directory:
|
# su # mkcramfs /usr/lib/jdk1.3 /hdd3/jre13.cramfs # rm -r /usr/lib/jdk1.3/* # mount -t cramfs -o loop /hdd3/jre13.cramfs /usr/lib/jdk1.3 |
So far I have crammed the following:
Note that mkcramfs stores the whole image in memory before writing it to disk, so make sure you have a sufficiently sized swap file enabled before running mkcramfs.
Also, there are only 2 loop devices by default on the C3000 and C3100, but you can create more loop devices. You will need to recreate them each time you reboot, so it would be better to automate it in a start script which you can use to automatically mount the cram archives as well. Here is how you create /dev/loop2 to /dev/loop6
|
# for i in 2 3 4 5 6 > do > mknod /dev/loop$i b 7 $i > done |
You might also want to add an entry into fstab so the cramfs archives can be automatically mounted. Copy mntloop to /etc/rc.d/init.d and link it to rc5.d and rc6.d
|
# su # cp /home/zaurus/Documents/custom/mntloop /etc/rc.d/init.d # ln -s /etc/rc.d/init.d/mntloop /etc/rc.d/rc5.d/S50mnt # ln -s /etc/rc.d/init.d/mntloop /etc/rc.d/rc6.d/K50mnt # echo "/hdd3/jre13.cramfs /usr/lib/jdk1.3 cramfs loop,ro 0 0" >> /etc/fstab |
mntloop will create new loop devices and check /etc/fstab at bootup time and mount any valid entry for cramfs it finds. The Linux boot process will mount entries in /etc/fstab by default, but it can only mount 2 loop partitions because there are only that many default loop devices, so any additional entries in /etc/fstab will fail to mount. mntloop will mount any additional entries it finds after creating the extra loop devices. At system shutdown or reboot, it will cleanup and unmount anything mounted as a loop device.
The automounter package [automounter-c3000_0.5.0_arm.ipk] will install mntloop and also install the usb automounter.
Similar to the cram filesystem is the squash filesystem which is appendable, ie you can add files to it. In order to use the squash filesystem, you will need to install the squashfs module [kern-mod-squashfs_c3000-2.1-2_arm.ipk].
Alternatively, if you don't need a compressed filesystem but want a read and write access instead, then you can create an ext2 or ext3 formatted loopback filesystem. You would need to pre-allocate a chunk of space for it and the files won't be compressed at all.
For example, to create a 128MB loopback filesystem on /hdd3 called expansion.ext2 do the following:
|
# su # dd if=/dev/zero of=/hdd3/expansion.ext2 bs=1MB count=128 # echo y|/sbin/mke2fs /hdd3/expansion.ext2 # mkdir -p /home/expansion # mount -o loop -t ext2 /hdd3/expansion.ext2 /home/expansion # echo "/hdd3/expansion.ext2 /home/expansion ext2 loop,rw,noatime 0 0" >> /etc/fstab |
Alternatively, if you rather create an ext3 filesystem instead of an ext2, do the following:
|
# su # dd if=/dev/zero of=/hdd3/expansion.ext3 bs=1MB count=128 # echo y|/sbin/mke2fs -j /hdd3/expansion.ext3 # mkdir -p /home/expansion # mount -o loop -t ext3 /hdd3/expansion.ext3 /home/expansion # echo "/hdd3/expansion.ext3 /home/expansion ext3 loop,rw,noatime 0 0" >> /etc/fstab |
Now you could move all the files from /usr/local to the newly mounted loopback filesystem and then relink /usr/local to the loopback filesystem. This way, we moved some files off to hdd3 and extended the /usr/local directory to have a higher limit of 128MB. Similarly you could do something similar with /opt/QtPalmtop/share and many other directories as well. However, doing this will impact on performance a little bit. The overhead caused by the loopback filesystem and the speed of the MicroDrive are factors to consider and thus, choose files and directory that are not frequently used to be moved to the loopback filesystem.
On C3000:
|
# mkdir -p /home/expansion/usr/local # cd /usr/local # tar cvf - * | tar xvf - -C /home/expansion/usr/local # mv /hdd2/usr/local /hdd2/usr/local.bak # ln -s /home/expansion/usr/local /hdd2/usr/local |
Once you have tested that everything still works, you can remove /hdd2/usr/local.bak
On C3100:
|
# mkdir -p /home/expansion/usr/local # cd /usr/local # tar cvf - * | tar xvf - -C /home/expansion/usr/local # mv /home/root/usr/local /home/root/usr/local.bak # ln -s /home/expansion/usr/local /home/root/usr/local |
Once you have tested that everything still works, you can remove /home/root/usr/local.bak
Make sure you install the automounter package [automounter-c3000_0.5.0_arm.ipk] or else your loopback filesystem might not get automatically mounted after a reboot.
Alternatively, instead of moving files manually after they have been installed, you can also just install files to the loopback filesystem directly. The default installer won't let you do it, but my xipk install script (which is part of my ipktools package) does allow it.
By default xipk installs to /hdd3/programs, so you should mount your loopback filesystem as /hdd3/programs or change /etc/xipk.conf to contain the mount point of your loopback filesystem. Then you can do the following to install applications to hdd3:
|
# xipk ipkfile |
The default SD/MMC driver only supports SD and MMC cards of sizes up to 1GB. Using the updated driver which is taken from the C3200, it is possible to use larger SD cards. 2GB and 4GB SD cards are recognised and can be used once this updated driver is installed.
However, some applications have 1GB or 2GB (upper limit for FAT16 partitions and maximum filesize on FAT16) hardcoded as the upper limit and thus will miscalculate the amount of free space on the larger SD card. Also, this driver is not loaded during emergency boot or the NAND loader so you cannot use the larger SD card to flash your Zaurus or do NAND backup/restore.
Also, for 4GB SD cards, be very careful when ejecting the card. If you eject it while it is still mounted or while it is being written to, then you might corrupt the integrity of the device and might not be able to use it anymore. Since it is larger, it needs more time to flush the buffers and thus this problem occurs less on smaller SD cards. If this occurs, however, even a fdisk or reformatting of the SD card won't work (the smaller SD cards can be reformatted in some digital cameras but not many cameras can recognise the larger SD cards either so you cannot use them to reformat a broken SD card). To prevent this from happening in which case you need to claim a warranty replacement so make sure you got proper warranty when you purchase large SD cards, you can change the SD mount options to mount the SD card with the sync option and also increase the wait delay from 1 second to 3 or 5 seconds during the SD unmount process.
To make the SD card mount with the sync option, modify /etc/sdcard/sd_mem_ctrl change the following from
|
FATOPTS="-o noatime,umask=000,iocharset=utf8" OPTS="-o noatime" |
to the following
|
FATOPTS="-o noatime,umask=000,iocharset=utf8,sync" OPTS="-o noatime,sync" |
To increase the wait delay during the SD unmount, modify /etc/sdcontrol and change the following from
|
sleep 1 |
to the following
|
sleep 3 |
The Zaurus has an IrDa port build-in, but for security and power saving, it is disabled by default. You can temporarily enable it to receive files. Use the IR-Receive tool under the Settings tab and enable it to receive files. You should disable it once you finished receiving files.
You can also send files via IrDa. For that, select the file you want to beam from the Files Tab and hold the stylus on it for a few seconds and select Send by beam.... I have tested this feature and it works fine to send and receive files to my Laptop (Toshiba Libretto 50CT) and Mobile phone (Sony Ericsson K750i).
The stock Sharp ROM does not come with bluetooth enabled. You can add bluetooth capability to the Zaurus by either using a CF Bluetooth card or a USB Bluetooth dongle. I've tested this using a Socket Bluetooth CF card which I think is great because it is exactly the same size as a CF memory card. It has a CF I form factor and no bits sticking out when inserted into the CF slot on the Zaurus. I have also tested this with a tiny WIDCOMM compatible USB Bluetooth dongle.
In order to enable and use Bluetooth, you need to install a bluetooth stack such as bluez which includes the required kernel modules as well as needed command line tools. You can also add some plugins to the graphical Network config tool to enhance it to handle bluetooth connection types. There are currently two such plugins available, one for PAN (Personal Area Network) and one for DUN (dial up bluetooth). Once they are installed, you will see additional options in your Network config tool.
Here are the files you need:
The bluez package is essential while the others are optioanl. If you find newer updated versions of those, then use them instead. Once you have installed the above packages, you can begin to setup and configure your bluetooth stack. I have also created a single package [bluetooth-support_1.23_arm.ipk] which contains the above as well as additional obex packages. There is also a bluetooth lite package which only contains the GUI scripts. The qshdlg package needs to be installed to use the bluetooth GUI.
The first thing you need to do is check your config and make sure your bluetooth stack has initialised successfully.
|
# su # /etc/rc.d/init.d/bluetooth restart # hciconfig |
You will see something like this:
hci0: Type: UART
UP RUNNING PSCAN ISCAN RX bytes:250 acl:0 sco:0 events:12 errors:0 TX bytes:446 acl:0 sco:0 commands:12 errors:0 |
Then you need to search for bluetooth enabled devices you want to use and do the pairing.
|
# hcitool scan |
Note that unless the other bluetooth devices are configured to be visible, you won't be able to find them. Write down their mac addresses. (xx:xx:xx:xx:xx:xx is the format for the mac addresses and each device will have a unique address), eg:
|
xx:xx:xx:xx:xx:xx K750i xx:xx:xx:xx:xx:xx OQOU1 xx:xx:xx:xx:xx:xx C3000 |
To find out the capabilities of those devices do the following with their corresponding mac address:
|
# sdptool browse xx:xx:xx:xx:xx:xx |
You can initiate the pairing from each of those devices and make sure the PIN matches. The Zaurus stores its PIN in /etc/bluetooth/getpin and /etc/bluetooth/pin
/etc/bluetooth/pin contains the pin number that you enter in any other Bluetooth device that pairs with the Zaurus.
/etc/bluetooth/givepin contains the pin number that your Zaurus will automatically give to another Bluetooth device if pairing from the Zaurus. givepin is a script which must print out a string of the format "PIN:1234" where 1234 is the pin number, so you only change that part of the script to change to pin number.
Once the devices are paired with your Zaurus and you have determined what capabilities they have, you can setup and configure your Zaurus to use them.
The bluetooth qshdlg GUI or the network config tools plugins can be used to configure the following.
A PAN allows you to access services on the other bluetooth enabled devices like on a small network with TCP/IP connectivity. This requires that the other d