Issues with IPv6 configuration

I recently did a completely fresh installation of OSMC on my Raspberry Pi 4, and to my surprise found I was unable to configure IPv6 as I have done in the past. When attempting to use connmanctl, I received an error similar to the below:

root@osmc:/opt# connmanctl config ethernet_dca6324bbf2c_cable --ipv6 auto
Error ethernet_dca6324bbf2c_cable: Not supported

The result was the same no matter which command, or combination of commands, I tried. Inspecting the service revealed something interesting:

connmanctl> services ethernet_dca6324bbf2c_cable
/net/connman/service/ethernet_dca6324bbf2c_cable
Type = ethernet
Security = [ ]
State = online
Favorite = True
Immutable = True
AutoConnect = True
Name = Wired

Output above has been omitted for brevity. I believe the Immutable = True line to be the cause of my problems. To get around this, I deleted the osmc.config file and rebooted the system, following which I was able to enable and configure IPv6 as usual.

My questions are as follows:

  • Is this expected behaviour?
  • Does the process mark the file/config as immutable somehow?
  • Is it not realistic at this point to either have IPv6 enabled by default, or to allow IPv6 configuration during initial setup?

For reference, current OSMC version is as below:

PRETTY_NAME=“Open Source Media Center”
NAME=“OSMC”
VERSION=“July 2023”
VERSION_ID=“2023.07-1”
ID=osmc
ID_LIKE=debian

I have not had this problem in the past when configuring IPv6, which is why this does not make sense to me.

Have you enabled IPv6 before and do you remember which version of OSMC you were on?

Hi Sam,

I have enabled IPv6 at least twice before. I cannot remember exactly which versions, but I believe the last time I did it, OSMC was based on Kodi 19 (pretty sure it was last year somewhere). The first time was probably Kodi 17 or 18.

I followed precisely the same steps this time around, so I was rather surprised and confused when I saw “Not supported” - same hardware, same steps as previously.

I am happy to assist with configuration and testing if needed.

We’ve had some ConnMan upgrades over this time.

Did you always test on a Pi 4? Those older versions wouldn’t have been available for Pi 4

Cheers

Sam

I have only ever used OSMC on my Pi 4, so I can safely rule out differing hardware in this case. I am confused myself as to why something which has worked for me in the past would be problematic after a completely fresh install - this was the only thing I could pick up while troubleshooting.

I get this on my RPi4B

root@osmc-pi4:~# lsmod |grep -i ipv6
nf_defrag_ipv6         24576  1 nf_conntrack
ipv6                  581632  66
root@osmc-pi4:~# sudo connmanctl
connmanctl> services
*AO Wired                ethernet_dca632d63aaa_cable
connmanctl> config ethernet_dca632d63aaa_cable --ipv6 auto
connmanctl> exit
root@osmc-pi4:~# ifconfig
eth0: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC>  mtu 1500
        inet 10.10.10.41  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 2001:9e8:c962:3000:dea6:32ff:fed6:3aaa  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::dea6:32ff:fed6:3aaa  prefixlen 64  scopeid 0x20<link>
        inet6 fd00:10:10:10:dea6:32ff:fed6:3aaa  prefixlen 64  scopeid 0x0<global>
        ether dc:a6:32:d6:3a:aa  txqueuelen 1000  (Ethernet)
        RX packets 75815  bytes 8407785 (8.0 MiB)
        RX errors 0  dropped 23534  overruns 0  frame 0
        TX packets 25468  bytes 1825359 (1.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 10703  bytes 919073 (897.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10703  bytes 919073 (897.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

If you found a so-called provisioning file with the extension “.config” under “/var/lib/connman”, it will most likely not have been created automatically by connman, but was created manually by you.

1 Like

@RZR7332 @sam_nazarko Playing with the osmc installer for the RPi4 platform I meanwhile learned that the installer is creating such provisioning omsc.config file, if you created an sd card for a fix ip address usage.

The osmc.config file in /var/lib/connman shows e.g. a content of

[global]
Name=OSMC Provisioning File
Description=This provisioning file is created and updated by My OSMC and OSMC in
stallation

[service_ethernet]
Type=ethernet
IPv4=10.10.10.41/255.255.255.0/10.10.10.1
IPv6=off
Nameservers=10.10.10.201,10.10.10.202

and it is per default ‘immutable’. To use ipv6 you either have to change the entry ipv6=off to ipv6=auto to use ipv6 dhcp or specifiy a a fix ipv6 address there.
Removing the osmc.config scompletely witches to ipv4 dhcp and you can activate in addition ipv6 dhcp as shown above.

That’s good to know.

It’s the add-on that does that on first boot I believe.

Can you confirm if setting IPv6=auto keeps it disabled but still makes it configurable? I don’t quite want to enable IPv6 just yet by default.

Sam

As I wrote ipv6=auto activates ipv6 to get an address via dhcp in the osmc.config provisioning file.

Due to the immutable property when using provisioning files, subsequent changes and the use of .config files are mutually exclusive.

Thanks @JimKnopf, appreciate the details. This was my original workaround, doing configuration in that file to have the changes propagated to the NIC. It is not ideal, as I set a static IPv6 address as well as enable privacy extensions.