N810 and IPv6
14 Feb 2008 12:36:00 maemo, networkNokia N810 can indeed run an IPv6 stack and the applications can (and do) take advante of it, too!
I’ve had my Nokia N810 for about a month now, and while I haven’t had too much time to play around with it, I have managed to get 5795 points in Pipepanic and complete all boards of built-in single-player Mahjongg around three minutes. Projects such as modifying GPE Calendar to use alarmd have been on hold.
IPv6 has always been something I’ve been quite enthusiastic about. I know really know why, but that’s just how things are. The bad thing is that OS2008 doesn’t come with IPv6 enabled. I wonder why. The whole deal seems rather trivial if you already have everything else set.
Getting IPv6 to work can be divided in three steps.
- Enabling IPv6 support in kernel.
- Configuring networking: setting up address and routes.
- Configuring applications to use IPv6.
Kernel
Making N810 an IPv6-enabled device obviously starts with having a kernel with
IPv6 support. There is a guide on how to compile a kernel for Maemo 4.0 at
maemo.org. I didn’t create a new Scratchbox target but used
script-created sbox-CHINOOK_ARMEL
instead.
After getting default configuration with make nokia_2420_defconfig
I edited
.config
, set CONFIG_IPV6=y
, and run make oldconfig
. Apart from mobile
IPv6 (CONFIG_IPV6_MIP6
) I compiled other IPv6-related items as modules, even
though I never copied the modules in place. That will have to wait.
make oldconfig
also asked about crypto features; I mostly used the default
values. Once make
was done with the configuration, I compiled the kernel and
flashed the device with new kernel. As far as I can tell, everything went
smoothly this far.
Configuring networking
At first I was a little worried since ifconfig
didn’t list any IPv6
addresses, not even link-local. I compiled ip
from Debian’s iproute
package, copied it to the device just to find out the device had already
received an autoconfigured address and route. So far so good. If this step
would fail, ip
could be used to configure the network.
If you don’t have native IPv6 connectivity, SixXS can probably help
you with that. I’m sure aiccu
compiles for Maemo.
Application support
Built-in browser in OS2008 is fully IPv6 capable, but DNS-lookups for
AAAA-records is disabled by default. This can be changed easily by entering
about:config
and setting network.dns.disableIPv6
to false
. That’s all.
Then what?
The next thing would be to create a new initfs with additional modules for IPv6
and crypto, and to compile busybox with IPv6. If you want/need ping6
for
testing, you can use iputils
sources from your local Debian mirror.
I don’t know about IPv6 support of other application that come with OS2008, but then again I don’t really use them. I’ve surely had enough with the built-in E-mail client… Personally I’m already quite happy to see dancing kame at http://www.kame.net/. :-)