Hello,
I have a pretty weird issue that showed up between kernels 6.4.0-150600.23.25 and 6.4.0-150600.23.30 . As in it was working as expected in .25 and broke/changed in .30 .
For some background, I have LEAP running on a bunch of POS systems with payment terminals connected, the terminals/POS’s communicate via Ethernet over USB using ECM, basically just a /30 network between them, and this is all setup using some udev rules to ensure the interface gets the correct IP config and so on, this has been working flawlessly for quite some time.
Anyways, when doing the usual patching/updating song and dance in February the networking side of things broke entirely. As it turns out this is because the kernel started naming the ECM interface “eth0” by default instead of “usb0” as I would expect and as has been the case previously. This in turn causes a conflict with the actual “main” Ethernet interface which then gets renamed, the system thus loses its connection to the outside world and can’t finish its installation and configuration (which ironically would have solved the issue by installing the aforementioned udev rules for the USB interface).
As an example of what it actually looks like, here’s the relevant part of the dmesg:
Kernel <= 6.4.0-150600.23.25:
Feb 26 15:30:35 hostname kernel: cdc_ether 3-11.1:1.0 usb0: register 'cdc_ether' at usb-0000:00:14.0-11.1, CDC Ethernet Device, 52:14:32:fb:9e:5d
Kernel >= 6.4.0-150600.23.30
Feb 26 15:23:52 hostname kernel: cdc_ether 3-11.1:1.0 eth0: register 'cdc_ether' at usb-0000:00:14.0-11.1, CDC Ethernet Device, 52:14:32:fb:9e:5d
These are from the same system using the same terminal, I can just up/downgrade the kernel and it will cause/fix the issue. It’s the same on different systems and terminals.
I’ve ruled out some basics, like the L/A bit in the MAC address on the is set correctly which as far as I know tells the kernel it should be called usbX rather than ethX. I’ve also tried using RNDIS instead of ECM but it behaves the same way.
I guess my next step will be to compile my own kernel and see where that takes me, and having some udev rules in place from the start to rename the USB interface so something else entirely should be able to work it out I imagine, but I figured I’d ask if anyone has any clue what might have caused this, seeing as it’s hardly a major kernel update.
Speaking of, I also sat down with a pkgdiff between kernels .25 and .30 and couldn’t find anything that seemed related, some crypto stuff with Poly1305 and some NVMe changes.
Anyways I hope some of that made sense, it’s kind of a hard problem to condense into one digestible post, and English isn’t my native language.