[ADD] qemu debian s390x : activer enc1 et tracer avant netcfg

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: <BROADCAST,MULTICAST> 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:
<BROADCAST,MULTICAST> 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)
This commit is contained in:
Mathieu Benoit 2026-08-13 19:35:17 -04:00
parent a33684ddd1
commit ec8a44b9ae

View file

@ -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: <BROADCAST,MULTICAST> …
# 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"