IPv6 and Busybox

I’m trying to enable IPv6 support, but looking at ifconfig makes me wonder if busybox is compiled with IPv6. I’m using the DigiEL-4.2 toolchain and ESP. If busybox is not build with IPv6 support, can you supply me a version that is?

On a side note: would it be possible to add the busybox source to the build environment and add the busybox configuration to the xconfig that comes with the current ESP?

TIA,
Philo

Ok, here’s an update from Digi:

  • the shipped uclibc library in del-4.2 have support for IPv6.
  • the shipped busybox binary in del-4.2 does not have support for IPv6.
    From busybox point of view this means that the networking applets of busybox do not support ipv6.

The library does support IPv6, so customers can create IPv6 applications.

If customers need busybox applets to work with IPv6 (like ifconfig
applet) then they must rebuild busybox.

To do so,
1)rebuild and install kernel to enable IPv6 support there

  1. rebuild busybox - use the tarball included in del-4.2 DVD:

/toolchain/packages/busybox-1.11.3.tar.bz2
unpack it to whatever directory:

Then use the following patch to set exactly the same configuration we
provide:

/toolchain/builder/packages/busybox/patch/target/busybox-1.11.3-config.patch

cd

patch -p1 < …/busybox-1.11.3-config.patch

This is what I did:

bzip2 -d busybox-1.11.3.tar.bz2
tar xvf busybox-1.11.3.tar
cd busybox-1.11.3
cp …/busybox-1.11.3-config.patch .
patch -p1 <./busybox-1.11.3-config.patch

Then
make menuconfig
or
make xconfig
or
make gconfig
enable IPv6 and ping6:

export PATH=/usr/local/DigiEL-4.2/bin:$PATH
export CC=arm-linux-gcc
export CROSS_COMPILE=arm-linux-
make
make CONFIG_PREFIX=/exports/nfsroot-cc9p9360js install
If you do this you will have to repeat it every time you rebuild/install new kernel from DIGI ESP
or alternatively
make CONFIG_PREFIX=/usr/local/DigiEL-4.2/rootfs/rootfs_base
to install new busybox in to your 4.2 tree. That path is the exactly location where our busybox is stored. So installing the new busybox there allows to have that updated on every project you create later.

BUT this manual tweak in the DigiEL-4.2 directory affect the package manager. Here the package manager “masters” tell me that you can manually substitute busybox there, but if later there is a official package to update busybox you’ll get a warning because the md5sum won’t match you real busybox binary.

Once you boot using your new kernel and busybox you should have IPv6 support:
/ # ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:04:F3:00:6C:EB
inet addr:192.168.42.31 Bcast:192.168.42.255 Mask:255.255.255.0
inet6 addr: fe80::204:f3ff:fe00:6ceb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2164 errors:0 dropped:0 overruns:0 frame:0
TX packets:1279 errors:0 dropped:0 overruns:0 carrier:0
collisions:284 txqueuelen:1000
RX bytes:2052574 (1.9 MiB) TX bytes:194250 (189.6 KiB)

Also I can ping myself now:

ping6 fe80::204:f3ff:fe00:6ceb

PING fe80::204:f3ff:fe00:6ceb (fe80::204:f3ff:fe00:6ceb): 56 data bytes
64 bytes from fe80::204:f3ff:fe00:6ceb: seq=0 ttl=64 time=1.599 ms
64 bytes from fe80::204:f3ff:fe00:6ceb: seq=1 ttl=64 time=1.344 ms
64 bytes from fe80::204:f3ff:fe00:6ceb: seq=2 ttl=64 time=1.341 ms
64 bytes from fe80::204:f3ff:fe00:6ceb: seq=3 ttl=64 time=1.335 ms ^C
— fe80::204:f3ff:fe00:6ceb ping statistics —
4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 1.335/1.404/1.599 ms