iPAQ 3870
I own PDA iPAQ3870 with linux installed on it. This model is few years old but it still can-do.
Key feautres:
- 64MB SDRAM,
- 32MB of Flash,
- SD/MMC card reader
- Bluetooth 1.1
- IrDA FIR
- uart, RS232
- USB client 1.0
It runs Linux Familiar 8.4 with Opie 1.2 (GUI) .
The kernel is quite old (2.4.19-rmk-42) becuse main development for this model was ended.
Yesterday I bought 2GB SD Card and the iPAQ could not read it.
At the moment it was running kernel 2.4.19-rmk-37 and fortunatelly it tourned out that the newer kernel mentioned before has applied special patches for 2GB SD Cards. I’ve used kernel and bitbake files from Familiar GIT repository: http://familiar.handhelds.org/git/familiar-build.git (for more details see this link).
Now I have 3 partitions:
/dev/mmc/part1 ext2 256MB for additional software,
/dev/mmc/part2 vfat 768MB for music files.
/dev/mmc/part3 vfat 1GB (hmmm…for movies maybe ;))
On PC’s my favorite music player was XMMS that’s why I still use it under Opie on PDA.
Some time ago I’ve found in the web an application (Bemused) for Symbian S60 phones that allows to control players over bluetooth, so I wrote my general-plugin for XMMS.
The source and ipkg file will be published later.
Update (12.02.2007):
- source of xmms_bemused_plugin (download)
- ipkg package (download)
UPDATE (21.02.2007):
In order to use 2GB SD card You need to run a proper Kernel version at least
handhelds-sa_2.4.19-rmk6-pxa1-hh42 (for StrongArm SA11XX) or
handhelds-pxa-2.4.19-rmk6-pxa1-hh42 (for h3900, h5500).
Card capacity above 2GB wont be supported on hardware like h3600/h3800/h5500 - SDHC (Secure Digital High Capacity) standard was developed much later
You’re going to need bitbake openembedded/familiar build enviroment.
1) Download and configure bitbake, openembedded.org/wiki/GettingStarted,
2)
The OE tree that is used for Familiar distribution builds has moved to handhelds.org. It currently resides in a Git repository at http://familiar.handhelds.org/git/familiar-build.git/. After installing Git run the following command to get a copy of the tree: git clone http://familiar.handhelds.org/git/familiar-build.git
The setup for build tool is described here http://familiar.handhelds.org/build-setup.html
3) When everything is configured and ready to compile, run the following command to build the kernel:
bitbake -b org.handhelds.familiar/packages/linux/handhelds-sa_2.4.19-rmk6-pxa1-hh42.bb
(for h3600/3800) or
bitbake -b org.handhelds.familiar/packages/linux/handhelds-pxa_2.4.19-rmk6-pxa1-hh42.bb
(for h3900/h5500)
NOTE: this should be a correct full/relative path to BB file.
4) After successful compilation You can add your new kernel ipkg files to the feed list (on iPAQ):
for example a new config file /etc/ipkg/new-kernel.conf
# Familiar v0.8.4 feeds
# kernel - essential packages
src/gz kernel http://host/ipkg/kernel-2.4.19-rmk-hh42/
put the ipkg and Package.* files in a proper place (for example local http server) and run command:
ipkg upgrade
If You want generate Package.* files for kernel only, just put all the ipkg files in separate directory
and then run this command:
ipkg-make-index . > Packages.new ; cp -f Packages.new Packages gzip Packages
this should create Packages files for ipkg tool - the ipkg-make-index can be located in staging bin directories.
After the kernel upgrades You should reboot your iPAQ.
Remeber to backup your system before You perform the upgrade - just in case.


