Category Archives: IPv6

Mobile IPv6 on the N770

Following up from my earlier post. To save someone the trouble of building MIPL for Linux for the N770, you can find a Linux kernel here and mip6d here.

I’ve been trying the kernel out using the following command to upload the kernel:

flasher -l -b -k zImage-su-18-200730

And powering on the device, the mip6 kernel gets loaded (until the next reboot). Once it boots, its possible to copy mip6d onto the n770, as it appears as a USB storage device. Install X-Term, write a mip6d configure script, and off you go (I’ve not tested with IPsec yet though)!

I remain unconvinced about the usefulness of the n770/n800 type devices. They may be usefule for some remote control applications, although I’m not sure, more testing (using IPv6) is needed ;).


Nokia N770 build system.

In work I recently had to build a ‘build system’ for some work we are doing in the enable project. Using the information from here and here, I was able to build a MIPv6 kernel for the N700. The biggest hurdle was figuring out the build system, so, to make it easier for anyone else.

Using a clean install of Ubuntu 6.06 Desktop edition, the following steps were taken

1) The line:

deb stable main

was added to the file:


2) Next the following lines of code were run from a shell prompt:

$ sudo apt-get update

$ sudo apt-get install scratchbox-core scratchbox-libs \ scratchbox-devkit-debian scratchbox-devkit-doctools \ scratchbox-devkit-perl scratchbox-devkit-cputransp \ scratchbox-toolchain-cs2005q3.2-glibc-arm \ scratchbox-toolchain-cs2005q3.2-glibc-i386 \ scratchbox-toolchain-hostgcc

$ sudo /scratchbox/sbin/sbox_adduser $USER

3) After this, I logged out and logged back in.

4) Following this, the file from here was downloaded to

5) To create a target, the following was done:


6) This will bring up a text interface where you will be guided through creating a target. The target was named SDK2.2_ARMEL (in keeping with the existing documentation). The ARM compiler and not the i386 was selected as compiler. The devkits that were selected were:


For CPU Transparency (cputransp) the option that was selected from the list was


When asked to select rootstrap the file from step (4) above was selected.
When asked which files to install to target, all EXCEPT gdb were selected.

7) The following was used to log-in


To test that everything was working I built a kernel with

mkdir ~/kernel-build
apt-get install kernel-source-2.6.16
apt-get source su-18-kernel

cd su-18-kernel-2.6.16 $ dpkg-buildpackage -rfakeroot -uc -us -sa -d

If that was succesful, your now ready to begin! This worked for me, YMMV!

Work work work.

Wow, what a busy two weeks. I spent last week preparing for the GAISS field trial. Which was reasonably succesful, though I’m knackered after it. I was also acting as “Net Control” for the “Base” VHF/UHF Radio Station that we had set up for the weekend. Technically I had the easy job as I wasn’t actually walking, though I was wearing ‘many hats’ for the weekend (WIT/AREN/TARG).

Scott N1VG’s prototype OT2’s and T2-135’s worked very well over the weekend. And we had better voice communications than previous years, so we will call it a success on all fronts. I have a few pictures available here, most of the pics were supplied by others.

Back in the ‘salt mines’, several things went wrong this week. Came in on Tuesday to find both drives in a mirrored raid array had failed, thankfully we didn’t have too much on the drives, but it just goes to show, it can , and does happen. The best thing to come out of that was we re-checked that all our project data is being backed up properly. Then, last night, I was trying to access some IPv6 only sites from my home network (to test a SHIM6 enabled server in work), no joy. The laptop wasn’t getting the radvd advertised prefix. Checking it out, radvd is giving me an error:

radvd[8411]: sendmsg: Invalid argument

As a quick test, I downloaded the latest version of radvd, same problem, my guess now is that it is a kernel ( issue. It will have to wait until after the weekend, or SWMBO will shoot me.

Now, I think I’ll try and catch an hours sleep before the STS-117 launch later on this evening. About 20 minutes after launch, it should be possible to hear voice communications on their downlink frequency of 259.7MHz AM.

Feel free to have a listen at, your could also come join in the ‘fun’ with the uhf-satcom crowd, see for details.

Does what it says on the Tin!

I’ve had the pleasure to receive a new MacBook Pro for work, though I wasn’t particularly looking forward to the task of migrating all my data. I have to say Apple’s Setup Assistant has to be one of the most useful pieces of software ever! So far, the only casualty has been xchat. I remembered Bernard mentioned Babbel a while back, so I’ll give that a whirl instead.

Back up and running in less than 2 hours, thank you Apple!


I’ve been working quite a while now on the ENABLE project, specifically, we are looking at mobility protocols and evaluations of them. We have Mobile IPv6 running in the lab, and are currently working on building a Ubuntu LiveCD that is Mobile IPv6 Enabled. We are also looking at SHIM6 which, strictly speaking isn’t a Mobility protocol but a Multi-Homing Protocol. Thouth, in my (humble) opinion, in certain cases, there is little or no difference from the user perspective, but i digress.

Sébastien Barré has developed what he calls himself a “Pre-Alpha” implementation of SHIM6 available from I’ve been experimenting with it over the last week or so to see if I could get it working. In doing so I uncovered a subtle bug that took a bit of time for Sébastien and I to figure out (Credit to Sébastien).

Deliberately, we constructed identical set ups. Machine A with two ethernet ports (fec0::1, fec0::2), and machine B with one ethernet port (fec0::3). Sébastien was seeing correct behaviour, I was not (insert suitable expletives here!).

The correct behaviour would be to ssh to fec0::1 from fec0::3, disconnect the cable from fec0::1 and find that the session continues to work as normal (there is a 10 second delay for the protocol to spot that the connection has dissapeared, and for it to redirect the traffic). He was logging in using ssh and typing commands and it was all working fine. I was using scp and it wasn’t, then I logged in, ran ‘top’ and it still wasn’t, but strangely it was when I was just using single commands such as ls, df etc.

I’m still kicking myself for not spotting what was wrong sooner. Fair enough the code is pre-alpha, but roughly he is tagging the shim6 extension headers onto the TCP Packet. Using scp or top, the ethernet bursts are 1500 bytes long. His code sticks 8 bytes onto it and its now 1508 bytes long. Which means it breaks. My temporary solution is to run the command:

ifconfig mtu 1400

on every ethernet interface. Its working now (even Jerry H. was impressed), and rather than continue to hassle Sébastien, it might be time to start digging into code and attempt to fix it… god help us all!