iPAQ Linux Overview - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

iPAQ Linux Overview

Description:

Website (www.handhelds.org) Hosts source code, binaries, discussion groups ... ftp://ftp.handhelds.org/pub/linux/arm/toolchain/arm-linux-toolchain-current .tar.gz ... – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 32
Provided by: jamey5
Category:

less

Transcript and Presenter's Notes

Title: iPAQ Linux Overview


1
iPAQ Linux Overview
  • September 13, 2001
  • Jamey Hicks
  • jamey.hicks_at_compaq.com

2
Outline
  • Handhelds.org
  • iPAQ Linux Distributions
  • Mercury Project (BackPAQ)
  • iPAQ Linux Nitty Gritty

3
Handhelds.org and iPAQ Linux
4
Open Handhelds Project
  • Program for stimulating development of innovative
    new applications on handhelds (e.g., iPAQ H3600)
  • Derived from OpenItsy Initiative
  • Joel Bartlett, Bill Hamburgen (WRL)
  • Website (www.handhelds.org)
  • Hosts source code, binaries, discussion groups
  • Free technical support
  • Seed hardware for key developers
  • Community 500 entries on email list, active IRC
  • Timeline
  • April 2000 Began Linux port to iPAQ H3600
  • June 2000 Posted first release of Linux for
    H3600 on www.handhelds.org

5
Linux Capabilities
  • Linux 2.4.7 (this week)
  • Complete GUI flexibility
  • Filesystems
  • JFFS2 compressed journaling flash filesystem
  • Networking
  • WLAN, WWAN
  • IPSEC and other VPN
  • IPv6, Mobile IP
  • Java 2 Micro and Standard Editions
  • Not just a zippy PDA, but a pocket workstation

6
iPAQ Linux Distributions
  • Original handhelds.org distribution
  • characterized by cramfs, twm, motley apps
  • Familiar Linux (familiar.handhelds.org)
  • jffs2 root, python scripting, ipkg, ion wm
  • Intimate Linux (intimate.handhelds.org)
  • ARM Debian on iPAQ with disk, boot via WinCE or
    Familiar
  • QPE (www.trolltech.com)
  • PocketLinux (www.pocketlinux.com)
  • kernel from handhelds.org, kaffe jvm, xml app
    defn

7
Linux on the iPAQ Familiar distribution
  • Python scripting
  • JFFS2 root
  • X Window System
  • Gnome toolkit
  • Full screen handwriting input
  • Anti-aliased fonts
  • Landscape or Portrait mode
  • Full networking
  • Distributed as ipkgs

Dbutter_at_wireless.net
8
QPE Qt Pocket Environment
  • Uses Familiar as base
  • without X
  • distributed as ipkgs
  • very polished look
  • PDA-oriented

9
Intimate Linux
  • Marked by close acquaintance, association, or
    familiarity. See Synonyms at familiar.
  • Full blown linux on the Compaq iPAQ!
  • Native development
  • Stunts bochs x86 emulator

10
PocketLinux
  • XML application framework
  • Implemented in Java
  • Runtime kaffe JVM
  • Linux OS underneath
  • Full support for theming
  • Do not follow the 1.0 installation instructions
    they can be hazardous to ipaqs email jamey for
    revised instructions if youre interested in this.

11
Java 2 Standard Edition
  • Full JDK 1.2.2 and JDK1.3 ported by CRL and
    Blackdown.org
  • available from www.blackdown.org
  • ftp//ftp.tux.org/pub/java/JDK-1.3.1/arm/rc1/
  • Requires NFS, microdrive, CF card, or lots of
    pruning to install
  • Ken Steele and I will make it available as ipkgs

12
CRL Mercury Project
13
CRLs Mercury Project
  • A research project to extend the boundaries of
    pervasive wireless computing
  • Hardware
  • A handheld research platform
  • Software
  • Networking, middleware and applications
  • Based on Linux OS and Applications
  • Exploring the future of handheld computing

