• Currently Familiar's Linux distribution supports some of the following key features
    • Entirely based on XFree86's/keithp's Tiny-X server, which includes the latest RENDER extension.
    • Anti-Aliased True-Type Font support in rxvt, ion, blackbox, and fltk (this is extended to any X application using the Xft APIs).
    • OpenSSH's ssh and sshd included by default.
    • The latest releases include JFFS2 supported, which enables you to have read/write access to the iPAQ's Flash.
    • Integrated Python v2.0 w/ PyGtk and PyGDKImlib.
    • Binary and Library compatible w/ Debian's ARM distribution. In most cases, programs (as long as their dependencies are met) can be taken from Debian and executed on the iPAQ w/out issue.
    • Full package support based on ipkg.
  • stock root password: rootme
  • file transfer is easiest using: wget <URL>
  • X11 configuration: /mnt/ramfs/etc/rc2.d/S99x
  • window manager
  • additional software: /usr/local (/dev/mtdblock6 on /usr/local type ext2 (rw,noatime))
  • X server for PCMCIA VGA card
  • customizing the window manager
    • /usr/X11R6/bin/pyditor
    • /etc/X11/blackbox/blackbox-menu
  • Intimate Distribution http://intimate.handhelds.org
  • bootparams: noinitrc root=/dev/mtdblock3 init=/linuxrc.intimate console=ttySA0 devfs=mount
  • microdrive partitioning
    Disk /dev/hde: 32 heads, 63 sectors, 347 cylinders
    Units = cylinders of 2016 * 512 bytes

    Device Boot    Start       End    Blocks   Id  System
    /dev/hde1             1       281    283216+  83  Linux
    /dev/hde2           282       347     66528   82  Linux swap
  • mounting the microdrive later
  • insmod reiserfs (for reiserfs support. most filesystems are jffs2)
  • mount /dev/hda1 /mnt
  • network configuration
  • /etc/network/interfaces
  • standard ifconfig
  • QPE for iPAQ
  • Installation instructions http://qpe.sourceforge.net
  • Stowaway activation when using intimate
   ln -s /dev/tts/0 /dev/ttySA0
   insmod h3600_stowaway
   /usr/bin/stowd &
  export CC=arm-linux-gcc
  ./configure --enable-speed --enable-fpm=arm --enable-sso arm-linux
  make
       export CVSROOT=:pserver:anoncvs@cvs.handhelds.org:/cvs
      # # Password: anoncvs
      cvs checkout -r {tag} linux
      e.g.: cvs checkout -r K2_4_6-rmk2-np1-hh2 linux
      make mrproper
      # this removes e.g. version.h (check this file later if unsure)
      cp arch/arm/def-configs/h3600-familiar .config
      make oldconfig
      # CONFIG_EXTRAVERSION="-fam4" (don't forget the -)
      make bzImage
  • add the option: –with-tools=/path/to/cross-compiler/prefix-for-gcc- for example, if your cross-gcc were /usr/arm/bin/arm-linux-gcc, then you'd use the option “–with-tools=/usr/arm/bin/arm-linux-” (with trailing dash - the commands gcc, cl, g++, … will be appended to this option's value!)
  • make sure, it doesn't try to link the host-platforms libraries.
  • you have to add the options: –with-fgllib=../../fgl –with-ipllib=../../ipl (the values for the options are the defaults, so perhaps you might omit them)
  • stripping executables: arm-linux-strip hello-world

patch -p1 -d `pwd`/linux < patch-2.4.4-rmk3

patch -p1 –verbose -f -d `pwd`/linux < diff-2.4.4-rmk3-np1

  • General list of patches for various ARM machines http://www.arm.linux.org.uk/developer/machines/
  • cross-compiled gcc must be at correct place (e.g.: /opt/arm-cross-gcc, just setting the PATH is not sufficient and results in complaints about components not found)
   /dev/flash4 on / type cramfs (ro)           => load flash 0x200000
   /dev/flash3 on /mnt/init type cramfs (ro)   => load flash 0x100000
   /dev/flash5 on /usr type cramfs (ro)        => load flash 0x500000
   ramfs on /mnt/ramfs type ramfs (rw)
   ramfs on /dev type ramfs (rw)
   none on /proc type proc (rw)
   none on /dev/pts type devpts (rw,mode=0622)

connect using a terminal program with the settings - 11520 8nl no flowcontrol on unix try

cu -s 115200 -l /dev/ttyS0

it is possible to make a terminal connection to the ipaq (running linux) if the usb-net kernel module is installed to enable ethernet over usb. (needs more details!)

see handhelds.org discusion/docs on usb networking

how to set it up http://www.handhelds.org/z/wiki/How%20do%20I%20setup%20USB%20networking

how to survive suspension http://www.handhelds.org/z/wiki/Setting%20Up%20USB%20Networking%20to%20Survive%20Suspension

CON 1     01 02 03 04 05 06 07 08 09 10 11 12

CON 2     01 02 03 04 05 06 07 08 09 10 11 12 13 14

towards serial connector (9-pin): 01-10
          (bl vio bl rd ora bn gb gre gr bl)

serial   PC   CON2    CON1  iPAQ
                      01,02 V_ADP (AC adapter power in)

01       DCD  01      03    DTR
06       DSR  01      03    ???
05       GND  09      04,10 GND
07       RTS  02      05    CTS
08       CTS  03      06    RTS
02       RXD  04      07    TXD
03       TXD  05      08    RXD
04       DTR  07      09    DCD
09       RI   08      ??    NC


                      10    GND                              - USB 4 (gb  - my wire)
              11      11    UDC_P (USB positive data signal) - USB 3 (ora - my wire)
              12      12    USB_N (USB negative data signal) - USB 2 (gr  - my wire)

1 VCC Red   +5V
2 D-  White Data -
3 D+  Green Data +
4 GND Black Ground

THIS IS A LOOK AT THE PLUGS ON THE CABLE - NOT THE SOCKETS !

 ---------       ______
| 4 3 2 1 |     / 1  2 \
|         |     |      |
|---------|     | 4  3 |
|---------|      ------
  • network setup =&gt; /etc/pcmcia =&gt; network / network.opts
  • DHCP via /sbin/pump
  • WaveLAN card in adhoc mode
     iwconfig wvlan0 essid any mode ad-hoc
     ifconfig wvlan0 192.168.1.70 netmask 255.255.255.0
  • changes can be done in init filesystem =&gt; will be copied to /etc … in ramfs by /linuxrc
  • usb-serial kernel module args: insmod usbserial vendor=0x049f product=0x0003

– authors: rac@iptel-now.de, nik Gaffney and the Network Mind