Hardware Setup

Scratchbox reference target device is Compaq iPAQ H3600 series PDA. Scratchbox has been tested and verified to work on the following devices:

For networking, both USB cradle and PCMCIA sleeve with an ethernet card are supported.

In general, it should be easy to setup ScratchBox for Compaq iPAQ H3600, H3700, and H3800 PDA's. Other Linux/ARM based target devices may work. If you are targeting a non-ARM embedded platform you will need to create your own toolchain.

1. Example: HP iPAQ

1.1. Acquiring an iPAQ

A typical development environment consists of a Linux desktop PC and a HP/Compaq iPAQ 3600 or 3800 series handheld PDA. The newer models, such as HP iPAQ 1940, are not supported. See Handhelds.org for more information about Linux availability for different iPAQ series.

Technical support for older iPAQ models is very limited. The best way to acquire one of these devices is through Internet auctions or news groups.

1.2. Installing Linux

The recommended Linux distribution is Familiar 0.7.2 with GPE2. See Familiar on Handhelds.org for more information and installation instructions.

1.3. Accessing the iPaq

1.3.1. Serial cable

You can always access the iPaq via a serial cable.

Attach the iPaqs serial cable or cradle to your desktop machine and use minicom to access the iPaq.

The correct serial port settings are:

speed and parity: 115200 8N1 hardware flow control: NO software flow control: NO

1.3.2. USB network

After the USB network has been setup successfully you can access the iPaq with telnet.

The default password for 'root' account on Familiar is rootme.

[~]$ telnet 192.168.55.100 Trying 192.168.55.100... Connected to 192.168.55.100 (192.168.55.100). Escape character is '^]'. (none) login: root Password: BusyBox v0.61.pre (2003.05.28-09:26+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. #

1.4. Setting up USB networking

1.4.3. Quick instructions

Pre-requirements:

  • USB cradle or cable for your iPaq

  • usbnet.o kernel module on desktop. You can verify the existance of usbnet.o module by executing as root:

    modprobe -l usbnet.o

Following is a "happy day" scenario of the USB network setup:

  • Set up usbnet interface on the desktop as root.

  • Insert iPAQ in the USB cradle (wait a few seconds for the USB network to start)

Now you should be able to test the USB network with ping

ping 192.168.55.100

If the ping commands fails more detailed information about the USB network is available in the following sections.

If support for PCMCIA networking hardware is needed the usage of Familiar distribution is recommended. More information about familiar can be found at handhelds.org.

1.4.4. Network settings on the iPAQ

The 'usb-eth' module (from the handhelds.org kernel) is needed for the USB networking on the iPAQ. All required modules are provided with the Support distribution.

The default network settings on the iPAQ in '/etc/network/interfaces' are:

address: 192.168.55.100 network: 192.168.55.0 broadcast: 192.168.55.255 netmask: 255.255.255.0

If the IP address used by default does not interfere or overlap other configured networks on the desktop no additional network configurations are needed on the iPAQ.

1.4.5. Network settings on the desktop

To get the USB network up and running on the desktop the kernel needs to be compiled with usbnet driver as a module. Distributions known to have the usbnet module available without need to recompile the kernel include (at least):

  • RedHat 9.0

  • RedHat 8.x

You can check if usbnet module is available on your system by executing 'modprobe -l usbnet.o' as root, which should print the name of the usbnet driver if it is present. If no output is produced by the command re-compilation of the kernel is required.

The network configuration utility 'redhat-configure-network-gui' provided with RedHat does not work for configuring the USB network interface, so the configuration needs to be done manually.

The USB network interface can be configured on RedHat machined by adding a file named 'ifcfg-usb0' to the '/etc/sysconfig/network-scripts' directory.

The contents of the '/etc/sysconfig/network-scripts/ifcfg-usb0' should be similar to:

DEVICE=usb0 ONBOOT=no IPADDR=192.168.55.101 NETMASK=255.255.255.0 NETWORK=192.168.55.0 BROADCAST=192.168.55.255

On Debian, the contents of '/etc/network/interfaces' should be similar to:

iface usb0 inet static address 192.168.55.101 network 192.168.55.0 broadcast 192.168.55.255 netmask 255.255.255.0

Instructions for configuring the interface on other distributions will be added later if needed.