Best viewed on NetFront (640x480)

my Zaurus SL-C3000

[icon]pdaXng - the NextGen pdaXrom for SL-C3000


pdaXng is the next generation of pdaXii13 and will be based on the EABI rather than OABI which allows mixed mode floating point emulation (ie hardfloat and softfloat) and a modern 2.6 Linux kernel instead of the old legacy 2.4.20 kernel introduced by Sharp and uLineo. The default bootloader for pdaXng will be the default Sharp bootloader rather than u-boot, which is harder to install and only used by advanced users wanting to dual-boot. Instead, altboot and kexec will be available similarly to OpenZaurus and Angstrom, but easier to use.

Another goal of pdaXng will be compatability with Debian armel (which uses EABI) and Angstrom so you can install and run Debian armel packages as well as Angstrom packages as if they were pdaXng packages. Ideally, pdaXng will be a leaner and meaner Debian with some of the Debian overheads removed, the feeds will be build optimized for xscale/armv5te rather than armv4l, and usability enhancements added so it is optimised and customized for the Zaurus. The ultimate goal is to exploit all of the Zaurus' capabilities and features so you can use your Zaurus to its full potential.

pdaXng will boot using the Sharp bootloader which reads the primary kernel from NAND and then loads the rootfs from a predefined location. These locations are defined depending on the flavour of pdaXng installed:

  • pdaXng MD (Alice) will read the rootfs from the first partition of the internal MicroDrive and not use the internal NAND. This is perfect for the SL-C3000 but can also be used for the SL-C3100 and SL-C3200.
  • pdaXng ND (Sally) will read the rootfs from the second partition of the internal NAND and mount the internal MicroDrive as extra storage if it exists and is appropriately formatted. This is suitable for the SL-C1000 and also the SL-C3100 and SL-C3200.
  • pdaXng SD (Snoopy) will read the rootfs from the first partition of a SD card. This is suitable for SL-C3000, SL-C3100, SL-C3200 and SL-C1000.

Once the rootfs is mounted, altboot and kexec can optionally be invoked which will allow you to chain boot another system that can either use the same kernel or even a different one altogether. The rootfs for this chained system can be located on any unused partition or can even be a loop filesystem image.

Note that only Alice will be released initially with the other flavours gradually added if there is demand for them.

Hardware Support in pdaXng:

The SL-C3000 series of Zaurii which include the SL-C3000, SL-C3100, SL-C3200 and SL-C1000 have great hardware which needs to be fully supported by the kernel. The aim of pdaXng is to provide such a kernel based on an up to date 2.6 Linux kernel with extra Zaurus specific patches where required to make a specific hardware feature work correctly.

  • The CPU is based on armv5tel which supports both XScale and iwmmxt instruction sets. The compiled binaries will be optimsed for this hardware architecture which will give it a performance boost.
  • CPU scaling is available in the kernel and can control power consumption on the Zaurus rather than using a user mode daemon which is more efficient and effective. The priority will be minimizing the power consumption to give the Zaurus maximum battery efficiency rather than overclocking.
  • The touch screen needs to work in both portrait and landscape mode with the right coordinates to reflect the screen orientation.
  • The internal 4/6 GB MicroDrive needs to be supported and the distro should be able to boot off it without needing to pivot the rootfs. Partitions on any drive need to be auto mounted by default.
  • The USB host capability of the USB OTG feature on the Zaurus when the USB host cable is plugged in needs to be activated automatically and common USB devices such as mouse, keyboard and memory sticks/harddrives should be able to be automatically recognized and configured.
  • The USB client feature also needs to work and support both modes, USB storage device emulation and virtual network device emulation.
  • CF card service should be able to mount the internal as well as any external CF devices and load the appropriate modules for the card automatically.
  • SD card service should be able to recognize any SD card including larger ones and mount them appropriately.
  • IrDA needs to be supported although it is not much used.
  • Sound needs to be working, both the beeper as well as the speaker. Auto sensing should be able to automatically switch between headphones and speaker mode depending on whether a headset is plugged in or not.
  • Rotation should be automatically invoked once the display is flipped.

Keyboard Mapping

Since the Zaurus has a Japanese keyboard layout instead of an English one, it needs to be reflected in its default config. Extra key mappings should also be added to make it more usable for applications in both portrait and landscape mode. The special keys on the keyboard as well as the keys on the back of the Zaurus should also be enabled and mapped so that applications in rotated mode can take advantage of them. Additionally, the sticky key functionality needs to be enabled by default.

Window Manager

The matchbox window manager is well suited for small PDA like devices, but needs a bit of customization to make it look and feel good. A complement of applets is available and should be fully customised to enhance the usability. Alternate window managers such as openbox, icewm, fluxbox and enlightenment are also available and should be easily installed and enabled.

Language Support

The default language will be English. Support for other languages is provided via way of unicode fonts and input method support for entering extended characters and using a virtual keyboard. Primarily, support will be available for Asian languages in particular Chinese and Japanese.

Subsystems and Runtimes

