Howto setup ipv6 on the Sharp Zaurus.
It's my pleasure to help you. You would need the Linux kernel source for the Sharp Zaurus and the cross-compiling environment bothavailable at Sharp's web site (http://more.sbc.co.jp/slj/index.asp). There also is a good documentation to build the kernel (http://more.sbc.co.jp/slj/source/build_image112.asp). The cross-compiling environment can be built on !RedHat Linux. You will need a !CompactFlash memory card (>32MB) to update the kernel.
The procedure is as follows:
1. Update your FlashROM image (binary) to 1.12 or 1.13 2. Prepare the cross-compiling environment. 3. Get the kernel source. 4. Configure and build the kernel. 5. Transfer the kernel image to FlashROM. 6. Enable the IPv6 code
Please note that the newly built kernel does NOT support SD cards as described in the Sharp's document.
The following is the detailed procedures: 1. Update your FlashROM image (binary) to 1.12 or 1.13
The latest FlashROM image and the kernel source code is different from the shipped FlashROM image. I recommend that you first update the binary FlashROM image to the latest version which matches the version of the kernel you are going to build. The FlashROM image can be downloaded from http://more.sbc.co.jp/slj/download.asp The update procedure is documented in http://more.sbc.co.jp/slj/download/readme/readme_romimage112.asp Please read it carefully. If you use the Windows driver (Intellisync or Qtopia Desktop), you will also need to update these drivers.
2. Prepare the cross-compiling environment.
See [Cross-compiling howto | http://docs.zaurus.com/linux_compiler_setup_howto.shtml]
3. Get the kernel source.
You can either download the entire source http://more.sbc.co.jp/slj/source/linux-sl5000d-20020318.tar.bz2 or the patch to ARM-Linux kernel http://more.sbc.co.jp/slj/source/linux-2.4.6-rmk1-np2-embedix-20011228-sl5000d-20020318.gz As describe in the Sharp's document, you will also need linux-2.4.6.tar.bz2 patch-2.4.6-rmk1.gz diff-2.4.6-rmk1-np2.gz if you are going to use the patch.
4. Configure and build the kernel.
As the document says, please configure the kernel as follows:
- $ cd linux
- $ make menuconfig
- --> Load an Alternate Configuration File
- input "arch/arm/def-configs/collie"
- select "ok"
- select "Exit"
- Do you wish to save your kernel configuration? -> Yes
The default configuration does not enable IPv6, so you will also need to enable it.
- $ make menuconfig
- --> Networking options
- --> The IPv6 protocol (EXPERIMENTAL)
You can either embed the IPv6 protocol stack to the kernel (displayed as '<*>') or make it separated as a loadable module (displayed as '<M>'). I tried the latter.
- Now, you can build the kernel.
$ make dep; make clean; make zImage
I you are going to build the IPv6 code as a module, please do
- $ make modules
5. Transfer the kernel image to !FlashROM.
Copy the built kernel (linux/arm/boot/zImage) to an empty !CompactFlash card. The update procedure is same as the binary update procedure except that you use the 'zImage' file instead of 'ROMIMAGE' file. Please refer http://more.sbc.co.jp/slj/download/readme/readme_romimage112.asp
6. Enable the IPv6 code
If you have embedded the IPv6 protocol stack to the kernel, you are ready. You can see 'inet6 addr' lines with ifconfig command. If you have built as a module, you should copy the module and load it. Copy the linux/net/ipv6/ipv6.o to !CompactFlash card, and copy it to the Zaurus's built-in ROM.
- # mkdir -p /lib/modules/2.4.6-rmk1-np2-embedix/kernel/net/ipv6/
- # cp /mnt/cf/ipv6.o /lib/modules/2.4.6-rmk1-np2-embedix/kernel/net/ipv6/
- # depmod -a
- # modprobe ipv6
Please ask me if you encounter any problems. Best Regards, [Kobayashi Shinji]