14
Mercury Hardware
  • Pushing the envelope of integration
  • BackPAQ prototyping platform
  • Extension pack with VGA CMOS camera, 32MB Flash,
    FPGA, external expansion connector, 2 PC Card
    slots, accelerometer, audio codec and headset
    connector
  • WLAN and WWAN via PC Cards
  • Last known bug fixed, boards in rework

15
iPAQ H3600/BackPAQ
16
iPAQ H3600/BackPAQ
17
The Nitty Gritty Linux Details
18
iPAQ Linux Resources
  • Handhelds.org website (www.handhelds.org)
  • Handhelds wiki (www.handhelds.org/z/wiki)
  • Includes search interface
  • World writable please use and contribute
  • Chat (IRC on irc.openprojects.net)
  • handhelds.org mostly ipaq linux discussion
  • familiar Familiar distribution discussion
  • ipaq lightly populated, installation support
  • Email (www.handhelds.org/email_lists.html)
  • ipaq_at_handhelds.org, linux_at_handhelds.org,
    familiar_at_handhelds.org, bootldr_at_handhelds.org

19
Developing for ARM Linux
  • Standard Linux APIs
  • Adjust for storage space (32MB)
  • Adjust for screen size (320x240 12-bit color)
  • Adjust for lack of keyboard
  • Input methods xkbd, xstroke, serial cable,
    remote input via X, ssh

20
iPKG Software Packages
  • iPKG (Carl Worth)
  • Structure derived from Debian packages
  • Reduced overhead
  • No dependence on ar
  • Single /bin/sh script to implement ipkg
  • http//www.handhelds.org/z/wiki/iPKG
  • Usage
  • ipkg update download list of avail packages
  • ipkg install foo (re)install package foo, its
    deps
  • Ipkg upgrade foo upgrade to latest version of foo

21
iPKG and Debian
  • Easy to convert one to the other
  • ipkg-deb-unbuild foo.deb
  • remove docs, etc.
  • edit DEBIAN/control
  • ipkg-build
  • Finding ARM Linux .deb files
  • http//www.debian.org/distrib/packages
  • Search the Contents of the Latest Release

22
Toplevel Menu Maintenance
  • Debian menu support (menu-tiny ipkg)
  • Each package adds descriptions to /usr/lib/menu
  • Update-menu generates menus by running the
    scripts in /etc/menu-methods
  • Documentation http//www.handhelds.org/nelson/me
    nu/
  • ?package(emacs20)\
  • needs"x11"\
  • section"Apps/Editors"\
  • title"Emacs 20"\
  • command"/usr/bin/emacs20"

23
Compiling for ARM Linux
  • Cross compilation
  • E.g., x86 linux host - ARM linux target
  • Faster than native compilation
  • Often requires Makefile modification
  • Cross-toolchain
  • ftp//ftp.handhelds.org/pub/linux/arm/toolchain/ar
    m-linux-toolchain-current.tar.gz
  • Unpack in root directory
  • Add /skiff/local/bin to PATH
  • Prepend arm-linux- to gcc, g, ld, strip, nm,
    ranlib, ar
  • Generally make CCarm-linux-gcc all
  • To watch out for
  • Segv from ld usually indicates attempt to link
    x86 object file into arm binary
  • Capture of headers from /usr/include and libs
    from /usr/lib

24
Native Compilation
  • No Makefile issues, but slower
  • Use Debian on iPAQ, netwinder, skiff, shark
  • Skiff Cluster
  • 6 skiffs, 2 sharks, 2 ipaqs
  • skiff1-6.handhelds.org, reefshark, tigershark,
    ipaq1, ipaq2
  • rlogin -l guest, no password
  • Use ftp, scp, etc. from the machines to transfer
    files to them
  • Create a directory in /home2/guest/
  • maintained by Gita Sukthankar, George France

