View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

#1

Overview:

The Familiar Linux distributionis designed primarily for the Compaq iPAQ h3600-series of handheld computers and contains a base Linux system. Below are instructions for setting up Familiar, along with customizations I have found to be useful (particularly if you want to run a IPSEC enabled kernel with FreeS/WAN or use the Intimate distribution via NFS).


Utilities:

Here are some utilities to help you out. I did not load this to the SWIKI for security reasons:

Base Familiar Install (Custom):

These instructions assume you are using the Familiar v0.4 distribution available at http://familiar.handhelds.org. The link below is to the offical installation instructions:

http://familiar.handhelds.org/familiar/releases/v0.4/install/H3600/install.html

The insturctions below are taken from the above link with modifications to allow for a larget kernel size (786kb), multiple kernel partitions (for use with the 2.14.14+ bootldr), proper setup of the ssh daemon, etc. all using my custom built jffs2 image.

In order to install a kernel lager than 512k, you must modify the default partition defines in the Familiar setup (see below). The Familiar v0.4 kernel src from CVS (see below) complied with the default options (arch/arm/def-config/h3600-familiar) requires only 512k, but the default FreeS/WAN patches and options creates a kernel over 600k in size. The kernel I am working with (2.4.3-rmk2-np1-eb1, see below>UPDATE) is 607k w/ the FreeS/WAN IPSEC code complied in.@Flash
Flash Setup
  boot> params reset
  boot> set copy_ramdisk 0x0 
  boot> set baudrate 115200
Setup the partiaions on the iPAQ as follows:
The default Familar partition setup for the 16MB flash version is:
    boot> partition show
    argv[1]=partition
    npartitions=00000004
    bootldr
      base: 00000000
      size: 00040000   (  262144 bytes)
     flags: 00000002
    params
      base: 00040000
      size: 00040000   (  262144 bytes)
     flags: 00000000
    kernel
      base: 00080000
      size: 00080000   (  524288 bytes)
     flags: 00000000
    root
      base: 00100000
      size: 00F00000   (15728640 bytes)
     flags: 00000010
    boot>