Hello, Please could you add some more info / workaround about how you actually get +2GB SD/MMC working on your Ipaq with Familiar 0.8.4?
I have the same problem (bought 2GB Scandisk card) but no luck to bring it up on my H5550 Ipaq (Fam. 0.8.4 GPE)
Please be could you write a short howto? I went thru several posts on handhelds.org forum but no results..
Thank you,
Antonin Venzl
Short howto added, I hope it helps.
If You are not familiar ( Familiar ;)) with bitbake building tool just ask me if
I would build the kernel for you - maybe I will find time for this, but there is no
way to check if it works without the hardware.
Hello,
Thank’s very much for this walkthru! I’ll reserve some time for this during the weekend and then I’ll let you know about the results.
With best regards,
Antonin
Hello again, I tried, but always get this:
tony:/stuff/build/conf# git clone http://familiar.handhelds.org/git/familiar-build.git
/usr/bin/git-clone: line 30: curl: command not found
Cannot get remote repository information.
Perhaps git-update-server-info needs to be run there?
Any Ideas?
Using recent version of Debian Etch,
Linux version 2.6.18-3-k7 (Debian 2.6.18-8) (waldi@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-20)) #1 SMP Sun Dec 10 20:17:39 UTC 2006
I have bitbake package version:
tony:/stuff/build/conf# apt-cache showpkg bitbake
Package: bitbake
Versions:
1.6.6-1(/var/lib/apt/lists/sicherheitsschwankung.de_%7ejluebbe_debian_unstable_Packages)(/var/lib/dpkg/status)
1.6.2-6(/var/lib/apt/lists/sicherheitsschwankung.de_%7ejluebbe_debian_unstable_Packages)
1.6.2-5(/var/lib/apt/lists/sicherheitsschwankung.de_%7ejluebbe_debian_unstable_Packages)
1.6.2-4(/var/lib/apt/lists/sicherheitsschwankung.de_%7ejluebbe_debian_unstable_Packages)
1.6.2-3(/var/lib/apt/lists/sicherheitsschwankung.de_%7ejluebbe_debian_unstable_Packages)
1.6.2-2(/var/lib/apt/lists/sicherheitsschwankung.de_%7ejluebbe_debian_unstable_Packages)
1.6.2-1(/var/lib/apt/lists/sicherheitsschwankung.de_%7ejluebbe_debian_unstable_Packages)
Reverse Depends:
openembedded-essential,bitbake
Dependencies:
1.6.6-1 - python (2 2.3) python-support (2 0.2)
1.6.2-6 - python (2 2.3) python-support (2 0.2)
1.6.2-5 - python (2 2.3) python-support (2 0.2)
1.6.2-4 - python (2 2.3) python-support (2 0.2)
1.6.2-3 -
1.6.2-2 - build-essential (0 (null)) ccache (0 (null)) quilt (0 (null)) wget (0 (null)) cvs (0 (null)) subversion (0 (null)) git-core (0 (null)) monotone (0 (null)) unzip (0 (null)) texi2html (0 (null)) texinfo (0 (null)) gawk (0 (null)) svk (0 (null)) libxml2-utils (0 (null)) xmlto (0 (null)) passivetex (0 (null)) python-psyco (0 (null))
1.6.2-1 - build-essential (0 (null)) ccache (0 (null)) quilt (0 (null)) bison (0 (null)) wget (0 (null)) cvs (0 (null)) subversion (0 (null)) git-core (0 (null)) monotone (0 (null)) unzip (0 (null)) texi2html (0 (null)) texinfo (0 (null)) gawk (0 (null)) libxml2-utils (0 (null)) xmlto (0 (null)) passivetex (0 (null)) python-psyco (0 (null))
Provides:
1.6.6-1 -
1.6.2-6 -
1.6.2-5 -
1.6.2-4 -
1.6.2-3 -
1.6.2-2 -
1.6.2-1 -
Reverse Provides:
tony:/stuff/build/conf# apt-cache show bitbake
Package: bitbake
Priority: extra
Section: devel
Installed-Size: 796
Maintainer: Jan Luebbe
Architecture: all
Version: 1.6.6-1
Depends: python (>= 2.3), python-support (>= 0.2)
Filename: unstable/bitbake_1.6.6-1_all.deb
Size: 86120
MD5sum: a2c1e0e304a0857d3ae77a3812ff09b3
Description: build system used for embedded Linux distributions
BitBake is a simple tool for the execution of tasks. It is derived from
Portage, which is the package management system used by the Gentoo Linux
distribution.
It is most commonly used to build packages, as it can easily use its
rudimentary inheritence to abstract common operations, such as fetching
sources, unpacking them, patching them, compiling them, and so on.
It is the basis of the OpenEmbedded project, which is being used for
OpenZaurus, Familiar and a number of other Linux distributions.
Package: bitbake
Priority: extra
Section: devel
Installed-Size: 516
Maintainer: Jan Luebbe
Architecture: all
Version: 1.6.2-6
Depends: python (>= 2.3), python-support (>= 0.2)
Filename: unstable/bitbake_1.6.2-6_all.deb
Size: 84708
MD5sum: d042ad5c77ddbc24da0841ae8e7b2389
Description: build system used for embedded Linux distributions
BitBake is a simple tool for the execution of tasks. It is derived from
Portage, which is the package management system used by the Gentoo Linux
distribution.
It is most commonly used to build packages, as it can easily use its
rudamentary inheritence to abstract common operations, such as fetching
sources, unpacking them, patching them, compiling them, and so on.
It is the basis of the OpenEmbedded project, which is being used for
OpenZaurus, Familiar and a number of other Linux distributions
Package: bitbake
Priority: extra
Section: devel
Installed-Size: 516
Maintainer: Jan Luebbe
Architecture: all
Version: 1.6.2-5
Depends: python (>= 2.3), python-support (>= 0.2)
Filename: unstable/bitbake_1.6.2-5_all.deb
Size: 84480
MD5sum: 9fc951efba883fb835a8151668047bf7
Description: build system used for embedded Linux distributions
BitBake is a simple tool for the execution of tasks. It is derived from
Portage, which is the package management system used by the Gentoo Linux
distribution.
It is most commonly used to build packages, as it can easily use its
rudamentary inheritence to abstract common operations, such as fetching
sources, unpacking them, patching them, compiling them, and so on.
It is the basis of the OpenEmbedded project, which is being used for
OpenZaurus, Familiar and a number of other Linux distributions
Package: bitbake
Priority: extra
Section: devel
Installed-Size: 504
Maintainer: Jan Luebbe
Architecture: all
Version: 1.6.2-4
Depends: python (>= 2.3), python-support (>= 0.2)
Filename: unstable/bitbake_1.6.2-4_all.deb
Size: 82086
MD5sum: 47394060589bae1300a14b29e225b1b8
Description: build system used for embedded Linux distributions
BitBake is a simple tool for the execution of tasks. It is derived from
Portage, which is the package management system used by the Gentoo Linux
distribution.
It is most commonly used to build packages, as it can easily use its
rudamentary inheritence to abstract common operations, such as fetching
sources, unpacking them, patching them, compiling them, and so on.
It is the basis of the OpenEmbedded project, which is being used for
OpenZaurus, Familiar and a number of other Linux distributions
Package: bitbake
Priority: extra
Section: unknown
Installed-Size: 432
Maintainer: Jan Luebbe
Architecture: all
Version: 1.6.2-3
Filename: unstable/bitbake_1.6.2-3_all.deb
Size: 68984
MD5sum: 7e7c5a056a01589ee219355d0dffc94d
Description:
Package: bitbake
Priority: extra
Section: unknown
Installed-Size: 432
Maintainer: Jan Luebbe
Architecture: all
Version: 1.6.2-2
Depends: build-essential, ccache, quilt, wget, cvs, subversion, git-core, monotone, unzip, texi2html, texinfo, gawk, svk
Recommends: python-psyco
Suggests: libxml2-utils, xmlto, passivetex
Filename: unstable/bitbake_1.6.2-2_all.deb
Size: 69056
MD5sum: 6edcc9f8de582e79571e767c192bbe18
Description:
Package: bitbake
Priority: extra
Section: unknown
Installed-Size: 432
Maintainer: Jan Luebbe
Architecture: all
Version: 1.6.2-1
Depends: build-essential, ccache, quilt, bison, wget, cvs, subversion, git-core, monotone, unzip, texi2html, texinfo, gawk
Recommends: python-psyco
Suggests: libxml2-utils, xmlto, passivetex
Filename: unstable/bitbake_1.6.2-1_all.deb
Size: 68978
MD5sum: 183ee2a2c45a9746d2b93b56edc202c8
Description:
I also tested new H3900 Kernel build from Rene Wagner on http://handhelds.org/~rw/2.4.19-hh42/
The result was that SD card was finaly working fine but on the orher hand wireless radio was completely broken (it seems there is some problem with usb wlan atmel driver), at least I was unable to get working..
I’m starting to think about buying some smaller SD card and downgrading to default hh41 kernel to avoid this kind of problems…
best regards
Antonin
Hi,
about that log:
/usr/bin/git-clone: line 30: curl: command not found
just install the curl package.
If there is so many broken functionalities in kernel 2.4.19-42hh for your iPAQ model, mabe the best solution would be to stay with previous working version of kernel and back port the driver for mmc-block device:
kernel-module-mmc-base-2.4_2.4.19-rmk6-pxa1-hh42-r0_h3900. I see if my bitbake will work with h3900 and then I’ll let You know.
EDIT: please give me a full kernel name that You was running before.