[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: System.map and unresolved symbol



alexis.guillard@bt.com écrivait (wrote) :

> Bonjour, 
> 
> J essaye desesperement de compiler IPv6 et Mobile IPv6 en module.

En t'y prenant comment ?
Le mieux est de recompiler un noyau en le configurant correctement.

> Mais une fois le module compile/installe/machine reboote, j arrive pas a l
> inserer correctement, j ai une trentaine de ligne de ce genre
> "/lib/modules/2.4.7/kernel/net/ipv6/ipv6.o: unresolved symbol tcp_close"

À priori le module ne correspond pas au noyau utilisé.

> largo:/# ps aux
> {tcp_v4_syn_recv_sock} {tcp_v4_syn_recv_sock_R__ver_tcp_v4_syn_recv_sock}
> Warning: /usr/src/linux/System.map does not match kernel data.
> {tcp_v4_syn_recv_sock} {tcp_v4_syn_recv_sock_R__ver_tcp_v4_syn_recv_sock}
> Warning: /System.map does not match kernel data.

Comme indiqué clairement par ps, le System.map utilisé ne correspond pas
au noyau.

> La date et heure du fichier /usr/src/linux/System.map et /System.map
> correspond a la meme que celle d un 'uname -a'.
> J ai essaye de chercher de la documentation sur l interet du fichier
> System.map, mais j ai pas trouver grand chose.
> Est ce que qqun pe me m expliquer/envoyer un liens qui explique a quoi il
> sert ?

System.map est utilisé par ps, lsof, fuser et quelques autres pour pouvoir
donner les noms des appels système plutôt que leur adresse dans le noyau.

Ainsi :
$ ps -l
  F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
000 S   501 31190 31189  0  69   0 -   763 wait4  pts/5    00:00:01 bash
000 R   501 16626 31190  0  75   0 -   825 -      pts/5    00:00:00 ps
# mv /boot/System.map-2.4.8 /boot/System.map-2.4.8.old
$ ps -l
  F S   UID   PID  PPID  C PRI  NI ADDR SZ  WCHAN TTY          TIME CMD
000 S   501 31190 31189  0  69   0 -   763 112f41 pts/5    00:00:01 bash
000 R   501 16800 31190  0  78   0 -   680      - pts/5    00:00:00 ps

(Voir la différence pour le champ WCHAN)

> Comment je peux faire pour inserer mon module correctement sans avoir des
> "unresolved symbol" ?

Essayer déjà après un 'depmod -a' et avec un 'modprobe ipv6'.

Si ça ne marche pas c'est que les modules ne correspondent vraiment pas au
noyau, en recompiler un correctement. (lire /usr/src/linux/README, le
KERNEL-Howto et le MODULE-Howto).

Ici, sur un 2.4.8, modprobe ipv6 marche parfaitement.

Les HOWTOS peuvent être trouvés sur http://www.freenix.org/.

              Jean Charles
-- 
Jean Charles Delépine - Équipe Réseaux Télécoms - Université de Picardie



Reply to: