Wifi dongle mac address keeps changing (rpi3, realtek dongle)

Hi,

I need my pi to have a static ip. I use DHCP and have my router (tp-link archer 9, stock firmware) reserve the ip using the pi’s mac address.
Occasionally, the pi will completely lose its wifi connection. I’ll reconnect manually through the GUI in MyOSMC and it’ll get a new IP instead of the reserved one. I’ll then check my router and see that the reported mac address is different than the one assigned to the reserved ip. The 3 part prefix is always the same.

Since OSMC is using connman, and connman seems to save the settings based on the mac address, and the address changes, it “forgets” the settings. Here’s some proof, see all these different mac addresses?

osmc@osmc2:~$ ls -la /var/lib/connman
total 32
drwxr-xr-x  7 root root 4096 Mar 17 21:17 .
drwxr-xr-x 19 root root 4096 Feb 11 13:50 ..
-rw-------  1 root root  178 Feb 12 23:13 settings
drwx------  2 root root 4096 Mar 17 21:21 wifi_00e04c10d914_57756262614c756262614475624475622d35_managed_psk
drwx------  2 root root 4096 Feb 11 14:49 wifi_00e04c2455c5_57756262614c756262614475624475622d35_managed_psk
drwx------  2 root root 4096 Feb 19 21:55 wifi_00e04c4d6bab_57756262614c756262614475624475622d35_managed_psk
drwx------  2 root root 4096 Feb 12 23:20 wifi_00e04c5b4658_57756262614c756262614475624475622d35_managed_psk
drwx------  2 root root 4096 Feb 11 13:39 wifi_00e04c9b10f2_57756262614c756262614475624475622d35_managed_psk

I really want this to stop… would love some help here. Thanks.

p.s.
I know mac addresses are not supposed to change, and yet, this seems to happen to a lot of people… I’ve spent the last couple of hours googling for this issue, found a lot of people reporting problems and 0 solutions that apply.

That’s a strange one. Those MAC addresses do appear to be for a Realtek device.

We need logs. Please run grab-logs -A (capital A) and let us know the URL it returns.

Here are the logs: https://paste.osmc.tv/jilarihuri

Interestingly, one of the things I tried last night was to add a .config file under /var/log/connman with my wifi config, I guess it picked it up after another reboot (I see that in the logs) and now I got the mac address 16-88-11-C3-6D-F6, which is weird because it’s the first time I don’t see the prefix I’m used to seeing. It’s still the realtek dongle though:

