Reply
Thread Tools
Posts: 2,153 | Thanked: 8,462 times | Joined on May 2010
#1
Update: 24.03.2013 - New version 0.2: Fixing stateless configuration

Info:
I created metapackage package ipv6-support which install all other packages needed for IPv6 support on Nokia N900. IPv6 needs custom IPv6 enabled kernel, by default will be installed kernel-power. Instalation configure MicroB browser, avahi-daemon, mDNS, resolv.conf for ipv6 support. It also install dhcpv6 wide client and (non-free) ipv6 plugin for ICD2 (Internet Connection daemon) from Diablo. All packages are in extras-devel.

Installation:
Just install package ipv6-support via HAM or apt-get.

After package is installed and n900 is rebooted, to all dhcp networks (dual stack, ipv4 only, ipv6 only) can be connected via default ICD network connect dialog. Connecting to network dhcpv6 ipv6 only will take more time because icd2 waiting until dhcpv4 got ip address or got timeout...

In version 0.2 was fixed stateless configuration (without dhcpv6) and stateless dhcpv6 configuration (dhcp server send only dns info). So dhcpv6 client is spawned only if router send RA packet with O or M bit and is spawned in correct mode.

http://maemo.org/packages/view/ipv6-support/

If there is more configuration for ipv6 support write down to this thread. It can be added to ipv6-support metapackage.

Because non-free ipv6 plugin for ICD2 from Diablo is thumb compiled, it is needed kernel with thumb patches (e.g kernel-power). I updated ipv6-support package to depends on thumb kernel. So problems with segfault should be fixed.

Upgrade:
If you have problems with upgrading from 0.1 to 0.2 uninstall ipv6-support and install it again. This is because HAM cannot resolve dependences correctly...

Last edited by pali; 2020-10-02 at 23:12.
 

The Following 37 Users Say Thank You to pali For This Useful Post:
Posts: 1,141 | Thanked: 781 times | Joined on Dec 2009 @ Magical Unicorn Land
#2
I use T-Mobile in the US and the same gprs access point name is used for IPv6 or IPv4, but dual-stack is not supported. I installed this package but seems I cannot add a second gprs connection via the settings UI, nor specify whether the existing connection should use IPv4 or IPv6. Is this possible? That way I could explicitly connect to IPv4 or IPv6.

BTW I can use the package at https://code.google.com/p/n900ipv6/ to do this but I deleted settings and removed it prior to testing your ipv6 package so there should be no interference.

Also, for case of IPv6-only, some implementation of nat64/xlat/clat/whatever you call it, will be useful for applications who don't support IPv6 or for programs connecting to IPv4 literal addresses. Again there is a nat64d package at https://code.google.com/p/n900ipv6/ but its implementation has an obsolete T-Mobile US route hardcoded and does not autoconfigure. It has been ported to Android and looks like more improvements have been made there, don't know if it would be possible to backport them to the N900 version.

Thanks!
 

The Following User Says Thank You to stlpaul For This Useful Post:
Posts: 1,141 | Thanked: 781 times | Joined on Dec 2009 @ Magical Unicorn Land
#3
Using this all day, now I can report some problems:

Sometimes when trying to connect to wifi AP, apparently nothing happens. Status icon never appears and it does not connect. I ran icd2 in console but nothing is shown. (When wifi connects properly, some messages are shown by icd2).

It seems like wifi connects properly the first time I connect after icd2 is started, but subsequent connections fail. If I kill -9 the icd2 process and restart it, I can connect to wifi again.

Once when connected to wifi, icd2 crashed with message "Illegal instruction".

Sometimes wifi connects, but just does not actually work. I have not been able to reproduce this, it is random.

Similarly, when I try to connect to gprs the first time after icd2 is started, it works normally. However, after connecting to wifi, the next connection to gprs causes the status icon to blink like it is attempting to connect, but it actually connected successfully. Icon blinks forever in status area. I ran icd2 in console but no messages are displayed during this process at all.

Let me know if there is anything I can provide to help debugging. I am using cssu-testing and kp50 with an N900 rev2101. Thanks!
 

The Following User Says Thank You to stlpaul For This Useful Post:
D@vIcHoJD's Avatar
Posts: 236 | Thanked: 95 times | Joined on Jan 2012 @ Ecuador
#4
I have the same problem happened to me 2 times, and I had to reboot.
 

The Following User Says Thank You to D@vIcHoJD For This Useful Post:
Posts: 2,153 | Thanked: 8,462 times | Joined on May 2010
#5
IPv6 via GPRS is not supported by this package. I do not have IPv6 mobile provider, so I cannot test it. But I can push project https://code.google.com/p/n900ipv6/ to Extras-Devel and make ipv6-support package to depends on n900ipv6 (as ipv6-support is metapackage).