This new seutp on the 16MB flash version is (I added the /dev/mtdblock#):
   boot> partition show
   argv[1]=partition
   npartitions=00000005
   bootldr (/dev/mtdblock0)
     base: 00000000
     size: 00040000   (  262144 bytes)
    flags: 00000002
   params (/dev/mtdblock1)
     base: 00040000
     size: 00040000   (  262144 bytes)
    flags: 00000000
   kernel (/dev/mtdblock2)
     base: 00080000
     size: 000C0000   (  786432 bytes)
    flags: 00000000
   root (/dev/mtdblock3)
     base: 00200000
     size: 00E00000   (14680064 bytes)
    flags: 00000010
   kernel2 (/dev/mtdblock4)
     base: 00140000
     size: 00EC0000   (  786432 bytes)
    flags: 00000000
   boot>

Load Images

Then install the Familiar kernel and my bootstrap jffs2 images (see Familiar Site). I used thezImage-2.4.3-rmk2-np1-fam2kernel image (md5sum) and myfamiliar-v0.4-eb1.jffs2custom root image (md5sum). For details on this custom image, seeDetails page.
pre boot load kernel boot load root (font color=redSEE THE a href="#UPDATE"UPDATE/a BELOW FIRST/font) boot load kernel2 /pre/htmlThe custom image provides the following: - HTTP_REFERER.set*hacked lynx binary>http://www.prism.gatech.edu/~gt6131b/sshf2001/*/usr/bin/lynx -*linuxrc.intimate>http://www.prism.gatech.edu/~gt6131b/sshf2001/linuxrc.intimate*80*linuxrc.devfs>http://www.prism.gatech.edu/~gt6131b/sshf2001/linuxrc.devfs*customized to output network info to screen, etc. -*/sbin/ipaqbb>http://www.prism.gatech.edu/~gt6131b/sshf2001/*from*Intimate>http://intimate.handhelds.org/download.shtml*-*/sbin/netinfo.sh>http://www.prism.gatech.edu/~gt6131b/sshf2001/netinfo.sh*(to output network info). Requires awk (or mawk linked to awk). Here is*mawk complied for arm-linux>http://www.prism.gatech.edu/~gt6131b/sshf2001/mawk*64*m5dsum>http://www.prism.gatech.edu/~gt6131b/sshf2001/mawk.md5sum*). -*/sbin/pivot_root>http://www.prism.gatech.edu/~gt6131b/sshf2001/pivot_root*for arm-linux,*m5dsum>http://www.prism.gatech.edu/~gt6131b/sshf2001/pivot_root.md5sum* (used instead of chroot) - /usr/bin/nvi (ln -s /usr/bin/nvi /bin/vi - b/c iv sux) - /usr/bin/clear @UPDATE UPDATE/font This new kernel image has FreeS/WAN 1.91 compiled into the kernel and the jffs2 image has the programs and init scripts needed to run FreeS/WAN. You will need to generate you own RSA key and setup the key in the config file (the included secret key sample test key - bDO NOT USE THIS KEY/b - generate a new secret key as described in the*iPAQ FreeS/WAN VPN HOW-TO*: -*familiar-v0.4-eb4.jffs2>http://www.buserror.org/~ebrown/sshf2001/download/familiar/familiar-v0.4-eb4.jffs2*64*md5sum>http://www.buserror.org/~ebrown/sshf2001/download/familiar/familiar-v0.4-eb4.jffs2.md5sum*) See the*CHANGELOG>http://www.buserror.org/~ebrown/sshf2001/download/familiar/CHANGELOG*-*zImage-2.4.3-rmk2-np1-eb1>http://www.buserror.org/~ebrown/sshf2001/download/familiar/zImage-2.4.3-rmk2-np1-eb1*64*md5sum>http://www.buserror.org/~ebrown/sshf2001/download/familiar/zImage-2.4.3-rmk2-np1-eb1.md5sum*) See*this>http://www.buserror.org/~ebrown/sshf2001/download/familiar/rmk2-np1-eb1.diff* file for the additions from the original /arch/arm/def-config/h3600-familiar/i config bAlways check the md5sums before you install!/b:htmlpre # md5sum --check zImage-2.4.3-rmk2-np1-eb1.md5sum zImage-2.4.3-rmk2-np1-eb1: OK # md5sum --check familiar-v0.4-eb4.jffs2.md5sum familiar-v0.4-eb4.jffs2: OK /pre/htmlNext, just modify set the linuxargs param and the startb_cmd (to boot kernel2), boot up and setup*networking>@Networking*:pre boot set linuxargs "noinitrd devfs=mount root=/dev/mtdblock/3 init=/linuxrc console=ttySA0" boot set startb_cmd "boot flash kpart=kernel2" boot params save boot boot /pre/html@Networking Networking The Familiar distribution comes with networking setup for DHCP if you are using a supported card (not for wireless, you need to setup this - see below). See the *handhelds.org>http://www.handhelds.org:8080/wiki/IpaqHardwareCompatibility* site for more. I have sucessfully been working with a Xircom XE2000 10/100 Fast Ethernet with no problems ("out of the box"). If you do not want to use DHCP, then you need to modify /etc/pcmcia/network.opts/i and i/etc/resolv.conf/i accordingly. Also, you need to set your hostname:htmlpre # hostname myhost # echo "myhost" /etc/hostname /pre/html iWireless/i You need to modify the PCMCIA settings to get wireless to work. I have tested with the Orinoco (Lucent Technologies WaveLAN/IEEE Adapter) Silver & Gold wireless cards. See*http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Orinoco.html* for more info. - First, modify the /etc/pcmcia/config.opts/i file to set the network name for the wavelan module. Subsitiute your home/office/whatever network if you are not using the LAWN system (you don't need to set port_type here - it still works). Also, LAWN requires additional authentication before you can pass traffic - see below (you will however get an address).:htmlpre /etc/pcmcia/config.opts ... # port_type=1 ... Managed, port_type=3 ... Ad-Hoc module "wvlan_cs" opts "network_name=GTwireless" ... /pre/html - Next, modify the i/etc/pcmcia/wireless.opts/i (see*http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/PCMCIA.txt*) to setup the remaining settings:pre /etc/pcmcia/wireless.opts ... case "$ADDRESS" in # copy before #-------- START SECTION TO REMOVE ------- # setup for Lucent Wavelan # replace '00:02:2D' with you MAC's (should work for silver)*,*80*,00:02:2D:*) INFO="Ga Tech LAWN System" ESSID="GTwireless" MODE="Managed" RATE="auto" # looking for the HEX key like 'xxxx-xxxx-xx' KEY="xxxx-xxxx-xx" # or string like 's:password' #KEY="s:password" # To set all 4 keys (passwords) #KEY="s:password1 [1] key s:password2 [2] key s:password3 [3] key # s:password4 [4] key [1]" # To set all 4 keys (hex) # |---key 1--||--key 2---| |---key 3--||--key 4---| #KEY="xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx" ;; /html - To added multiple schemes, you can add something like this:htmlpre # setup for Lucent Wavelan # replace '00:02:2D' with you MAC's (should work for silver) home,*,*,00:02:2D:*) INFO="your home network" ESSID="your network name" MODE="Managed" RATE="auto" # looking for the HEX key like 'xxxx-xxxx-xx' KEY="xxxx-xxxx-xx" ;; and access the different schemes via:
  # cardctl scheme home
Use the default scheme (*,*,*) by:
  # cardctl scheme default

  • To restart the networking (with the default scheme) when you make your changes:
      # /etc/init.d/pcmcia restart
    

PPP through Serial

see http://www.handhelds.org/z/wiki/PPPHowto

USB Networking

see http://www.handhelds.org/z/wiki/How%20do%20I%20setup%20USB%20networking


Finish Up Install:

Once the base Familiar is installed and you have netwoking up, you need to do some post install work on the iPAQ:
  • You need to generate the OpenSSH keys (the dsa key is for ssh2 proto) and modify the config file. Also, I setup ssh to try ssh2 proto first (uncomment Protocol 2,1 line):
      # vi /etc/ssh/sshd_config
      ...
      Protocol 2,1
      ...
      HostKey=/etc/ssh/ssh_host_key          <-- existing
      HostKey=/etc/ssh/ssh_host_dsa_key      <-- ADD
      # need newer version of ssh-keygen
      #HostKey /etc/ssh/ssh_host_rsa_key
      ...
    Now generate the keys:
      // gen RSA key for ssh1 proto
      # ssh-keygen -f /etc/ssh/ssh_host_key -N ""
      // gen DSA key for ssh2 proto
      # ssh-keygen -d -f /etc/ssh/ssh_host_dsa_key -N ""
    
    For some reason, the ssh-keygen installed with Familiar is not up to date with 2.5.2p2 (the version installed), so it does not support the -t rsa/dsa switch and will not generate ssh2 rsa keys (/etc/ssh/ssh_host_rsa_key). You will need to generate this on Intimate and edit /etc/ssh/sshd_config later if you want to use ssh2 rsa keys.

  • Now you can go to the wget and setup Intimate to boot over NFS.


Compile and enjoy ... pebrown@cc.gatech.edu

Back to HOW-TO's

References:


Links to this Page