Correctifs AX.25, ROSE et NetRom dans les noyaux Linux LTS
État du 2026-10-16 19:45. Page mise à jour à chaque nouvelle version ou nouveau correctif fusionné. English version
Cette page indique dans quelles versions des noyaux à support long 6.12 et 6.18 se trouvent les correctifs de F6BVP fusionnés dans le dépôt linux-netdev/mod-orphan, et où en sont les noyaux du Raspberry Pi. Pour connaître votre noyau : uname -r.
Noyau 6.12 LTS
- 10 des 47 correctifs fusionnés
- Autre(s) correctif(s) AX.25 en file, hors liste :
• ax25: Remove broken autobind rpi-updatene suit plus cette série- Raspberry Pi OS bookworm (apt) : 6.12.109
Noyau 6.18 LTS
- 19 des 47 correctifs fusionnés
rpi-update: 6.18.56 aujourd'hui ; 6.18.57 attendu vers le 2026-10-22- Raspberry Pi OS trixie (apt) : 6.18.50
Attention, noyaux 6.18 à partir de 6.18.37. Ils contiennent « rose: release netdev ref and destroy orphaned incoming sockets », qui a introduit une régression. Son correctif, « rose: hold a reference on incoming sockets queued for accept() », est encore en revue. Les modules corrigés restent nécessaires sur ces noyaux.
Correctifs fusionnés : première version qui les contient
| Correctif | 6.12 | 6.18 |
|---|---|---|
| rose: fix dev_put() leak in rose_loopback_timer() | 6.12.112 | 6.18.37 |
| rose: hold loopback neighbour reference across timer callback | 6.12.112 | 6.18.37 |
| rose: fix race between loopback timer and module removal | 6.12.112 | 6.18.37 |
| rose: clear neighbour pointer after rose_neigh_put() in state machines | 6.12.112 | 6.18.37 |
| rose: guard rose_neigh_put() against NULL in timer expiry | 6.12.112 | 6.18.37 |
| rose: fix netdev double-hold in rose_rx_call_request() | 6.12.112 | 6.18.37 |
| rose: fix notifier unregistered too early in rose_exit() | 6.12.112 | 6.18.37 |
| rose: set SOCK_DESTROY in rose_kill_by_device() for prompt cleanup | absent | 6.18.37 |
| rose: disconnect orphaned STATE_2 sockets when device is gone | absent | 6.18.37 |
| rose: fix netdev double-hold in rose_make_new() | 6.12.112 | 6.18.37 |
| rose: release netdev ref and destroy orphaned incoming sockets | absent | 6.18.37 |
| rose: drop CALL_REQUEST in loopback timer when device is not running | 6.12.112 | 6.18.37 |
| rose: cancel neighbour timers in rose_neigh_put() before freeing | 6.12.112 | 6.18.37 |
| rose: clear neighbour pointer in rose_kill_by_device() | absent | 6.18.37 |
| rose: don't free fd-owned sockets when reaping in the heartbeat | absent | 6.18.37 |
| rose: keep the route needed for routing loop detection | absent | 6.18.55 |
| rose: guard rose_transmit_link() against a NULL neighbour | absent | 6.18.55 |
| rose: use timer_shutdown_sync() for t0timer teardown | absent | 6.18.55 |
| rose: don't warn on stray CALL_ACCEPTED/CLEAR_CONFIRMATION in state 3 | absent | 6.18.55 |
| ax25: bound REJ-driven fast retransmits with the existing N2 counter | absent | absent |
| rose: purge rose_neigh->queue on final teardown | absent | absent |
| rose: hold a reference on incoming sockets queued for accept() | absent | absent |
| rose: clear stale N(R)/N(S) before (re)transmitting a data frame | absent | absent |
| netrom: linearize and validate lengths in nr_rx_frame() | absent | absent |
| netrom: require full NET/ROM headers in nr_route_frame() | absent | absent |
| net: netrom: validate source address in nr_find_socket() | absent | absent |
| netrom: bound fragment reassembly in nr_queue_rx_frame() | absent | absent |
| ax25: fix OOB read after address header strip in ax25_rcv() | absent | absent |
| ax25: check frame length in ax25_decode() and ax25_rx_iframe() | absent | absent |
| net: ax25: fix integer overflow in ax25_rx_fragment() | absent | absent |
| netrom: use a single lock for the node and neighbour lists | absent | absent |
| netrom: look up and update routes in one critical section | absent | absent |
| netrom: fix reference count leak in nr_rt_device_down | absent | absent |
| netrom: clear nr_neigh->ax25 under the routing lock in nr_link_failed() | absent | absent |
| netrom: fix nr_node leak when nr_del_node() removes the last route | absent | absent |
| rose: clear through routes when a neighbour is removed from the tables | absent | absent |
| rose: restart the link of a neighbour created over a live AX.25 connection | absent | absent |
| ax25: serialise the transmission of I frames on a connection | absent | absent |
| rose: process received frames and send with the socket locked | absent | absent |
| ax25: don't create two connections for the same link in ax25_send_frame() | absent | absent |
| ax25: read the connection's ax25_dev only once when walking ax25_list | absent | absent |
| ax25: wait for ax25_send_frame() before detaching the connections of a device | absent | absent |
| ax25: don't accept frames on a device that is going down | absent | absent |
| ax25: send a private copy of each I frame | absent | absent |
| rose: clear the circuits of a neighbour that restarts the link | absent | absent |
| ax25: send unacknowledged I frames again when a link is re-established | absent | absent |
| rose: bring up the link of the preferred route passed over by a connect request | absent | absent |
Un numéro indique la première version publiée qui contient le correctif ; toutes les suivantes de la même série le contiennent aussi. « En file » : accepté par les mainteneurs des noyaux stables, sortira dans la prochaine version. Les noyaux du Raspberry Pi suivent en général kernel.org à une semaine environ.
Mettre à jour un Raspberry Pi au fil des publications
- Relevez votre noyau actuel :
uname -r. - Dans le tableau ci-dessus, repérez la première version qui contient les correctifs voulus.
Comparez-la, dans les cartes du haut de page, à ce que proposent aujourd'hui
rpi-updateet les paquets de Raspberry Pi OS. - Voie normale : le noyau stable de Raspberry Pi OS, par les paquets.
Il arrive après kernel.org, avec un délai variable.
sudo apt update sudo apt full-upgrade sudo reboot
- Voie rapide :
rpi-update, environ une semaine après kernel.org.sudo rpi-update sudo reboot
rpi-updateinstalle un noyau et un firmware de préversion, dans la série 6.18 uniquement. Sauvegardez la carte SD avant, et réservez-le à un nœud que vous savez réinstaller. - Après le redémarrage, vérifiez la version avec
uname -r, puis que les modules sont chargés :lsmod | grep -E "ax25|rose|netrom". - Si vous utilisez des modules corrigés recompilés, recompilez-les après chaque changement de noyau : un module ne se charge que sur le noyau exact pour lequel il a été compilé.
Un Raspberry Pi resté sous Raspberry Pi OS bookworm suit la série 6.12, par les paquets seulement.
Garder AX.25 sur un PC Debian ou Ubuntu
AX.25, NET/ROM et ROSE ont été retirés du noyau Linux à partir de la version 7.1. Une distribution dont le noyau est en 7.1 ou plus ne les fournit donc plus. Il reste possible d'utiliser un noyau plus ancien.
- Ubuntu 26.04 LTS : son noyau de série est le 7.0 (paquet
linux-generic), avec AX.25, NET/ROM et ROSE, maintenu pendant toute la durée de la LTS. Il suffit de ne pas installer le noyau HWE (linux-generic-hwe-26.04), qui passera à des versions sans AX.25. - Ubuntu 26.10 et suivantes : le 7.0 n'est plus dans les dépôts. On peut installer à la main les paquets noyau de la 26.04 et choisir ce noyau au démarrage (GRUB), mais hors support.
- Debian 13 (trixie) : noyau 6.12 LTS, avec AX.25. Rien à faire.
- Debian plus récente, avec un noyau 7.1 ou plus : conservez le noyau 6.12 déjà installé, ou reprenez-le dans les dépôts de la version précédente, là aussi hors support.
Avec un noyau plus ancien que celui de la distribution :
- il ne reçoit plus les mises à jour de sécurité de la distribution ;
- avec Secure Boot, un noyau non signé par la distribution ne démarre pas sans désactiver Secure Boot ou enrôler une clé ;
- les modules tiers (pilotes graphiques, DKMS) doivent être recompilés pour ce noyau ;
- bloquez les méta-paquets du noyau (
apt-mark hold) pour qu'une mise à jour ne le remplace pas.
Préférez un noyau encore maintenu qui contient AX.25 : le 7.0 d'Ubuntu 26.04, ou les séries LTS 6.18 et 6.12, qui sont aussi celles qui reçoivent les correctifs. Le 7.0.x de kernel.org n'est plus maintenu.
Correctifs en cours de revue
Ils ne figurent encore dans aucun noyau officiel. On ne les obtient qu'avec les modules corrigés.