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]   --

Reply via email to