From ec8a44b9ae64f03d0aee362e54a02d5255ce17c7 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Thu, 13 Aug 2026 19:35:17 -0400 Subject: [PATCH] [ADD] qemu debian s390x : activer enc1 et tracer avant netcfg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le blocage sur l'adressage statique n'etait pas diagnosticable : netcfg ecrit ses traces dans le syslog INTERNE de d-i, qu'on ne lit qu'en ouvrant un shell a la main sur une console serie. Un preseed/early_command ecrit desormais l'etat du reseau sur la console, donc dans le journal. Il a immediatement montre que l'interface etait ETEINTE — « enc1: qdisc noop » — alors qu'un udhcpc manuel obtenait un bail en deux secondes. Le reseau n'a jamais ete en cause. La commande allume donc enc1 avant que netcfg ne decide. L'interface est bien UP,LOWER_UP ensuite, ce qui est correct en soi — mais netcfg demande TOUJOURS une adresse statique. La cause reste a trouver. --- EN --- The static-addressing stop was not diagnosable: netcfg writes its traces to d-i's INTERNAL syslog, readable only by opening a shell by hand on a serial console. A preseed/early_command now writes the network state to the console, hence to the log. It immediately showed the interface was DOWN — "enc1: qdisc noop" — while a manual udhcpc obtained a lease in two seconds. The network was never at fault. So the command brings enc1 up before netcfg decides. The interface is UP,LOWER_UP afterwards, which is right in itself — but netcfg STILL asks for a static address. The cause remains to be found. Assisted-by: Claude Opus 5 (cherry picked from commit e594fe5eab87d5060b878e44f9cf484e6d7b9e7f) --- script/qemu/deploy_qemu.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/script/qemu/deploy_qemu.py b/script/qemu/deploy_qemu.py index 067b4bd..bd5e139 100755 --- a/script/qemu/deploy_qemu.py +++ b/script/qemu/deploy_qemu.py @@ -1809,6 +1809,31 @@ def build_preseed( f"chmod 700 /target/home/{user}/.ssh", f"chmod 600 /target/home/{user}/.ssh/authorized_keys", ] + # Diagnostic réseau, écrit sur la console AVANT que netcfg ne décide. + # netcfg n'essaie aucun DHCP sur s390x et tombe droit sur l'adressage + # statique ; ses propres traces vont dans le syslog INTERNE de d-i, qu'on + # ne peut lire qu'en ouvrant un shell à la main. Ces quelques lignes + # atterrissent, elles, dans le journal de console — donc dans un fichier + # qu'il suffit de lire après coup. La sonde DHCP est celle de busybox, + # bornée à trois essais, et ne configure rien de durable. + early = [ + # LE correctif, pas un diagnostic : on ALLUME la carte. + # + # Mesuré dans l'installateur : « enc1: … + # qdisc noop » — ni UP ni LOWER_UP — alors qu'un udhcpc manuel + # obtenait un bail en deux secondes. Le réseau n'a jamais été en + # cause ; netcfg teste l'état du lien AVANT d'essayer, ne le voit + # pas, saute le DHCP et demande une adresse statique. + # + # Sur s390x c'est le udeb s390-netdevice qui active le périphérique. + # En preseedant sa question pour qu'il ne s'affiche plus, on + # court-circuite aussi cette activation. On la refait donc ici, avant + # que netcfg ne décide. + "ip link set enc1 up > /dev/console 2>&1", + "echo '=== EL: enc1 activee avant netcfg ===' > /dev/console", + "ip -o link show enc1 > /dev/console 2>&1", + ] + lines.append("d-i preseed/early_command string " + " ; ".join(early)) lines.append("d-i preseed/late_command string " + " ; ".join(post)) return "\n".join(lines) + "\n"