Package: linux-image-6.12.30+bpo-armmp-lpae
Version: 6.12.30-1~bpo12+1
Dear Maintainers,
On my Odroid HC1 (ARMHF octa-core), I've been using Debian Bookworm
successfully for many years, thanks to the team (!). I recently ran
the following command: "sudo apt update && sudo apt-ugrade && sudo
reboot".
My system has changed Linux kernel DTS, and flash-kernel has updated
the boot & kernel with success. Problem encountered is on Ethernet
port detection.
The new kernel (after rebooting) is ...
[ 0.000000] Booting Linux on physical CPU 0x100
[ 0.000000] Linux version 6.12.30+bpo-armmp-lpae
([email protected]) (arm-linux-gnueabihf-gcc-12 (Debian
12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP
Debian 6.12.30-1~bpo12)
[ 0.000000] CPU: ARMv7 Processor [410fc073] revision 3 (ARMv7),
cr=30c5387d
On this SBC, SSD is connected via one USB to sata bridge based on
Jmicron chip, and it seems that Ethernet port is perhaps also
connected on one other USB device (?)
[ 6.372954] scsi host0: uas
[ 6.376594] usbcore: registered new interface driver uas
[ 6.377376] scsi 0:0:0:0: Direct-Access JMicron Generic
3102 PQ: 0 ANSI: 6
[ 6.450783] r8152 4-1:1.0 eth0: v1.12.13
[ 6.453575] usbcore: registered new interface driver r8152
[ 6.935940] sd 0:0:0:0: [sda] 468862128 512-byte logical blocks: (240
GB/224 GiB)
[ 6.942018] sd 0:0:0:0: [sda] 4096-byte physical blocks
[ 6.947513] sd 0:0:0:0: [sda] Write Protect is off
[ 6.952422] sd 0:0:0:0: [sda] Disabling FUA
[ 6.956110] sd 0:0:0:0: [sda] Write cache: enabled, read cache:
enabled, doesn't support DPO or FUA
[ 7.013163] sd 0:0:0:0: [sda] Preferred minimum I/O size 4096 bytes
[ 7.017993] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes
not a multiple of preferred minimum block size (4096 bytes)
[ 7.063856] sda: sda1 sda2 < sda5 sda6 sda7 sda8 sda9 sda10 sda11
sda12 sda13 sda14 sda15 sda16 sda17 sda18 sda19 sda20 sda21 sda22 sda23
sda24 sda25 sda26 sda27 sda28 sda29 sda30 sda31 >
[ 7.090267] sd 0:0:0:0: [sda] Attached SCSI disk
[ 7.134495] usbcore: registered new interface driver cdc_ether
[ 7.146973] usbcore: registered new interface driver r8153_ecm
After booting, Ethernet port is correctly detected
root@hn-odroid-hc1-110:~# ip link ls
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group
default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode
DEFAULT group default qlen 1000
link/ether 00:1e:06:32:66:a1 brd ff:ff:ff:ff:ff:ff
root@hn-odroid-hc1-110:~#
My problem is that I'm using Udev rules to efficiently identify
Ethernet devices. Of course, with a single port this doesn't seem very
relevant, but when using multiple Ethernet ports with hot-plug
capabilities, this method has a real advantage because of course, the
interface name becomes independent of the order in which they are
installed
On Odroid HC1, my udev configuration file ( uses from 5 years ) is
root@hn-odroid-hc1-110:~# cat
/etc/udev/rules.d/99-eth-network-identify-interfaces.rules |grep -v "#"
|grep -v ^$
SUBSYSTEM=="net", \
ACTION=="add", \
ATTR{dev_id}=="0x0", \
ATTR{type}=="1", \
ENV{ID_PATH}=="platform-xhci-hcd.8.auto-usb-0:1:1.0", \
ENV{ID_USB_VENDOR}=="Realtek", \
ENV{ID_VENDOR_FROM_DATABASE}=="Realtek Semiconductor Corp.", \
ENV{ID_NET_DRIVER}=="r8152", \
NAME="if-prod", \
OPTIONS="log_level=debug"
When previous debian kernel (6.12.27-1~bpo12+1), udev rules was ok,
and my network interface was renamed from eth0 to if-prod name , that
is correct
root@hn-odroid-hc1-110:~# dpkg -l |grep linux-image
ii linux-image-6.12.27+bpo-armmp-lpae 6.12.27-1~bpo12+1 armhf
Linux 6.12 for ARMv7 multiplatform compatible SoCs supporting LPAE
ii linux-image-6.12.30+bpo-armmp-lpae 6.12.30-1~bpo12+1 armhf
Linux 6.12 for ARMv7 multiplatform compatible SoCs supporting LPAE
ii linux-image-armmp-lpae 6.12.30-1~bpo12+1 armhf
Linux for ARMv7 multiplatform compatible SoCs supporting LPAE (meta-package)
But after rebooting to new kernel (6.12.30-1~bpo12+1), not possible to
have if-prod interface, alway eth0 as defined by default udev rules.
After looking to udev parameter, explanation is ...
root@hn-odroid-hc1-110:~# udevadm info -q all --path /sys/class/net/eth0
.........
E: ID_PATH=platform-xhci-hcd.7.auto-usb-0:1:1.0
E: ID_PATH_TAG=platform-xhci-hcd_7_auto-usb-0_1_1_0
And effectively, there is a change in ID_PATH parameter. Of course, i
can change my original rules into /etc/udev/rules.d/xxx, but for my
point of view, if no change exists on hardware platform, then initial
Linux kernel enumeration must be the same in the init () device driver
kernel method, even if kernel changes ?.
To fix this stranbe behaviour, i have launched...
root@hn-odroid-hc1-110:~# sed -i -e 's/hcd.8/hcd.7/g'
/etc/udev/rules.d/99-eth-network-identify-interfaces.rules
root@hn-odroid-hc1-110:~#
After rebooting ,
................
[ 15.578940] exynos-chipid 10000000.chipid: Exynos: CPU[EXYNOS5800]
PRO_ID[0xe5422000] REV[0x1] Detected
[ 15.615094] exynos-trng 10830600.rng: Exynos True Random Number
Generator.
[ 15.774269] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 15.779012] r8152 4-1:1.0 if-prod: renamed from eth0
All is OK
Any idea about this behaviour ?
Best regards
Cordialement
--
-- Jean-Marc LACROIX () --
-- mailto : [email protected] --