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.

5 Responses to “iPAQ 3870”

  1. 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

  2. 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.

  3. 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

  4. 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

  5. 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.

Leave a Reply

You must be logged in to post a comment.