Compiling the Kernel for the SL-C700 with IPv6 Support
From OESF
I took this how-to from http://www.linux-ipv6.org/%7Ekunitake/zaurus/
NOTE: The USAGI ipv6 stack is not the official ipv6 stack and you do not need any patches to compile the official stack.
Setup your Cross-compiling environment
http://www.zaurus.com/dev/tools/other.htm
If you are a Debian user, you can convert deb packages from rpm by using the alien command.
$ fakeroot alien package.rpm
These packages were installed at following directory.
/opt/Embedix/tool
So, You need to set a path.
bash $ export PATH=/opt/Embedix/tools/bin:$PATH
csh $ setenv PATH /opt/Embedix/tools/bin:$PATH
kernel recompiling (for SL-C700)
If you want to use IPv6, please use the USAGI stack. http://www.linux-ipv6.org/
I'll try to explain how to recompile the kernel based on USAGI. Sharp provide source code based on 2.4.18, therefore we need to download a usagi-snapshot based on 2.4.18.
* ftp://ftp.linux-ipv6.org/pub/usagi/snap/kit/usagi-linux24-s20020722.tar.bz2
Next, we should download thr following patches for the Zaurus.
* linux-2.4.18-rmk7-pxa3-embedix-slc700-slb500-20021214-rom1_00.bz2 http://more.sbc.co.jp/sl_j/source/source_dl.htm#source-B500-100JP
* ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/patch-2.4.18-rmk7.bz2 * ftp://ftp.arm.linux.org.uk/pub/linux/arm/people/nico/diff-2.4.18-rmk7-pxa3.gz
This assumes that you downloaded these patches to $somewhere.
First, uncompress the USAGI code.
$ cd $somewhere $ bzip2 -cd usagi-linux24-s20020722.tar.bz2 | tar xvf - $ cd usagi $ make prepare TARGET=linux24 $ cd kernel/linux24
Apply the following patches
$ bzcat $somewhere/patch-2.4.18-rmk7.bz2 | patch -p1 $ zcat $somewhere/diff-2.4.18-rmk7-pxa3.gz | patch -p1 $ bzcat $somewhere/linux-2.4.18-rmk7-pxa3-embedix-slc700-slb500-20021214-rom1_00.bz2 | patch -p1
I think a conflict occurs in the Makefile. Please apply this patch.
* zau-usa.patch http://www.linux-ipv6.org/%7Ekunitake/zaurus/zau-usa.patch
$ patch -p1 < $somewhere/zau-usa.patch
Now our target is C700, that is why we need to use arch/arm/def-configs/corgi
$ cp arch/arm/def-configs/corgi .config
$ make menuconfig
If you want to use davfs2, You should select "Coda file system" option too.
menuconfig
Finally, we start compiling. Please comfirm your $PATH. (include /opt/Embedix/tools/bin ?)
$ make dep; make clean;make zImage
Setup new kernel of Zaurus
Transfer your new images to a CF card and flash the zaurus.
After reboot Zaurus, please confirm interface addresses. I think you find IPv6 addresses(::1) with lo interface.
$ ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3274 errors:0 dropped:0 overruns:0 frame:0
TX packets:3274 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:596683 (582.6 KiB) TX bytes:596683 (582.6 KiB)
Install IPv6 applications:
* ssh * tcp_wrappers * inetd * telnet * w3m * cvs * ncftp * ninfod * pfkey * ppp * cadaver * davfs2 * vnc * usagi-tools
http://www.linux-ipv6.org/~kunitake/zaurus/feed/