Also now only dhcp (v4 and v6) newtworks are supported. This is restriction by closed source nokia icd ipv6 package. There is also static ipv6 address configuration, but I did not find gconf keys used for it.

Other problems (related to icd) is hard to fix because both icd modules (ipv4, ipv6) are closed and also icd2 daemon is closed...
 

The Following 5 Users Say Thank You to pali For This Useful Post:
Posts: 1,141 | Thanked: 781 times | Joined on Dec 2009 @ Magical Unicorn Land
#6
OK, thanks for the explanation. For now I consider it unusable because of the icd2 bugs, so I will uninstall, but I'm happy to test again if there's any update.

My wifi IPv6 uses radvd-based autoconfig (not DHCPv6) so that explains why I've been able to use wifi ipv6 successfully without this package.

I don't know if I fully understand the role of icd2, but if this version cannot be used reliably, maybe we can find a workaround by putting dhcpv6 commands in the if-up scripts or something... I do not have access to a dhcpv6 wifi network so I've never researched it, probably there are already ways to accomplish this.

With regard to the gprs packages I linked, they are hardcoded by default for t-mobile USA, so probably not appropriate to include in the metapackage at this time unless some new maintainer can adopt them and make them more generic.

D@vIcHoJD, instead of reboot try to run these commands in a root shell:
Code:
initctl stop icd2
initctl start icd2
That will restart icd2 without rebooting the whole device (warning: open network connection will be killed when you stop icd2)
 

The Following 2 Users Say Thank You to stlpaul For This Useful Post:
Posts: 2,153 | Thanked: 8,462 times | Joined on May 2010
#7
@stlpaul:

From my icd2 investigation:

User call icd dbus method to "activate connection" (via status menu network list). icd will read list of plugins (from gconf) for that connection and start calling activate method of each plugin. But icd does not call next plugin until current does not tell icd "method call success" or "method call failed". if failed then icd deactivate connection and show error message - it will not try to continue.

ipv4 plugin method waiting for dbus signal DHCP connected which is sent via dbus-send from udhcpc script. ipv6 plugin method waiting for dbus signal DHCP6 connected which is sent again via dbus-send from dhcp-wide (v6).

both ipv4 and ipv6 support static ip address assign (from gconf key) and then dhcp client is not spawned and plugins tell immediately to icd "method success".

so ipv4 only network has problem that ipv6 plugin always fail if is not has static ip address config. I do not know correct gconf key for ipv6 plugin, so I workaround is: udhcpc script will send to icd dbus signal DHCP connected and DHCP6 too.

for (dhcp) ipv6 only networks workaround: when udhcpc timeout it send DHCP (v4) connected too, so icd spawn dhcp-wide v6 (thinks that ipv4 is already up). if dhcp-wide v6 will timeout, then it send DHCP6 disconned signal to icd and icd will disconnect network.

So for radvd ipv6 networks possible solution would be: if ipv6 address is assigned to wlan0 interface send both DHCP and DHCP6 connected dbus signal. icd then mark connection as connected. (dhcp v4 and dhcp v6 clients will be still running on background, but this could not be problem... they are small so no memory eating)
 

The Following 6 Users Say Thank You to pali For This Useful Post:
Posts: 2,153 | Thanked: 8,462 times | Joined on May 2010
#8
@stlpaul, D@vIcHoJD: Now problem with connection and disconnection should be fixed.

And problem when icd2 crashing with Illegal instruction is because that nokia (closed) icd2 module is thumb compiled. Solution for that is to use kernel with thumb support (e.g kernel-power). I updated dependency, so ipv6-support package install kernel with ipv6 support and also with thumb.
 

The Following 4 Users Say Thank You to pali For This Useful Post:
Posts: 2,153 | Thanked: 8,462 times | Joined on May 2010
#9
Pushed old version of ipv6 package libicd-network-ipv6-scripts. Now I pushed new which should fix more problems. Please upgrade libicd-network-ipv6-scripts package via apt-get (HAM will not update it) or uninstall and install again ipv6-support package via HAM.
 

The Following 2 Users Say Thank You to pali For This Useful Post:
Posts: 4 | Thanked: 1 time | Joined on Mar 2012 @ Russia, Moscow
#10
 

The Following User Says Thank You to Alexeicher For This Useful Post:
Reply

Tags
ipv6-support


 
Forum Jump


All times are GMT. The time now is 12:13.