Noyau StackX Linux 6.12 pour Debian 9 (Stretch) amd64 Version des paquets noyau : 6.12.115-1 Noyau attendu après démarrage : 6.12.115-stackx-stretch-1 Dépôt : https://mirrors.scalarx.net/stackx-kernel/6.12/stretch/ Ce canal apporte Linux 6.12 LTS à Stretch en conservant son environnement utilisateur. Il ne constitue pas une reprise du support de toute Debian. Les lots historiques sx1 et les anciens noyaux restent distincts. Contenu ------- Quatre paquets amd64 : - stackx-linux-image-6.12.115-stretch-1-amd64, version 6.12.115-1 ; - stackx-linux-headers-6.12.115-stretch-1-amd64, version 6.12.115-1, avec les outils kbuild nécessaires aux modules externes ; - stackx-kernel-6.12-stretch-amd64, métapaquet version 6.12.115-1 ; - stackx-toolchain-6.12-stretch-amd64, version 12.4.0-1. GCC 12.4 est installé sous /opt/stackx-toolchain pour construire les modules avec les protections retenues. Le gcc global et ses alternatives restent inchangés. Les binutils 2.28 natifs de Stretch sont utilisés. Les paquets de ce lot ne remplacent ni glibc, ni linux-libc-dev, ni /usr/include. Les modules livrés restent en .ko non compressés et l'image du noyau utilise gzip. L'initramfs de la VM a lui aussi été qualifié en gzip. L'initramfs est généré par les hooks Debian lors de l'installation ; il n'est pas contenu dans le paquet image. Validation et limites -------------------- Les quatre DEB ont passé la qualification native Stretch : noms, versions, dépendances, modules .ko non compressés et contrôle ELF face à glibc 2.24. Le pilote borné en VM Stretch isolée a validé l'installation des quatre DEB, le démarrage et le retour à l'ancien noyau, puis un nouveau démarrage du candidat. Il a vérifié les modules externes et DKMS 2.3-2, AppArmor, le réseau en espaces de noms, le filtrage, un aller-retour ext4 et les contrôles perf retenus. Les essais fonctionnels, DKMS et AppArmor ont porté sur le premier démarrage candidat ; le second a répété démarrage, configuration, GRUB et perf. Les quatre démarrages ont utilisé des identifiants de boot distincts. AppArmor a été éprouvé avec un profil temporaire : lecture autorisée d'un fichier, refus d'un autre, puis retrait complet du profil. Le service de la VM restait explicitement masqué, sans profil chargé hors de cette sonde. Cela démontre l'application de ce profil par le noyau candidat, sans valider le chargement global des profils d'un serveur existant. Le masque propre à cette VM de test n'est pas une instruction de déploiement. L'essai perf a vérifié l'ouverture administrateur, le refus à paranoid=3 pour un processus sans privilèges, l'ouverture à 2, puis le refus après restauration à 3. Stretch n'ayant pas setpriv, un petit auxiliaire natif revu a abandonné groupes, GID, UID et capacités actives avant l'appel. L'échec initial du harnais et la reprise ont été conservés. L'ensemble des capacités de borne n'a pas été vidé ; aucune preuve CAP_PERFMON seule n'est revendiquée. Le dépôt signé et son installateur final ont été testés avec APT 1.4.11, apt-transport-https 1.4.11 et GnuPG 2.1.18 dans cette VM isolée, avec un serveur HTTPS local. L'ajout du dépôt et sa répétition sans changement ont réussi. Une signature fraîche corrompue a été refusée malgré un cache préalablement valide, ainsi qu'une copie de test portant une autre empreinte. Les quatre paquets exacts ont été téléchargés, contrôlés par SHA256 puis réinstallés sans retrait. L'ancien noyau, glibc, linux-libc-dev et les préférences GRUB ont été conservés. La VM a été arrêtée proprement. Ce contrôle porte sur une réinstallation exacte après le pilote ; il ne qualifie ni une première installation sur toute machine ni le miroir public. Ce lot est préparé localement pour un essai matériel contrôlé. Sa présence sur le miroir et les en-têtes HTTP doivent être vérifiés après publication. Ces essais ne qualifient pas tous les matériels, systèmes de fichiers ou modules tiers. Les cgroups v1/hybrides ont été exercés avec une unité transitoire : placement du processus, quota CPU, limite mémoire, comptabilité et nettoyage. La limite n'a pas fait l'objet d'un essai sous pression. Ils ne reproduisent pas exhaustivement les courses mémoire ni les exploits. Le premier essai sur le matériel et les applications concernés reste nécessaire. Aucune validation physique n'est annoncée pour cette livraison. La configuration conserve le support compilé NFSv2/ACL et Squashfs SINGLE. SLAB est remplacé par SLUB ; durcissement et randomisation des listes libres, initialisation de pile et de tas, protections RWX et SLS sont retenus. USB/IP passe de 31 à 15 ports par contrôleur, avec huit contrôleurs. Ces changements ne promettent ni des performances ni un comportement identiques à l'ancien noyau. CATPT et les trois profils Haswell, Broadwell et Broadwell RT5677 sont compilés en modules avec leurs dépendances. Le firmware CATPT requis, intel/IntcSST1.bin ou intel/IntcSST2.bin selon le matériel, n'est pas livré ; sa disponibilité et son fonctionnement sur les machines visées ne sont pas établis. Sept capacités audio historiques ne sont pas préservées : SND_HDA_EXT_CORE, SND_PCM_ELD, SND_SOC_HDAC_HDMI, SND_SOC_INTEL_SST, SND_SOC_NAU8825, SND_SOC_RT5663 et SND_SOC_TOPOLOGY. Les anciens sélecteurs Skylake, SKL_RT286, SKL_NAU88L25_SSM4567 et SKL_NAU88L25_MAX98357A ne sont pas conservés. Aucun ajout AVS/SOF ni firmware de remplacement n'est présumé équivalent. Aucun essai audio physique n'a été réalisé. D'autres pilotes devenus non sélectionnables ou dépréciés restent absents, notamment EDAC_I5000, SYNCLINK_GT, LEDS_CLEVO_MAIL et certains consommateurs CAPI/BT_CMTP. L'API crypto obsolète n'a pas été rouverte pour les récupérer. La contrainte historique EFI securelevel sur kexec_load n'est pas préservée par ce profil 6.12 sans lockdown. KEXEC_SIG_FORCE couvre kexec_file_load seulement ; il ne rétablit pas cette interdiction de l'ancienne interface. Le magasin de confiance de signature n'a pas de clé intégrée. Aucune équivalence de politique Secure Boot ou de couverture matérielle générale avec le noyau 4.9 n'est revendiquée. Signatures et sources --------------------- Empreinte primaire de la clé du dépôt APT : AF97ED98AACE4CE129A03B6E2C9736B593BABF7F Cette empreinte et les signatures InRelease et Release.gpg du canal Stretch ont été vérifiées. L'installateur épingle cette clé et contrôle l'InRelease. La clé publique porte encore l'identité historique « StackX Bullseye Kernel Repository » ; c'est son empreinte complète qui est épinglée pour ce canal Stretch. Le fichier stackx-kernel-6.12-stretch.asc ne contient que la clé publique. Le trousseau est limité à ce dépôt par signed-by. L'installateur refuse une empreinte ou une signature différente. La signature APT authentifie le dépôt. L'image du noyau n'est pas signée pour Secure Boot. Aucun script ne désactive cette protection ni n'enrôle de clé. Un environnement qui impose des images signées exige une procédure de signature et d'approbation distincte avant l'essai. MANIFEST.txt et SHA256SUMS décrivent les fichiers livrés. Les sources exactes sont sous sources/ : archive Linux officielle intacte, patch perf séparé, configuration finale, archives GCC/GMP/MPFR/MPC et recette de reconstruction. Les licences originales accompagnent les archives. Il ne s'agit pas de paquets sources Debian : aucun .dsc, deb-src ou apt source n'est fourni. La recette précise les dépendances, étapes et limites de reproductibilité. Elle inclut le contrôle du rootfs et le driver GCC réellement utilisés sur Stretch, y compris la compatibilité mawk et le chemin natif de grep, ainsi qu'une adaptation explicite des chemins et du garde privé dans common.sh. Cette recette publique dérivée n'a pas été reconstruite de bout en bout ; aucune identité binaire d'une reconstruction future n'est promise. Une nouvelle construction doit recevoir ses propres essais. Fichiers de source et de reconstruction du canal : sources/linux-6.12.115.tar.xz sources/debian-perf-restrict-6.12.patch sources/config-6.12.115-stackx-stretch-1 sources/gcc-12.4.0.tar.xz sources/gmp-6.2.1.tar.bz2 sources/mpfr-4.1.0.tar.bz2 sources/mpc-1.2.1.tar.gz sources/stackx-6.12-stretch-build-recipe.tar.xz Ces chemins sont relatifs à l'URL du dépôt indiquée en tête. Leurs tailles et empreintes exactes figurent dans MANIFEST.txt. SHA256SUMS couvre aussi les documents et les autres fichiers du canal. Les textes de licence et les exceptions restent dans les archives ; la recette contient LICENCES.txt. Aucune licence supplémentaire n'est attribuée ici aux scripts StackX. Ajouter le dépôt ---------------- Sur Debian 9 amd64, disposer de bash, coreutils, diffutils, grep, dpkg, apt, ca-certificates, apt-transport-https, gnupg2 et gpgv. La commande gpg doit être en version 2 ; l'installateur refuse GnuPG 1 et l'absence de la méthode HTTPS /usr/lib/apt/methods/https. Après publication et contrôle de l'empreinte APT ci-dessus par un canal de confiance, exécuter l'installateur téléchargé en root : ( f=$(mktemp) && trap 'rm -f "$f"' EXIT && /usr/lib/apt/apt-helper download-file \ https://mirrors.scalarx.net/stackx-kernel/6.12/stretch/add-stackx-kernel-repo.sh "$f" && bash "$f" ) Ce script ajoute uniquement la source et son trousseau, contrôle l'InRelease fraîchement téléchargé et rafraîchit cet index. Il n'installe aucun paquet et n'effectue aucun redémarrage. La signature APT couvre les index et les paquets qu'ils référencent ; SHA256SUMS permet aussi de vérifier les sources et les documents du lot, sans être lui-même une signature. SHA256 de l'installateur du canal, empreinte APT épinglée : 09ecfa87f34a6356f6e712816aaf065daed4306edf80040237f6cab4c67d7117 Installer puis choisir le démarrage ---------------------------------- Examiner d'abord la simulation : apt-get --simulate --no-remove install stackx-kernel-6.12-stretch-amd64=6.12.115-1 Vérifier qu'elle n'entraîne pas de retrait ni de mise à niveau inattendue de l'environnement utilisateur. Si elle convient, installer explicitement : apt-get --no-remove install stackx-kernel-6.12-stretch-amd64=6.12.115-1 Conserver l'ancien noyau, son initramfs et le métapaquet linux-image-amd64. Ne pas lancer autoremove dans cette procédure. Prévoir une console de secours avant tout redémarrage d'essai. Les hooks Debian génèrent l'initramfs et mettent à jour le menu GRUB. Ni l'installateur du dépôt ni les scripts mainteneurs StackX ne réécrivent directement GRUB_DEFAULT ou grubenv. Cela ne garantit pas que le choix effectif reste le même : avec GRUB_DEFAULT=0, le tri peut placer 6.12 avant l'ancien noyau. Un noyau de numéro supérieur, ou un choix persistant explicite, peut au contraire rester prioritaire. Lire le menu avant de redémarrer : grep -E "^(submenu|[[:space:]]*menuentry) " /boot/grub/grub.cfg grub-editenv /boot/grub/grubenv list Avant d'employer grub-reboot, vérifier le chemin de /boot/grub : grub-probe --target=abstraction /boot/grub Si la commande échoue ou affiche diskfilter, lvm ou une autre abstraction, privilégier la sélection depuis la console et ne pas compter sur le retour automatique au noyau précédent. Prévoir une console de secours même si elle réussit sans afficher d'abstraction : un noyau bloqué peut nécessiter un redémarrage manuel. Pour que le démarrage suivant revienne à l'ancien noyau, le choix permanent doit d'abord désigner explicitement cet ancien noyau ; GRUB_DEFAULT=0 après installation peut déjà désigner 6.12. grub-reboot ne crée pas ce choix de secours. Si grub-probe a réussi sans afficher d'abstraction et si les libellés existent exactement, supprimer d'abord une éventuelle sélection temporaire antérieure puis sélectionner le candidat pour le prochain démarrage : grub-editenv /boot/grub/grubenv unset next_entry grep -Fq "submenu 'Advanced options for Debian GNU/Linux'" /boot/grub/grub.cfg && grep -Fq "menuentry 'Debian GNU/Linux, with Linux 6.12.115-stackx-stretch-1'" /boot/grub/grub.cfg && grub-reboot 'Advanced options for Debian GNU/Linux>Debian GNU/Linux, with Linux 6.12.115-stackx-stretch-1' && grub-editenv /boot/grub/grubenv list Si un contrôle échoue, utiliser les identifiants exacts du menu local avant de poursuivre. Les commandes ci-dessus ne redémarrent pas le serveur. Après le redémarrage choisi par l'opérateur : uname -r Résultat attendu : 6.12.115-stackx-stretch-1. Vérifier ensuite stockage, réseau, filtrage, applications et modules externes sur la machine concernée. Retour à l'ancien noyau ---------------------- Noter son entrée GRUB exacte avant le premier essai. La sélectionner depuis la console de secours, ou avec grub-reboot seulement si le contrôle grub-probe ci-dessus le permet et si la machine reste accessible. Une entrée de sous-menu s'écrit 'identifiant-sous-menu>identifiant-du-noyau'. Vérifier next_entry, puis effectuer vous-même le redémarrage et contrôler uname -r. Ne supprimer aucun noyau pour réaliser cet aller-retour. Sur diskfilter, next_entry peut persister après un démarrage : aucun retour automatique n'est promis. Après avoir vérifié le noyau chargé, lire puis supprimer explicitement cette sélection temporaire si elle demeure : grub-editenv /boot/grub/grubenv list grub-editenv /boot/grub/grubenv unset next_entry Le choix permanent relève d'une décision explicite de l'administrateur. Pour retirer seulement la source APT, sans désinstaller les paquets : rm /etc/apt/sources.list.d/stackx-kernel-6.12-stretch.list rm /usr/share/keyrings/stackx-kernel-6.12-stretch.gpg Affichage du texte ------------------ Ce document est en UTF-8. HTTP-CHARSET.conf indique le type HTTP à servir pour les .txt et .sh de ce canal. Cet exemple est inactif et ne modifie pas le serveur web. Il ne s'applique ni aux paquets ni aux archives et index APT.