Dell Axim X50/X51(v) Howto's
Home | Hardware | Downloads | Documentation | How To | Pictures and Screenshots |
x50(v) Mailing List
Contents
Download
Angstrom/GPE images by Patrick Steiner:
Old downloads:
-
X50v / X51v : http://jn.graux.free.fr/x51v-linux/
-
X50(v) (old kernel version) : http://x50v.imploder.org/?page_id=4
Boot and log in via USB using Angstrom image
Backup (only needed on X50(v))
Before you begin, do a full backup to either your SD-Card or your CF-card. This page contains all you need to know about x50v native bootloader and backing up the ROM:On X50(v), running Haret will have the same effect as a hard reset, so if you don't backup, you will lose your data. You have been warned.
Booting Instructions
-
Follow
README instructions.
-
on X50v/X51v, enable Mirror Mode(Start>Settings>System>Mirror).
-
Place Axim in cradle.
-
Boot using HaRET.
-
Wait for 30 secondes, remove axim from cradle and place it back (Axim usb0 now detected).
Log in from Linux
-
ifconfig usb0 10.0.0.1 (configure PC side)
-
ssh root@10.0.0.2
-
enter password "x50v-linux" You should now be logged in to your x50(v)/x51(v).
-
On X51(v), to go back to Wince, just do shutdown -r now and when prompted, press mail key. Be careful, do NOT press contacts key as it will restore factory settings !!!! You can also do shutdown -h now and then press the reset button.
NFS setup on your computer (deprecated ?)
The current initrd.gz will attempt to mount the rootfs from a NFS share at 10.0.0.1/home/x50v-root
If the nfs mount fails, it tries to mount the rootfs from SD card
On PC, as root(su), extract the .img file to /home/x50v-root/
mount -o loop x50v-rootfs.img /home/x50v-root/
/etc/exports
/home/x50v-root 10.0.0.*(rw,insecure,sync,no_wdelay,no_root_squash)
Mount system locally to test that NFS share is working
mount -t nfs 10.0.0.1:/home/x50v-root mdir
Setting up usbnet on the desktop (deprecated ?)
Usbnet on the desktop can be quite tricky. As mentioned above with Setting up the desktop for root over NFS you'll be too slow every time with manual configuration of usbnet. See the UsbNet page for automatic setup instructions.
Manually compile a kernel
1. Get 2.6 Kernel sources from the handhelds.org cvs.Login:
cvs -d :pserver:anoncvs@anoncvs.handhelds.org:/cvs login
When prompted for a password, type 'anoncvs'
Now checkout the 2.6 kernel source
cvs -d :pserver:anoncvs@anoncvs.handhelds.org:/cvs checkout -d linux-2.6.x-hh linux/kernel26
At a later date, if you want to recompile your Kernel, download updates 1st by using "cvs update -d" instead of the previous line.
2. Generate .config in the root of the kernel dir.
You can use the default config file provided for Axim X50/X51(v) by copying it to your kernel source root folder :
cp arch/arm/configs/aximx50_defconfig .config
There are a number of different ways to edit the .config file :
-
make xconfig
-
make gconfig
-
make menuconfig
4. Add Cross compiler toolchain for ARM to your PATH Get a ready to go precompiled toolchain here
ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2 extract it "tar -xvjf arm-linux-gcc-3.4.1.tar.bz2" within the newly extracted folder will be a bin directory. Add this to your PATH.
If you are using a Debian system, a cross-build environment can also be installed from
http://www.emdebian.org/.
5. Make Your Kernel
A simple
make
should be enough. If you are using emdebian build environment, use :
CROSS_COMPILE=arm-linux-gnu- make
When completed, /linux-2.6.x-hh/arch/arm/boot/ should contain a zImage file (Your Kernel).
6. Make and install your modules
You need to be root for this :
su
[CROSS_COMPILE=arm-linux-gnu-] make DEPMOD=echo \
INSTALL_MOD_PATH="Destination Path(Make A Libs Dir)" modules_install
Build a Debian System
To build and boot a Debian system for Axims, you have to :
0. Have a debian workstation.
1. Install qemu as described at
http://wiki.debian.org/QemuUserEmulation?highlight=%28qemu%29.
2. Make and format partitions on an 1GB SD card. For example, if your SD card is recognized as /dev/sdd :
fdisk /dev/sdd -> create a swap partition (/dev/sdd1) and your root partition (/dev/sdd2). mkfs.ext3 /dev/sdd2
3. mount /dev/sdd2 <somewhere>
4. Install the Debian base packages with :
debootstrap --foreign --arch arm sid <somewhere> http://ftp.debian.org/debian
5. Add the statically built qemu :
mkdir -p <somewhere>/usr/lib/qemu-binfmt cp /usr/bin/qemu-arm-static <somewhere>/usr/lib/qemu-binfmt/arm
6.
chroot <somewhere>
-
You are now executing ARM code on your workstation thanks to qemu !
7. Finish the root intallation with :
/debootstrap/debootstrap --second-stage
8. Do a minimum of configuration :
-
- activate a serial terminal in inittab by uncommenting
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
-
- give a /etc/fstab file. It should be something like :
/dev/mmcblk0p2 / ext3 defaults 0 0
/dev/mmcblk0p1 none swap sw 0 0
proc /proc proc defaults 0 0
-
- add a password for root with passwd.
9. Modify the kernel command line in your HaRET script to :
set cmdline "mem=64M console=ttyS0,115200n8 root=/dev/mmcblk0p2"
10. Build a kernel zImage and initrd.img from the Handhelds CVS (see here).
-
To do it, you need an ARM cross toolchain. It may be installed as described at
11. Configure your kernel (possibly using an existing config file) and build the Debian kernel package with :
fakeroot make-kpkg --uc --us --initrd kernel_image --zimage --arch arm
12. Copy this package in your chroot jail (<somewhere>/usr/src is a good choice) and install it with :
dpkg -i linux-image*.deb
13. Copy the /boot/vmlinuz-* and /boot/initrd.img-* files in the HaRET folder of your PDA, respectively as zImage and initrd.gz.
14. Exit your chroot session, unmount your SD card and insert it in your PDA.
15. Boot using HaRET. You can log in thanks to the serial line using gtkterm or minicom.