25
iPAQ Linux Kernel Source
  • E.g., 2.4.7 (Linus Torvalds)
  • http//www.us.kernel.org/pub/linux/kernel/v2.4/lin
    ux-2.4.7.tar.gz
  • ARM Linux Port (Russell M. King)
  • E.g. 2.4.7-rmk3
  • ftp//ftp.arm.linux.org.uk/pub/armlinux/source/ker
    nel-patches/v2.4/patch-2.4.7-rmk3.gz
  • SA1100 Port (Nicolas Pitre)
  • E.g. 2.4.7-rmk3-np1
  • ftp//ftp.arm.linux.org.uk/pub/armlinux/people/nic
    o/diff-2.4.7-rmk3-np1.gz
  • Handhelds Kernel (Jamey Hicks)
  • E.g., 2.4.7-rmk3-np1-hh4
  • Cvs.handhelds.org or ftp.handhelds.org

26
Building the Kernel from Scratch
  • Getting the Kernel
  • export CVSROOTpserveranoncvs_at_cvs.handhelds.org
    /cvs
  • cvs login
  • Password anoncvs
  • cvs z9 checkout linux/kernel
  • Configuring the Kernel
  • cd linux/kernel
  • cp arch/arm/def-configs/h3600-devfs .config
  • make oldconfig
  • Building the kernel
  • make zImage modules
  • arch/arm/boot/zImage the built kernel
  • make INSTALL_MOD_PATH/tmp/ modules_install
  • /tmp/lib/modules/ will contain
    the modules

27
Extension Modules and Interfaces
  • Sleeve hotplug support
  • Module h3600-sleeve
  • /proc/bus/sleeve/device - vendorid, deviceid,
    name
  • /sbin/hotplug executed for attach/detach events
  • PCMCIA/CF Sleeve support
  • Modules sa1100_cs, h3600_generic_sleeve
  • /etc/init.d/pcmcia starts and stops pcmcia
    system
  • should be running if sleeve will be used
  • Flash
  • Shows up as MTD device (Memory Technology Device,
    typically flash)
  • cat /proc/mtd to see which one
  • Can mount jffs2 filesystem on it
  • /dev/mtdblock/3, given Familiar 0.5 partitioning
    of flash in ipaq

28
BackPAQ Modules and Interfaces
  • FPGA (camera, accel, audio)
  • Module h3600_backpaq_fpga, h3600-sleeve
  • status cat /proc/backpaq/fpga
  • programming cat foo.bin /dev/backpaq/fpga
  • Camera 640x480x8 CMOS imager
  • Video4Linux interface /dev/v4l/video0
  • Required modules
  • h3600_backpaq_camera
  • h3600_backpaq_fpga
  • Required ipkgs backpaq-firmware-6abc, hotplug
  • hotplug normally programs FPGA on BackPAQ attach
    or unsuspend

29
BackPAQ Modules and Interfaces
  • Accelerometer
  • /dev/backpaq/accel?
  • Required modules
  • h3600_backpaq_accel
  • h3600_backpaq_fpga
  • Required ipkgs backpaq-firmware-6abc, hotplug
  • hotplug normally programs FPGA on BackPAQ attach
    or unsuspend
  • Audio
  • /dev/sound/????
  • Required modules You could contribute by writing
    this module!!
  • Required ipkgs backpaq-firmware-6abc, hotplug
  • hotplug normally programs FPGA on BackPAQ attach
    or unsuspend

30
Mercury and Open Handhelds Team
  • CRL
  • Jamey Hicks
  • Jim Gettys
  • Andy Christian
  • Brian Avery
  • Steve Ayer
  • Ben Kuris
  • Don Denning
  • Gita Sukthankar
  • Frank Bomba
  • Dave Panariti
  • Neil Reynolds
  • SRC
  • Tom Lawler
  • WRL
  • Debby Wallach
  • Compaq Handhelds
  • Ken Nicholas
  • George Bold
  • Open Source Community
  • Carl Worth, Alexander Guy, Ken Causey, Edward
    Muller, George France, David Neuer, Jim Conner
  • many others
  • RMK, NP, AC, Linus ...

31
References
  • Mercury
  • http//crl.research.compaq.com/projects/mercury/
  • Handhelds.org
  • Mercurys Linux and application base
  • Http//www.handhelds.org/
  • Familiar Linux Distribution
  • http//familiar.handhelds.org/
Write a Comment
User Comments (0)
About PowerShow.com