The GUI will be X11 based running primarily GTK and Gnome based applications. QT4 can be supported also but not by default since it takes up considerable resources. Python and Perl scripts will be avoided where possible for core system services since they are interpreted languages and much slower to load than compiled code. Java support will be added as a runtime option to run Java applications. Until Sun's official opensource Java 7 is available and optimised for the Zaurus, GNU classpath and jamvm will be used as the underlying runtime environment for Java applications. GTK binding will also be enabled. In addition, Java Mobile edition emulator runtime will also be available to run Java midlets. A java plugin for a web browser to run Java applets might also be available depending on whether it can be optimized enough to run adequately on the Zaurus.

Config Tools

The config tools should work in GUI mode as well as command line mode and should preferably be all integrated into a single control center. The following are custom config tools for pdaXng:

  • wmctrl - xlib controls
  • ax - xkeys controls
  • xdialog - x dialog box
  • pdaxcfg - manipulate /etc/pdaxng.conf [get|set|show]
  • zbackup - makes flashable system snapshot
  • zinfo - zaurus info tool [model|dog|version|kernel|hostname|power|mem]
  • ztime - set or display time [set|show]
  • zdate - set or display date [set|show]
  • usbmode - configures and switches between storage and net mode [storage|net|status]
  • zsplash - displays splash screen [on|off|status|show]
  • zwelcome - displays welcome message, read /etc/motd [on|off|show]
  • mouseclick/zmouse - emulates mouse tap
  • khctl|zkey - keyboard mapping control [usb|native|sticky|novice|expert|reload|config]
  • xlauncher/zlauncher - app launcher with wrapper to show throbber/progress and additional window control
  • zvol - controls volume as well as output device [+|-|speaker|headphone|status]
  • zpower - cpu power mode, overclock/underclock, apm, screensaver/dpms [status|on|off|screensaver]
  • zswap - swap file/partition management [on|off|create]
  • zdrive - shows existance or mapping of external/internal storage devices [sd|cf|md|usb]
  • zdisplay/zrotate - rotate the screen as well as control brightness and size [brighter|darker|+|-|portrait|landscape|off|rotate|vga|svga]
  • zlanguage - enable or disable CJK support [status|disable|enable|set]

Packages

pdaXng aims at utilising already existing feeds rather than building up a complete duplicate repository. Packages from Angstrom and Debian armel feeds are mostly compatible for pdaXng which will use packages from those feeds where possible. However, some packages will need to be customised to be pdaXng and Zaurus specific and need to be taken from the pdaXng feed rather from compatible feeds in order to take advantage of the Zaurus' power.

Additionally, pdaXng also has mega packages which when installed add a whole subset of predefined related packages all at once. There are three main mega packages that will install the three main flavours of pdaXng:

  • pdaxng-base - the base pdaXng system
  • pdaxng-full - this includes the base system plus all the application mega packages
  • pdaxng-pro - this includes the full system plus development tools

It is envisioned that a basic Angstrom install should be easily turned into a pdaXng system by installing the pdaxng-base mega package into Angstrom. Angstrom is build upon a sound foundation and thus a potential hacker's dream system but it lacks in the usability department for general users. This is where pdaXng improves upon Angstrom. pdaXng was not designed to compete with Angstrom but rather it is an attempt to supplement and improve in areas where Angstrom is lacking.

The following mega packages are part of pdaxng-base:

    • pdaxng-essentials
    • pdaxng-gui
    • pdaxng-config
    • pdaxng-matchbox

The following mega packages are part of pdaxng-full:

    • pdaxng-scim
    • pdaxng-web
    • pdaxng-net
    • pdaxng-multimedia
    • pdaxng-speech
    • pdaxng-office
    • pdaxng-dictionary
    • pdaxng-games1
    • pdaxng-games2

The following mega packages are part of pdaxng-pro:

    • pdaxng-zgcc
    • pdaxng-java
    • pdaxng-lamp

Applications