osmc@osmc2:~$ ifconfig
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 182  bytes 25387 (24.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 182  bytes 25387 (24.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC>  mtu 1500
        inet 192.168.0.109  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::1488:11ff:fec3:6df6  prefixlen 64  scopeid 0x20<link>
        ether 16:88:11:c3:6d:f6  txqueuelen 1000  (Ethernet)
        RX packets 14760  bytes 10977193 (10.4 MiB)
        RX errors 0  dropped 196  overruns 0  frame 0
        TX packets 12443  bytes 2021870 (1.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan1: flags=-28669<UP,BROADCAST,MULTICAST,DYNAMIC>  mtu 1500
        ether b8:27:eb:46:15:43  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

osmc@osmc2:~$ iwconfig
wlan0     IEEE 802.11AC  ESSID:"WubbaLubbaDubDub-5"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:5.765 GHz  Access Point: 18:A6:F7:25:C5:4E
          Bit Rate:434 Mb/s   Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=90/100  Signal level=94/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

wlan1     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=31 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

eth0      no wireless extensions.

lo        no wireless extensions.

What’s the output of lsmod?
The module problem has a module_param so you can hardcode a MAC address.

osmc@osmc2:~$ lsmod
Module                  Size  Used by
joydev                 20480  0
hidp                   24576  1
arc4                   16384  0
md4                    16384  0
nls_utf8               16384  1
cifs                  466944  2
ccm                    20480  0
cmac                   16384  1
bnep                   20480  2
hci_uart               24576  1
bluetooth             409600  28 hidp,hci_uart,bnep
ecdh_generic           36864  1 bluetooth
iptable_nat            16384  0
nf_conntrack_ipv4      16384  1
nf_defrag_ipv4         16384  1 nf_conntrack_ipv4
nf_nat_ipv4            16384  1 iptable_nat
nf_nat                 32768  1 nf_nat_ipv4
nf_conntrack          139264  3 nf_conntrack_ipv4,nf_nat_ipv4,nf_nat
iptable_mangle         16384  0
iptable_filter         16384  0
brcmfmac              262144  0
rtl8812au            1396736  0
brcmutil               16384  1 brcmfmac
cfg80211              626688  2 rtl8812au,brcmfmac
evdev                  24576  2
rfkill                 28672  8 bluetooth,cfg80211
snd_bcm2835            32768  0
snd_pcm               114688  1 snd_bcm2835
snd_timer              36864  1 snd_pcm
snd                    86016  3 snd_timer,snd_bcm2835,snd_pcm
bcm2835_thermal        16384  0
bcm2835_gpiomem        16384  2
fixed                  16384  0
uio_pdrv_genirq        16384  0
uio                    20480  1 uio_pdrv_genirq
ip_tables              24576  3 iptable_mangle,iptable_filter,iptable_nat
x_tables               32768  3 iptable_mangle,ip_tables,iptable_filter
ipv6                  487424  50

1 You should ideally have disabled your internal WiFi adapter by adding the line

dtoverlay=sdhost

to the file /boot/config.txt.

2 Unfortunately, your root partition failed a filesystem check:

Mar 17 21:14:47 osmc2 fsck: E2fsck run: /bin/e2fsck -p -C 0 /dev/mmcblk0p2
Mar 17 21:14:47 osmc2 fsck: Filesystem UUID: e358a45e-dc1d-4ffc-af6b-4bea5d38ba7f
Mar 17 21:14:47 osmc2 fsck: Filesystem UUID: e358a45e-dc1d-4ffc-af6b-4bea5d38ba7f
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 2864 (uid=0, gid=0, mode=0100644, size=46548)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654123 (uid=0, gid=0, mode=0100644, size=200048)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654227 (uid=0, gid=0, mode=0100644, size=174988)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654244 (uid=0, gid=0, mode=0100644, size=14052)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654264 (uid=0, gid=0, mode=0100644, size=88740)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654634 (uid=0, gid=0, mode=0100755, size=137064)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654639 (uid=0, gid=0, mode=0100755, size=83732)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654655 (uid=0, gid=0, mode=0100644, size=1363568)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654129 (uid=0, gid=0, mode=0100644, size=50896)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654304 (uid=0, gid=0, mode=0100644, size=359344)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654120 (uid=0, gid=0, mode=0100644, size=46836)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654265 (uid=0, gid=0, mode=0100644, size=198132)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 9117 (uid=0, gid=0, mode=0100755, size=137108)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 3785 (uid=0, gid=0, mode=0100644, size=26262)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654135 (uid=0, gid=0, mode=0100644, size=9840)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654125 (uid=0, gid=0, mode=0100644, size=22540)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654243 (uid=0, gid=0, mode=0100644, size=55132)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654250 (uid=0, gid=0, mode=0100755, size=106972)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654260 (uid=0, gid=0, mode=0100644, size=30400)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654286 (uid=0, gid=0, mode=0100644, size=30372)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654258 (uid=0, gid=0, mode=0100644, size=13920)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654126 (uid=0, gid=0, mode=0100644, size=22364)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654148 (uid=0, gid=0, mode=0100644, size=55224)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654119 (uid=0, gid=0, mode=0100644, size=423484)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654134 (uid=0, gid=0, mode=0100644, size=9804)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654164 (uid=0, gid=0, mode=0100755, size=902996)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654302 (uid=0, gid=0, mode=0100755, size=101716)
Mar 17 21:14:47 osmc2 fsck: Clearing orphaned inode 654215 (uid=0, gid=0, mode=0100644, size=100044)
Mar 17 21:14:47 osmc2 fsck: Setting free inodes count to 881536 (was 883877)
Mar 17 21:14:47 osmc2 fsck: Setting free blocks count to 3236063 (was 3254652)
Mar 17 21:14:47 osmc2 fsck: /dev/mmcblk0p2: clean, 50528/932064 files, 491041/3727104 blocks

It looks like there are some problems, possibly related to the filesystem corruption, with the driver for the dongle:

Mar 17 21:14:47 osmc2 kernel: RTL871X: module init start
Mar 17 21:14:47 osmc2 kernel: RTL871X: rtl8812au v4.3.14_13455.20150212_BTCOEX20150128-51
Mar 17 21:14:47 osmc2 kernel: RTL871X: rtl8812au BT-Coex version = BTCOEX20150128-51
Mar 17 21:14:47 osmc2 kernel: ------------[ cut here ]------------
Mar 17 21:14:47 osmc2 kernel: WARNING: CPU: 2 PID: 226 at net/wireless/core.c:393 wiphy_new_nm+0x5a8/0x6b0 [cfg80211]
Mar 17 21:14:47 osmc2 kernel: Modules linked in: rtl8812au(O+) brcmutil cfg80211 evdev rfkill snd_bcm2835(C) snd_pcm snd_timer snd bcm2835_thermal bcm2835_gpiomem uio_pdrv_genirq fixed uio ip_tables x_tables ipv6
Mar 17 21:14:47 osmc2 kernel: CPU: 2 PID: 226 Comm: systemd-udevd Tainted: G         C O    4.14.26-2-osmc #1
Mar 17 21:14:47 osmc2 kernel: Hardware name: BCM2835
Mar 17 21:14:47 osmc2 kernel: [<80117020>] (unwind_backtrace) from [<80111450>] (show_stack+0x20/0x24)
Mar 17 21:14:47 osmc2 kernel: [<80111450>] (show_stack) from [<80942780>] (dump_stack+0xc8/0x10c)
Mar 17 21:14:47 osmc2 kernel: [<80942780>] (dump_stack) from [<80128340>] (warn_slowpath_null+0x90/0x120)
Mar 17 21:14:47 osmc2 kernel: [<80128340>] (warn_slowpath_null) from [<7f2499a8>] (wiphy_new_nm+0x5a8/0x6b0 [cfg80211])
Mar 17 21:14:47 osmc2 kernel: [<7f2499a8>] (wiphy_new_nm [cfg80211]) from [<7f48b1f4>] (rtw_wdev_alloc+0x38/0x2c4 [rtl8812au])
Mar 17 21:14:47 osmc2 kernel: [<7f48b1f4>] (rtw_wdev_alloc [rtl8812au]) from [<7f475974>] (rtw_usb_if1_init+0xd8/0x224 [rtl8812au])
Mar 17 21:14:47 osmc2 kernel: [<7f475974>] (rtw_usb_if1_init [rtl8812au]) from [<7f475c90>] (rtw_drv_init+0x1d0/0x4a4 [rtl8812au])
Mar 17 21:14:47 osmc2 kernel: [<7f475c90>] (rtw_drv_init [rtl8812au]) from [<806ffb5c>] (usb_probe_interface+0x26c/0x3fc)
Mar 17 21:14:47 osmc2 kernel: [<806ffb5c>] (usb_probe_interface) from [<8066b274>] (driver_probe_device+0x3c8/0x4b8)
Mar 17 21:14:47 osmc2 kernel: [<8066b274>] (driver_probe_device) from [<8066b454>] (__driver_attach+0xf0/0x110)
Mar 17 21:14:47 osmc2 kernel: [<8066b454>] (__driver_attach) from [<80668674>] (bus_for_each_dev+0x78/0xac)
Mar 17 21:14:47 osmc2 kernel: [<80668674>] (bus_for_each_dev) from [<8066a40c>] (driver_attach+0x2c/0x30)
Mar 17 21:14:47 osmc2 kernel: [<8066a40c>] (driver_attach) from [<80669f9c>] (bus_add_driver+0x114/0x220)
Mar 17 21:14:47 osmc2 kernel: [<80669f9c>] (bus_add_driver) from [<8066bdc4>] (driver_register+0x9c/0x11c)
Mar 17 21:14:47 osmc2 kernel: [<8066bdc4>] (driver_register) from [<806feaa0>] (usb_register_driver+0x80/0x144)
Mar 17 21:14:47 osmc2 kernel: [<806feaa0>] (usb_register_driver) from [<7f57309c>] (init_module+0x9c/0x1000 [rtl8812au])
Mar 17 21:14:47 osmc2 kernel: [<7f57309c>] (init_module [rtl8812au]) from [<801021b8>] (do_one_initcall+0x54/0x17c)
Mar 17 21:14:47 osmc2 kernel: [<801021b8>] (do_one_initcall) from [<801dc04c>] (do_init_module+0x74/0x350)
Mar 17 21:14:47 osmc2 kernel: [<801dc04c>] (do_init_module) from [<801daf68>] (load_module+0x29cc/0x2d14)
Mar 17 21:14:47 osmc2 kernel: [<801daf68>] (load_module) from [<801db4c4>] (SyS_finit_module+0xb8/0xc8)
Mar 17 21:14:47 osmc2 kernel: [<801db4c4>] (SyS_finit_module) from [<8010c5c0>] (ret_fast_syscall+0x0/0x28)
Mar 17 21:14:47 osmc2 kernel: ---[ end trace af2d1fe19c0460e0 ]---

I think you’re looking at a reinstall, ideally on a fresh SD card.

Edit: Fixed typo.

Ok, I’ll give it a shot. Thanks!
I’ll update once I do, probably next week.