Articles : Netconsole, log de messages noyaux via UDP
Posté par Colin Leroy (page perso, ). Modéré le 29 septembre 2004.
Un pseudo driver réseau a fait son apparition dans le noyau 2.6 il y a neuf mois, et n'a pas été remarqué malgré son utilité plutôt importante dans certains cas.
Il s'agit de netconsole, écrit par Ingo Molnar et Matt Mackal, qui permet de logger les messages du noyau via réseau (UDP). Cela présente les mêmes avantages qu'une console série, c'est-à-dire que c'est bien pratique pour débugguer un noyau sans écran, ou dont le pilote graphique est cassé pour une raison X ou Y. L'avantage supplémentaire est que ça fonctionne sans port série, port qui n'existe plus sur bon nombre de portables ou architectures (PPC, Sparc, ...).
Il s'agit de netconsole, écrit par Ingo Molnar et Matt Mackal, qui permet de logger les messages du noyau via réseau (UDP). Cela présente les mêmes avantages qu'une console série, c'est-à-dire que c'est bien pratique pour débugguer un noyau sans écran, ou dont le pilote graphique est cassé pour une raison X ou Y. L'avantage supplémentaire est que ça fonctionne sans port série, port qui n'existe plus sur bon nombre de portables ou architectures (PPC, Sparc, ...).
La documentation de netconsole (566 hits)
> Lire la dépêche (10 commentaires, moyenne: 4,1).
Vous avez demandé le commentaire #479588.




IPv6
D'après ce que j'ai pu constater en lisant les sources du noyau, netconsole ne peut envoyer des messages qu'en IPv4. Est-il planifié de pouvoir utiliser IPv6 pour ça?
[^]Re: IPv6
Je sais pas. A première vue il n'y a pas d'équivent à in_aton() pour l'ipv6:
__u32 in_aton(char*) dans net/ipv4/utils.c convertit une adresse au format ascii ("129.168.0.11") en int.
Il faudrait d'abord un net/ipv6/utils.c avec
in6_addr *inv6_aton(char *)
voir dans inet_pton6() dans le fichier resolv/inet_pton.c de la glibc pour l'algo, il est pas tout simple.
Le reste a l'air plus trivial:
-ajouter deux champs in6_addr *local_ipv6, *remote_ipv6 à la structure netpoll (include/linux/netpoll.h)
-modifier net/core/netpoll.c::netpoll_parse_options() : si "np->local_ip=ntohl(in_aton(cur));" rate (adresse non ipv4), setter np->local_ipv6 grâce à inv6_aton() (attention au byte order aussi).
-Ensuite en fonction de la non-nullité de np->local_ipv6, l'utiliser en lieu et place de np->local_ip. (changer aussi iph->version et tout ça).
-Et pareil pour remote_ip/remote_ipv6...
Bref, un patch qui attend un courageux :)
Claws Mail - it bites!