0. Guylhem ROM ChangeLog ----------------------------------------------------------------------- Known issues: - power button not working (use suspend in the start menu) - need a kernel fix - no thick fonts in the launcher - new fonts under work - network icon not working - under work Version 1.0 - Fixed /etc/wlan.conf not having a default entry necessary to use /usr/local/bin/net.wifi* scripts - Fixed sd and cf cards mounting by default in vfat (/etc/pcmcia/ide.opts /etc/sdcontrol and /etc/fstab must all have auto) - Fixed . key not making . in NumLock mode - Verbose init startup - Improved boot time (removed kernel message- the framebuffer is too slow to display them on time) - Improved resume time (made usb default to no function) - created start-qtopia launched from init which only starts qtopia if there is no bash running - allows to terminate qtopia cleanly with a new start/reboot ("terminate" will bring you back to the console) - Replaced Sharp logo by a Linux logo - Added a nice ascii art for login screen - Added Stowaway/Axim bluetooth keyboard shortcuts supports to hidp and improved compatibility - Removed the crocodile splash screen, thus saving 900kb - Replaced busybox beta by a much more complete/current binary (1.01 stable) - Bluetooth and USB keyboards work along with the internal keyboard without any problem. Added shortcuts (F1->F12) for Zaurus custom keys. - Record/Light keys are working again, thanks to OLDQT compatibility mode - Added more network profiles to the Get online application - Added more fonts - Removed screenshot applet (please use scshot tool instead!) - Updated bluez to 2.17 - Made sure every application use VGA mode (no more 320x240 !) - Finished fixing the keyboard: fn+shift acts like AltGr, to get Alt use Escape-letter, to get Control use Numlock+letter - Fixed recalibration problems (/etc/ must be symlinked to /usr/etc) - Fixed /tmp problems with ipkg - using /home/tmp in ipkg.conf - Fixed Document tab bug: added /etc/mtab support to Busybox's mount. Using a /proc/mtab symlink caused problems, as explained in the man pages. Sharp did some ugly workaround and never noticed the problem came from mount missing mtab support. Musicplayer still can't manage that. - Removed useless and confusing symlinks usr/mnt home/etc home/usr Removing /home/samba /usr/mnt.rom will require editing binaries Version 0.9 - Qtopia bugs fixed. - Keyboard mapping fixed. - Replaced openssh by dropbear. - Added Sharp Qtopia 1.5(syst0006.dbk-QT-1.5) as a default front end - Fixed systemtime bug. - Known Bug: Power/Record holdkey events don't work - Known Bug: netsetup had to be replaced (refused to add services) Version 0.7 - Added syst0006.dbk-nogui - First release. - Known Bug: Qtopia related bugs. - Known Bug: Keyboard mapping not finished. 1. Installation instructions for Guylhem Distribution for the Sharp SL-6000: ---------------------------------------------------------------------------- a. Deduce which one you want. syst0006.dbk-nogui is command-line only (no GUI), while syst0006.dbk-QT-1.5 has Qtopia 1.5 included b. Rename the file to syst0006.dbk and put it on a Compact Flash card c. Reboot your Zaurus with the "Reboot" option in the start menu d. While it is starting, hold down the D and M keys simultaneously and press the reset key without releasing D or M This will bring you to the "SERVICE MENU". Press on "Right" four times, until you earch "PAGE 4", then press on "Down" until you select "6. NAND RESTORE", then press the "OK" button. You will see: file:SYST0006.DBK Execute restore? press ok Delete all flash data? press ok Restore... e. You will see a green progress bar at the bottom. Take a coffee break. f. When it's done it will say "Restore... OK" and the bottom bar will be green - you can now reset. Note: This installation uses the restore function to install the new ROM, which means it can coexist happily with the Sharp ROM files on your CF card, there is no need to remove them (in the event you want to restore your system back to the Sharp ROM someday). 2. Using the Guylhem Distribution ----------------------------------------------------------------------- Welcome to the Guylhem Distribution ! If you have made it so far, you are actually using it. What you must know: - it offers you a possibility to start in command line mode - it merges both internal partition into a big one - it allows you to write into that partition. 2.1. Using the keyboard with Qtopia ----------------------------------------------------------------------- Most of the development effort went into proper keyboard support. A separate file called README.keyboard is provided to explain the changes - why and how they were done. Basically, I wanted to use the internal keyboard, a USB keyboard and a Bluetooth keyboard all at the same time, without any mapping problem or external application. I quickly realised Qtopia did some default mapping to keycodes, which caused strange problems even with a /opt/Qtopia/etc/disablesetkey created to disable such default mappings. For example, the "A" key was generating a A but also a fn key. The only solution was to keep the keycodes of these "hardcoded" keys, swapping them around with the normal keys. For example, the fn key gives the same keycode as it previously did, which normally corresponds to the "A" keycode. They are swapped directly in the kernel. This is ugly, but it was the only way. Here is a quick explaination on how the keyboard now works: - pressing on a key will give you the letter - pressing on shift+key will give you the uppercase letter, or the second symbol printed on the key - pressing on fn+key will give you the symbol printed above the key - pressing on fn+shift+key will give you an international character following my default mapping mostly useful to french speakers. Please see README.keyboard if you want to change the mapping without using any external application The only difference when compared to Sharp default mapping is the addition of a fn+shift mode. But wait - there is more to come! A key I really miss on the Zaurus is the Control key. It is mostly useful for command line operation. Therefore: - pressing on fn+/ key (numlock) then on fn+key will give you the corresponding Control-key sequence. For example, to lock the console press fn+/ then fn+s. To unlock it, press fn+q. To go to the beginning of the line, press fn+a. To go to the end of the line, press fn+e. To leave the numlock mode, press fn+/ again. The Fn key is quite useful. Indeed, I really wonder why some useful actions such as raising/lowering the volume, the fontsize or the screen brightness haven't been mapped to shortcuts while they are on clamshell Zauruses. So I decided to create some shortcuts ! - pressing fn+home will open the application menu, much like using the home key previously did. This let you remap the home key to any other useful purpose - pressing on fn+calendar lowers the brightness, while fn+address increases it. - pressing on fn+menu lowers the volume, while fn+mail increases it - pressing on fn+user lowers the fontsize of the current application, while fn+light increases it. That's much better than fiddling with the respective applets, especially if you are typing an email and trying to concentrate on the mail instead of the music! Another thing which really annoyed me for long was the absence of short/long presses for external keys besides the light/rotate key. What is a short/long press? A short press is just hitting a key, while a long press is holding the key for ca. 1 second. Therefore, I added "long press" support for the external keys - ie power, record, volume, address, calendar, home, menu, user, cancel and ok all generate two different keycodes - one for short presses, one for long presses. I don't know how this could be best used yet, therefore I only did 4 new settings: - a long press on the light key rotates the screen (as before) - a long press on the user key turns the light on/off (I can not remember how many times I accidently hit the light key) - a long press on the cancel key goes to the beginning of the line - a long press on the ok key goes to the end of the line - a long press on the big round key toggles insert mode I expressly decided not to add short/long support to the arrow key because it makes impossible to repeat key events - ie you could not keep the "down" key held for example to move around in a file you are reading. Feel free to take advantage of the unused long keypresses (calendar/address/home/user/menu/mail) for any useful purpose. Please tell me if you want to suggest a default mapping to be applied to these keys. My final regret with the SL6000, which I also tried to fix, was the absence of a Jogdial like on the clamshell versions. The Power and Record buttons however were ideally placed for such a purpose. I therefore remapped their default action to long keypresses, while a short press on Power/Record will respectively generate a PageUp/PageDown event. There is only one problem - waking up the Zaurus with the Power button did generate bounces, which resulted in the Zaurus going back into suspend immediately. Therefore the Power button had to be unmapped. Hopefully, this kernel issue will soon be fixed. Meanwhile, use the start menu option "suspend" to suspend your Zaurus. 2.2. Using the keyboard in the command line ----------------------------------------------------------------------- To use the command line, you should either reboot and log in as root immediately when you are prompted to, or select the "terminate qtopia" option in start menu/reboot The keyboard should work like in Qtopia - only with some changes to take advantage of unused functions : - Power will scroll up, Record will scroll down the virtual console - Home will open a new virtual console and switch you to it, so that you can log in - User/Light will switch you back respectively to the previous/next console Qtopia will not start until you have closed all your bash sessions. 3. If you want to do that again at home ----------------------------------------------------------------------- a. Read tweaking-parts.txt, create-jffs2-initrd.sh, README.keyboard b. create your own zImage1 and initrd1 c. put them on a Compact Flash and use updater.sh You should not change the rescue kernel (zImage2) and initrd (initrd2) unless you know what you are doing. 4. File List ----------------------------------------------------------------------- README This file README.kbd create-jffs2-initrd.sh feed/ initrd.bin jffs2-test-mount.sh mtdparts mtdparts_tweak root-filesystem.tar.gz sharp-tools-1.0.1.tar.bz2 sl6000-root-rw-57M-embedix-qtopia15.tar.gz syst0006.dbk-1-0rc2 Qtopia 1.5 GUI Front End tweaking-parts.txt updater.txt 4. Roadmap ----------------------------------------------------------------------- Upcoming at anytime: - Tweak the libsdl a little more, possibly integrate the craig hardware acceleration and at least to allow 480x640 - Work at mplayer acceleration - Tweak softfloat (libsdl/mplayer/emulators suite with video acceleration *AND* softfloat resulting in vga video playback at a good framerate may be possible) - create softfloat mplayer libsdl snes9x dgen zpce sbcencoder prboom scummvm - fix hotplug for net usb/storage/serial/remove and bluetooth pan - fix sync stuff - replace by something cleaner (daemon ?) - add new fonts - default SD to auto - create some kind of sync for addressbook, zical like - rom script to swap between guylhem version and a clean /home with safe default through a .home_default.tar - create /public world writtable, served by a small ftp/http/obex daemon - add irda/light applet - move /etc/sdcontrol usbcontrol usbh, somewhere to clean paths and change libsl and other libraries accordingly - marge sd/cf applet into a single "Zaurus" applet, with the following features : - select usb host/net/serial/remove function - start network interfaces - eject sd/cf/cards - show network connection status and tx/rx - fix netmon for pan, etc - fix overclock util for 2nd battery - add a blogging application - use launchd instead of sysv rc.d style - add temptor, zuc, zpce, a new filemanager, petitepeinture Version 1.0 - stable with Kernel 2.4.18-guylhem - Externe distribution (based on Embedix hard float) - Qtopia 1.5 Sharp included in the flash step: fix remaining bugs Version 1.1 - stable with Kernel 2.4.18-guylhem - Externe distribution (based on Embedix hard float) - Qtopia 1.5 Sharp included in the flash - Qtopia 2.1 optional step: compile Qtopia 2.1 with Embedix toolchain complete zgcc with binutils &c fix busybox perms to allow ping for zaurus user create a feed add libsdl, snes9x, doom, hexen, quake map snes9x keys add an init.d script for dropbear start dropbear & samba & small ftpd/httpd in init 3&5 add support for apm_bp to the battery applet add a usbclient mode switcher add a ir/bt obex(send/recv)+chat utility make qkonsole accept latin1 input Version 1.2 - Kernel 2.4.18-guylhem - Externe distribution (based on Embedix, soft float or OpenEmbedded) - Qtopia 1.5 Sharp included in the flash in compatibility mode step: find out the best softfloat optimisation flags for PXA250, PXA270 step: create a crosstools chain by hand, along with the necessary binaries (use bitbake ?) step: select some applications to be recompiled and included in the compile tree Version 1.4 - Kernel 2.4.18-guylhem - Externe distribution (soft float) - Qtopia 2.1 TrollTech - Keep old Sharp apps in the flash in compatibility mode step: find out how to compile Qtopia2 step: fix oz-compat issues Version 2.0 - Kernel 2.6.xx - Externe distribution (EABI) - Qtopia 2.1 TrollTech - Keep old Sharp apps in the flash in compatibility mode step: finish the 2.6 kernel support step: test EABI breaks compatibility methods for old Sharp apps. 5. Helping ----------------------------------------------------------------------- Donations to paypal@externe.net are welcome if you like that ROM. If you prefer donating Zaurus hardware, that's fine too. I'd be especially happy if I could get a spare SL-6000 battery, or other machines. Because if you want the Guylhem Distribution to work on a specific Zaurus model, that is not possible unless you give me one :-) I can not purchase every Zaurus made by Sharp every year!