Note: Even though this page was written with the H3870 model in mind, most of the instructions and tools can (probably) be used to compile and use affix on any other arm based machine (with other bluetooth adapters), eg. any iPaq with a pcmcia/cf sleve and a pcmcia/cf Bluetooth card.
The iPAQ H3870 has an integrated bluetooth radio which can be used with affix. The radio is by default in BCSP mode which affix doesn't support (Update: since version 1.2.1 affix supports BCSP, so the rest of this paragraph is only of interest if you use a version of affix less than 1.2.1) , which means that the firmware of the bluetooth radio needs to be programmed to use H4 mode which affix supports. This can be accomplished with the pskey program (can be found as a package in the familiar distribution). You can find instructions how to do this here (steps 3-6).
At the moment (Jun 20 2002), support for the BT radio on the H3870 is under heavy development, so be sure to get the very latest version of affix that you can find. Update: support is quite stable now, any version after 1.00pre5 should work fine.
If you don't have affix compiled for the ipaq, you can either use my cross compilation environment to compile it (here's an example config.mk file), or the precompiled version. If you decide to compile affix on your own, you will need a linux source tree which is patched correctly for the ipaq (more info to come, meanwhile you can use my linux source tree for the ipaq (25MB)). Note that if you also use my cross compilation environment, you can remove the asm and linux directories from the /usr/local/arm/2.95.3/arm-linux/include/ directory, and make symlinks to your linux source tree (linux/include/asm and linux/include/linux)
To start using the BT radio in BCSP mode (affix version >= 1.2.1) on the ipaq, issue the following commands:
modprobe affix_uart btctl open_uart /dev/ttySB0 bcsp 230400
If you want to start using the BT radio in H4 mode (affix version < 1.2.1), issure the following command after loading the modules:
btctl open_uart /dev/ttySB0 csr 115200
After this, (if you don't get any errors) the command
should show you the bluetooth device information.
To make things easier you can put this script in /etc/init.d/ (and make the relevant symlinks to /etc/rc?.d/) to start affix functionality at bootup, and stop it at shutdown.
For affix version 1.00pre5 or older, you will also need to create a /var/local/obex directory on the ipaq if you want to be able to make obex connections to it.
If you have changed the radio to H4 mode and want to have it back to BCSP mode (the unlikely case that you want to reinstall windows) start pskey with
pskey -d/dev/ttySB0 -s 115200and give the following two commands:
0191 03b0 0006 00fa 0014 0004 0000 0004 001e 0064 000a 01f9 0001
I found that there weren't any good cross compilation toolchains out there which would have all libraries which are needed for development on the ipaq (it was quite a pain to get some libraries compiled for arm, eg. glib and xlib). Now that I finally have a working environment, I thought it would be helpful for others struggling with the same problems to distribute it on the web. So here it is: cross-jh.tar.bz2 (39MB).
I don't think it matters where you unpack the tarball, but to get the same environment I have, do the following:
mkdir /usr/local/arm cd /usr/local/arm tar jvfx /path/to/cross-jh.tar.bz2
After unpacking you will find the compiler and other tools in /usr/local/arm/2.95.3/bin/. If you want to install new libraries to the toolchain, they should go in /usr/local/arm/2.95.3/arm-linux/.
The latest versions of affix have nice support for cross compiling. When the affix config script asks you for the cross compilation tools prefix, just enter /usr/local/arm/2.95.3/bin/arm-linux-. I have put an example config.mk file for affix here.
Many programs that use a configure script (created by autoconf) before the actual compilation procedure support a so-called config.site file. If you download this file and make the environment variable CONFIG_SITE point to it before running configure, you should have a much easier time compiling programs.
Programs which need glib or gtk+ can use the gtk-config and glib-config scripts in /usr/local/arm/2.95.3/arm-linux/bin/ to get the correct compiler and linker parameters for cross compiling.
If you are have a linux distribution on your PDA which uses ipkg, such as familiar (the sharp zaurus also has ipkg support), you will probably want to use ipkg packages which can be installed by adding the following line to /etc/ipkg.conf:
src affix http://affix.sourceforge.net/feeds/unstable
ipkg update, you can get the list of affix ipkg's
with the following command:
ipkg list|grep affix
For everyone else, I have put a precompiled version of affix for the ipaq here (cvs version from Jul 11 2002). A matching kernel (including modules) can be found here. The kernel version is 2.4.18-rmk3-hh12.
mv /lib/modules/2.4.18-rmk3 /lib/modules/2.4.18-rmk3.orig)
Copyright © 2002 Johan Hedberg
WEB style by Miklos Quartus <firstname.lastname@example.org>