|
Sharp Zaurus SL-C750
http://viz.aset.psu.edu/ga5in/SharpZaurus.html
I have acquired a Zarus to research the functionality of a portable workstation... and to fuel my gadget lust. The SL-C750 fits the bill with its Linux operating system, wireless support, memory, screen size and processing power. It is infinitely hackable, thanks to Sharp's release of source code and documentation for developers.
I am interested in configuring the Zaurus to sync with a Linux desktop machine, as a portable web, vnc, ssh terminal, and as a handheld multimodal interface to larger scientific visualization systems.
These tips may also work for the SL-C700, SL-C760, SL-C860, SL-C3000. YMMV.
hardware
Sharp Zaurus Linux PDA SL-C750 aka sheperd
256MB Lexar Media SecureDigital memory card
AmbiCom WL1100C Wireless LAN IEEE 802.11b CompactFlash Card
Microtech Zio USB SD/MMC reader/writer
about multimodal interfaces
<cableguy>
In the near future, device convergence will change the way we work with our personal, portable electronics. A small handheld device will incorporate your wireless phone, text messaging, email, pda/pim functions, Internet access, reading, music, video, gaming, camera, identification, credit/bank card, navigation/gps and much more. New standards for document markup and input methods, for gestures and speech, are being research.
</cableguy>
IBM Multimodal Toolkit & WebSphere Everyplace Multimodal Browser - handheld interfaces to larger systems
W3C Multimodal Interaction Activity - web pages you can speak to and gesture at
MIT Wearable Computing - applications of small computers
flashing: operating system install
images
There are a number of kernel and file system images out there to install on your Zaurus. I've flashed mine more times than I can count trying them all. I'm currently very happy using the following on my 750:
CACkO Zaurus Qtopia ROM 1.21 + HotFix A inclides Kino2, SSH, bluetooth & USB device support
Make sure to do a backup before you do anything. And if worst comes to worst, full NAND backups of the original Japanese rom are available from Conics.
preparing a disk
ROM and kernel bundles are installed on the Zaurus via a removable media card. I'm using a 256MB SD card mounted on my Linux desktop with a USB reader/writer. The Microtech SD USB adapter is supported by enabling USB Mass Storage support (CONFIG_USB_STORAGE=m) and Microtech CompactFlash/SmartMedia support (CONFIG_USB_STORAGE_DPCM=y) in the kernel config. FYI, I also have IDE SCSI emulation support (CONFIG_BLK_DEV_IDESCSI=m) which may changes the device names.
To install the new system, follow the directions that come with the ROM package. Prepare a disk to flash your Zaurus on an SD or CF card, freshly formated fat16 with the proper files copied over. To flash a new kernel, the files must be renamed zImage, updater.sh & consolescroll.
Here is a generic example of making a card to flashing the kernel:
# mkfs.vfat -F 16 /dev/scsi/host1/bus0/target0/lun0/part1
# mount /dev/scsi/host1/bus0/target0/lun0/part1 /sd
# cp zImage-v13d-C750.bin /sd/zImage
# cp consolescroll /sd/consolescroll
# cp updater.sh.c750 /sd/updater.sh
# umount /sd
opening the system menu
This procedure will open the Japanese system menu and flash from disk:
power off the Zaurus
unplug the power adapter and remove the battery for 5 seconds to do a full reset
insert the battery, lock it and insert the disk
plug in the power and wait for the battery light to come on
hold in the OK button as you press the power button
select option 4 to flash install then select either SD or CF
a status screen will show progress up to 100% and then ask you to reset
remove the power adapter and battery again for 5 seconds
plug in the power adapter, replace and lock the battery
press the power buton to boot
If all goes well, the screen will show the progress of the kernel and/or rom flashing up to 100% and ask you to reset. You may also wish to clear the user memory when switching roms, which can be done by selecting option 3 from the system menu.
overclocking
Once an overclocking kernel is installed, the CPU & GPU can be overclocked at boot.
/etc/rc.d/init.d/overclock:
echo 100 > /proc/driver/w100/fastsysclk
echo 162 > /proc/cccr_change
# chmod +x /etc/rc.d/init.d/overclock
# ln -s /etc/rc.d/init.d/overclock /etc/rc.d/rc5.d/S99overclock
The Cacko rom now includes a nice taskbar overclocking app by default!
usb communication
For USB connectivity to a Linux workstation, compile the usbnet module into the kernel of your desktop pc with USB-to-USB Networking (CONFIG_USB_USBNET=m). The usbnet module is included in the latest kernels as of version 2.4.23.
Put an alias to the zaurus, 192.168.129.201, in /etc/hosts on your desktop machine. Here is a snippet from my network location script to enable usb networking to the Zaurus on my Debian Linux desktop machine.
zaurus.sh:
rmmod acm >/dev/null 2>&1
echo "alias acm off" >/etc/modutils/usbnet
echo "alias CDCEther off" >>/etc/modutils/usbnet
echo "alias usb0 usbnet" >>/etc/modutils/usbnet
update-modules
ifconfig usb0 down >/dev/null 2>&1
rmmod usbnet >/dev/null 2>&1
modprobe usbnet >/dev/null 2>&1
typeset -i num
num=`ifconfig | grep usb0 | wc -l`
if [ $num -eq 0 ] ; then
ifconfig usb0 192.168.129.1 netmask 255.255.255.0 up
route add -host 192.168.129.201 usb0 >/dev/null 2>&1
ssh root@zaurus /sbin/route add default gw 192.168.129.1
fi
ssh
I disabled ftp, telnet and samba on the Zaurus and installed ssh (killefiz) and rsync (killefiz) instead. SSH is now included in the Cacko rom.
make sure to set a password for the zaurus and root user with the passwd command
comment out telnet, ftp and samba in /etc/inetd.conf and kill -HUP the inetd process
install the rsync ipkgs
ln -s /home/QtPalmtop/bin/rsync /usr/bin/rsync
Then you can sync your documents with a command from the desktop:
$ rsync -v --rsh="ssh -l zaurus" --size-only -r ~/doc/zaurus/* zaurus:~/Documents
wireless
The AmbiCom card I have works like a charm and isn't too terribly power hungry.
wireless hotspots: State College, PA 16801
Computer Building +
Hetzel Union Building +
Champs
Ottos
Dees Texas Hot Dogs ?
Wegmans
Ale House ?
Irvings ?
Saints ?
that guy down the street who didn't lock down his wireless router ?
+ with Penn State vpn
? not confirmed
vpn
Our campus has wireless, but it uses a binary-only (Mac, Wintel, & Linux X86) Cisco VPN concentrator client. The following open source solution works on the SL-C7X0 & others:
http://www.liebchen-online.de/vpn-zaurus-cisco_en.html
I have ripped apart the various packages to create my own that works. The trick is to have a tun.o module that matches your kernel, and iproute that matches your libc. Make sure /dev/net/tun is an actual device and not a symlink.
kismet
Wireless network discovery, packet sniffing, wardriving/warwalking:
http://www.kismetwireless.net/
http://www.kismetwireless.net/code/kismet-zaurus-arm-2.8.1.tar.gz
http://prdownloads.sourceforge.net/kismet-qte/kismet-qt_2.0.0_arm.ipk
To use kismet from a konsole, add a wireless network named "Warwalk" in the network settings:
ESS-ID: "ANY"
IP Address: 10.0.0.2
Subnet Mask: 255.0.0.0
Gateway: 10.0.0.1
Primary DNS: 10.0.0.1
Look through wlan-ng.opts to find the scheme name that matches Warwalk. Eg:
# more /etc/pcmcia/wlan-ng.opts
<snip>
qpewlan4,*,*,*)
INFO="Warwalk"
...
/usr/local/bin/warwalk.sh:
#!/bin/sh
cardctl scheme CardResume
cardctl scheme qpewlan4
kismet_monitor
kismet
kismet_unmonitor
cardctl scheme default
video & audio
The Cacko ROM includes mplayer and the Kino2 mplayer GUI.
So now you have a robust personal media player (PMP) for playing mpeg4 video from your digital video recorder (DVR) MediaCenter or DVD collection on the go, and a stupid pet trick.
Making DVD movies small enough to fit on a flash disk is easy for Linux users with dvd::rip, or just transcode an AVI file and adjusting bitrate for smaller files:
normal aspect ratio for tv captures, 2-pass ffmpeg encoding:
$ transcode -i original.avi -x divx,mp3 -V -y ffmpeg,null -F mpeg4 -w 192,200,60 -Z 320x240 -J fps --export_fps 12 -b 64 -E 22050 -o zaurus.avi -R 1
$ transcode -i original.avi -x divx,mp3 -V -y ffmpeg -F mpeg4 -w 192,200,60 -Z 320x240 -J fps --export_fps 12 -b 64 -E 22050 -o zaurus.avi -R 2
widescreen aspect ratio w/ added black bars, 1-pass xvid encoding:
$ transcode -i original.avi -x divx,mp3 -V -y xvid4 -w 200,250,80 -Z 320x168 -J fps --export_fps 12 -b 32 -E 22050 -Y -36,0,-36,0 -o zaurus.avi
Windows users may find VirtualDub, FlaskMPEG or GordianKnot works for them.
Configure Kino2 on the Zaurus for: fullscreen, drop frames, direct access to frame buffer, enable overlay, enable doublebuffering, and enable QVGA mode. These settings, along with the encoding options, allow for fullscreen playback with the best frame rate vs. image quality vs. file size.
games
doom
Doom fullscreen & networked in your hand with prboom, some wads, and the sdl libs: http://www.gnurou.org/software/zaurus/
http://www.gnurou.org/software/zaurus/feed/
http://www.self-core.org/~kaoru-k/wiki/LibSdlOnLinuxZaurus.html
libsdl_1.2.5-slzaurus20030704_arm.ipk
super nintendo emulation
Play SNES roms on your zaurus with an sdl emulator:
http://www.suhami.net/zaurus/index.cgi?Emulator/snes9x
snes9x_SDL-1_arm.ipk
/opt/QtPalmtop/bin/bustamove.sh:
#!/bin/sh
export SDL_QT_INVERT_ROTATION=1
/home/QtPalmtop/bin/snes9x -xs 320 -ys 240 -ns /home/zaurus/Documents/Rom_Files/Bust-a-Move.smc.gz
Don't forget to 'chmod +x bustamove.sh'.
/opt/Qtopia/apps/Games/bustamove.desktop:
[Desktop Entry]
Comment = snes9x
Exec = bustamove.sh
Icon = CustomizeKeys2
Name = Bust a Move
shift+[6-9] to save & [6-9] to load save states
other software
qpdf2 http://sourceforge.net/project/showfiles.php?group_id=84700&release_id=174932
keypebble vnc & other opie apps http://opie.handhelds.org/feed/sharprom/
rdesktop http://os.american-data.com/rdesktop/ports/qtrdesktop/
gaim 0.4 needs libpng fix http://qpe-gaim.sourceforge.net/
pgp/gpg http://killefiz.de/zaurus/showdetail.php?app=877
smbmount http://www.dasgehtdichnichtsan.de/zaurus/smbmount.html
python http://www.riverbankcomputing.co.uk/zaurus/
ZUG feed http://www.zaurususergroup.com/feed/
chess http://free.pages.at/uberger/zaurus/zknights_en.html
windows conectivity
I've never tried this
set PC Link on the Zaurus to "USB - I/O (default)"
plug the Zaurus into your desktop's USB port
Windows will recognize the new USB device and prompt for the location of the drivers
Select the Japanese CD-ROM containing the Sharp USB drivers that came with your Zaurus
grab the latest version of Intellisync: 5500v310U.zip
unzip and go to the directory "Pcsoft" then run setup.exe
You will have Outlook synchronization, file transfer, and by changing the Zaurus PC Link settings from "PC Link Setting" to "Storage", your desktop should automatically mount the SD/CF cards as drives.
other tips
click and hold on an apps icon to change launch settings like magnification and fastload
turrning off fastload will free up more memory
pressing Shift+Fn+c will grab a screenshot into Documents/Screen_Files
cross compiling
sources
Sharp Zaurus SL-C750 Japanese ROM sources:
http://developer.ezaurus.com/sl_j/source/source_dl.htm#source-C750-110JP
http://developer.ezaurus.com/sl_j/source/c750/build_kernel_110J_c750c760.htm
official zaurus.com toolchain:
gcc-cross-sa1100-2.95.2-0.i386.rpm
glibc-arm-2.2.2-0.i386.rpm
binutils-cross-arm-2.11.2-0.i386.rpm
linux-headers-arm-sa1100-2.4.6-3.i386.rpm
qtopia-free-1.5.0-1.i386.rpm
install rpms with
alien -i package.rpm
on Debian unstable desktop system
kernel build
set up cross compiler environment variables:
# export PATH=/opt/Embedix/tools/bin:/opt/Qtopia/tmake/bin:$PATH
# export QPEDIR=/opt/Qtopia/sharp
# export QTDIR=/opt/Qtopia/sharp
# export TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-x86-g++/
# export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
# #INCLUDEPATH += /opt/Qtopia/include
# #DEPENDPATH += /opt/Qtopia/sharp/lib
# #TMAKE_CC=arm-linux-gcc
# #TMAKE_CXX=arm-linux-g++
# #TMAKE_LINK=arm-linux-g++
# #LIBS= -L/opt/Qtopia/sharp/lib -lqte
build the kernel:
# tar xjvf ../sharp/linux-c750-20030620-rom1_10.tar.bz2
# cd linux
# cp arch/arm/def-configs/shepherd .config
# patch -p1 < ../preempt-kernel-rml-2.4.18-5.patch
# bzip2 -d ../linux-c750-20031212.patch.bz2
# patch -p0 ../linux-c750-20031212.patch
# make oldconfig ARCH=arm
# make dep
# make clean
# make zImage
The new kernel is: linux/arch/arm/boot/zImage
references
compiler setup howto
preempt kernel patch
Piro patch sets with CPU & GPU overclock plus more
accessories
PDAir Zaurus Case
AmbiCom WL1100C Wireless LAN CF card
Lexar 256MB SD card
other accessories
links
Sharp Zaurus - Official Japanese Site
Dynamism - where I got my Zaurus with excellent warranty coverage
Zaurus Forums - the place to find info
Zaurus Software Index - the place to find software
Zaurus User Group - news, forums, reviews and other info
LinuxDevices article - on the SL-C750 & SL-C760
IpkgFind - software package search
Cacko Linux now pdaXrom - X Windows based Zaurus ROM
OpenZaurus - a complete open source rebuild of the Zaurus ROM
Updated: 2004-10-22 Home / Index Gavin W. Burris - [email protected] |
|