The default pdaXng will have the basic essential tools pre-installed and configured to work right after installation. These are essential packages and included by default:

  • command line tools (pdaxng-essentials)
    • vim (replacement for vi)
    • bzip2 (compression utility)
    • unrar (uncompression utility)
    • unzip (uncompression utility)
    • diffutils (file comparison utility)
    • ipktools (ipk building tools)
  • GUI integration (pdaxng-gui)
    • xdialog (dialog tools)
    • wmctrl (X controls)
    • mouseclick (mouse control)
    • glipper (clipboard)
    • gsnapshot (screen capture)
    • xscreensaver (screen saver)
    • wallpaper (random background images)
    • gnome-bluetooth (obex gui)
    • feh (image viewer)
    • xfe (file manager)

    Additional applications can be added from feeds either individually or through some predefined mega bundles that contain a host of the most commonly used and best of breed applications for each category:

    Accessories
    • Archive Manager (xarchiver, fileroller)
    • Calculator (xfe calculator)
    • Character Map (gucharmap)
    • Sync Tool (syncml)
    • Text Editor (notecase)
    • Terminal (xterm, mrxvt, rxvt)
    • Process Manager (gps)
    • Bluetooth (gnome-bluetooth)
    • Handwriting (cellwriter)
    • Onscreen Keyboard (xkbd)
    • PDF Viewer (epdfview, xpdf)
    • File Manager (xfe)
    • Screen Capture (gsnapshot)
    • ClipBoard (glipper)

    Multimedia - music and video players, graphics viewer and manipulation tools installed by pdaxng-multimedia and pdaxng-speech mega packages

    • Mixer/Volume Control
    • Image Viewer (gqview)
    • Video Player (mplayer+smplayer)
    • Audio Player (mplayer+quasar)
    • Speech Engine (festival/mbrola)
    • Sound Recording (khdrecord)
    • WebCam Viewing (gqcam)

    Internet - Additional applications for accessing the web such as alternate browsers, email clients, FTP clients and IM clients. The pdaxng-web mega package installs these.

    • Wifi Detector (wifi-radar)
    • Network Shares (LinNeighborhood)
    • Instant Messaging Client (pidgeon)
    • FTP Client (gftp)
    • Email Client (claws-mail)
    • Web Browser (midori,iceweasel)

    Networking - Advanced networking tools to manage and utilise common network features. The pdaxng-net mega package installs these.

    • VNC Server (x11vnc)
    • VNC Client (tightvnc)
    • Net Client (putty)
    • Packet Analyzer (wireshark)

    Office - Productivity tools such as a word processor, spreadsheet application and dictionaries. These are included in the pdaxng-office and pdaxng-dictionary mega packages.

    • Word Processor (abiword)
    • SpreadSheets (gnumeric)
    • NoteTaking (xournal)
    • Flow Diagrams (dia)
    • Project Management (planner)
    • Spelling Engine (aspell)
    • Dictionary (qbedic,stardict)
    • PDF Viewer (evince,epdfview,xpdf)
    • EBook Viewer (opie-reader)
    • PIM Suite (pimlico)

    Games - Extra games and emulators to play even more games. These are contained in the pdaxng-games1 and pdaxng-games2 mega packages.

    • DOS Emulator (dosbox)
    • snes
    • Digger
    • MineSweeper (xdemineur)
    • Tetris (tetrix)
    • TicTacToe (tictac)
    • Solitaire (xpat2)
    • Space Invaders (xinvaders)
    • xkobo

    System Tools - These are tools to configure and customize pdaXng. They are contained in pdaxng-config mega package.

    • Package Manager
    • Mime Type Associations
    • Proxy
    • ScreenSaver
    • Wallpaper
    • Fonts
    • Theme Manager
    • Menus
    • ToolBar/Panel
    • Keyboard
    • Input Method (scim)
    • CPU
    • Power
    • Date/Time
    • USB
    • BlueTooth
    • Network
    • Samba
    • Mounts
    • SysInfo

    MultiBoot

    As mentioned earlier, pdaXng uses altboot and kexec for multi-booting rather than u-boot. This means it is using the original bootloader as shipped by Sharp so NAND backups and restores work as usual. When using altboot and kexec to chain boot another distro, there are a few caveats and also a few definitions are used as outlined below:

  • rootfs cannot use FAT or FAT32 filesystem
  • on MD means rootfs on first partition of MicroDrive
  • on CF means rootfs on first partition of CF card
  • on SD means rootfs on first partition of SD card
  • loop image is a large file emulating an ext3 partition containing a rootfs and can be located on any mountable filesystem such as a MicroDrive, CF or SD card
  • 2.6 based distros are Angstrom, Poky, pdaXrom, Debian, Android, etc...

    The various flavours of pdaXng and their potential abilities to multi-boot other distros are outlined and summarised below:

    pdaXng Alice (MicroDrive)

    pdaXng Alice is based on AngstromSpitzX11Office and runs from a rootfs located on a MicroDrive. If altboot is used, there is a potential to boot to the following:

    • any 2.6 based distro (on CF/SD or loop image)
    • maybe pdaXii13 Alice (on CF/SD or loop image)
    • maybe pdaXii13 Sally (on NAND except C3000)
    • maybe Cacko (on NAND except C3000)

    pdaXng Sally (NAND)

    pdaXng Sally is based on AngstromAkitaX11 and runs from a rootfs located on NAND. If altboot is used, there is a potential to boot to the following:

    • any 2.6 based distro (on MD/CF/SD or loop image)
    • maybe pdaXii13 Alice (on MD/CF/SD or loop image)

    pdaXng Snoopy (SD)

    pdaXng Snoopy is based on AngstromSpitzX11Office and runs from a rootfs located on SD. If altboot is used, there is a potential to boot to the following:

    • 2.6 based distro (on MD/CF or loop image)
    • pdaXii13 Alice (on MD/CF or loop image)
    • pdaXii13 Sally (on NAND except C3000)
    • Cacko (NAND except C3000)

    Multi-booting is not a priority in pdaXng. Although the capability is there, and it is intended to make it as easy as possible, time constraints will mean it will be the lowest priority and virtually no testing will be done in this area.



    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.