J'ai un truc étrange :
- depmod me trouve des symboles non résolus sur un module (e1000, compilé à la main) dont printk, pci_register_device et une dizaine d'autres.
- insmod ne voit pas de pb et me charge bien le module, ensuite ca marche.
Quelqu'un à la moindre idée ?
# unresolved symbol
Posté par 007 . Évalué à 2.
Ce qui arrive souvent c'est que l'arbre Linux de compilation n'est pas configuré ou ne correspond à la configuration du noyau en cours.
Sous fedora il faut utiliser /lib/modules/2.x/build/
OU :
aller dans /usr/src/linux-2.x
virer "custom" de "EXTRAVERSION = -1.350custom" dans Makefile.
Copier la configuration du noyau. Elle est dans /boot/config* et configs/kernel-2.x.config.
$ cp config/kernel-2.x-i686.config .config
$ make oldconfig
$ make dep (2.4)
Pour 2.6 je fais "make all" mais il y a peut-être mieux.
$ Puis compiler les modules.
[^] # Re: unresolved symbol
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
[root@pf-amon root]# depmod -e /lib/modules/2.4.19-40mdksecure/kernel/drivers/net/e1000.o
depmod: *** Unresolved symbols in /lib/modules/2.4.19-40mdksecure/kernel/drivers/net/e1000.o
depmod: pci_set_power_state
depmod: __netdev_watchdog_up
depmod: pci_dev_driver
depmod: eth_type_trans
depmod: pci_clear_mwi
depmod: schedule_timeout
depmod: del_timer_sync
depmod: __kfree_skb
depmod: alloc_skb
depmod: pci_register_driver
depmod: __generic_copy_from_user
depmod: __udelay
depmod: kmalloc
depmod: pci_free_consistent
depmod: pci_enable_device
depmod: pci_read_config_byte
depmod: alloc_etherdev
depmod: cpu_raise_softirq
depmod: pci_restore_state
depmod: free_irq
depmod: unregister_netdev
depmod: __out_of_line_bug
depmod: iounmap
depmod: pci_alloc_consistent
depmod: __ioremap
depmod: pci_read_config_word
depmod: synchronize_irq
depmod: register_netdev
depmod: mod_timer
depmod: pci_set_dma_mask
depmod: pci_release_regions
depmod: kfree
depmod: unregister_reboot_notifier
depmod: request_irq
depmod: netif_rx
depmod: pci_unregister_driver
depmod: schedule_task
depmod: skb_over_panic
depmod: pci_set_master
depmod: pci_find_device
depmod: mem_map
depmod: pci_enable_wake
depmod: pci_write_config_word
depmod: jiffies
depmod: softnet_data
depmod: printk
depmod: irq_stat
depmod: pci_save_state
depmod: __const_udelay
depmod: __generic_copy_to_user
depmod: pci_request_regions
depmod: pci_set_mwi
depmod: register_reboot_notifier
/lib/modules/2.4.19-40mdksecure/kernel/drivers/net/e1000.o:
# module id=string
# pci module vendor device subvendor subdevice class class_mask driver_data
e1000 0x00008086 0x00001000 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001001 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001004 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001008 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001009 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x0000100c 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x0000100d 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x0000100e 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x0000100f 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001010 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001011 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001012 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001013 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001014 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001015 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001016 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001017 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001018 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001019 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x0000101d 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x0000101e 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001026 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001027 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001028 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001075 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001076 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001077 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001078 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x00001079 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x0000107a 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
e1000 0x00008086 0x0000107b 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000000
# isapnp module cardvendor carddevice driver_data vendor function ...
# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
# module pattern
# ieee1394 module match_flags vendor_id model_id specifier_id version
# module id
[^] # Re: unresolved symbol
Posté par 007 . Évalué à 6.
Selon mes souvenirs, depmod utilise /boot/System.map.
Trouve le System.map qui correspond au noyau et fait par exemple :
$ depmod -e -F /boot/System.map-2.4.19-40mdksecure ...
[^] # Re: unresolved symbol
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
[^] # Re: unresolved symbol
Posté par 007 . Évalué à 1.
Au boot, le lien est mise à jour pour pointer sur /boot/System.map-`uname -r` .
Regardes ce que pointe /boot/System.map (s'il existe) ou ajoutes le.
[^] # Re: unresolved symbol
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
lrwxrwxrwx 1 root root 29 mai 6 09:53 System.map -> System.map-2.4.19-40mdksecure
Et d'ailleurs ca marche aussi avec :
depmod -e -F /boot/System.map /lib/modules/2.4.19-40mdksecure/kernel/drivers/net/e1000.o
ne m'indique pas de symboles non résolus...
[^] # Re: unresolved symbol
Posté par 007 . Évalué à 1.
[^] # Re: unresolved symbol
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
[^] # Re: unresolved symbol
Posté par 007 . Évalué à 1.
Tu as fait un "depmod -a" après l'installation du module e1000 ?
[^] # Re: unresolved symbol
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
[^] # Re: unresolved symbol
Posté par 007 . Évalué à 1.
Si ça marche, et que depmod -a ne marche pas
alors direction l'exorciste.
[^] # Re: unresolved symbol
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
[root@pf-amon root]# depmod -a
depmod: *** Unresolved symbols in /lib/modules/2.4.19-40mdksecure/kernel/drivers/net/e1000.o
T'as une bonne adresse ?
[^] # Re: unresolved symbol
Posté par 007 . Évalué à 0.
[^] # Re: unresolved symbol
Posté par 007 . Évalué à 2.
Par exemple sur un 2.6 :
# modinfo /lib/modules/2.6.5-1.350/kernel/net/ipv4/ah4.ko
license: GPL
vermagic: 2.6.5-1.350 686 REGPARM 4KSTACKS gcc-3.3
depends:
[root@localhost root]# modinfo /lib/modules/2.6.5-1.350custom/kernel/net/ipv4/ah4.ko
license: GPL
vermagic: 2.6.5-1.350custom 686 4KSTACKS gcc-3.3
depends:
Compares aussi le modules e1000 avec un autre module dans le répertoire /lib/modules/2.4.19-40mdksecure
[^] # Re: unresolved symbol
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
# modinfo /lib/modules/2.4.19-40mdksecure/kernel/drivers/net/e1000.o filename: /lib/modules/2.4.19-40mdksecure/kernel/drivers/net/e1000.o
description: "Intel(R) PRO/1000 Network Driver"
author: "Intel Corporation, <linux.nics@intel.com>"
license: "GPL"
parm: TxDescriptors int array (min = 1, max = 32), description "Number of transmit descriptors"
parm: RxDescriptors int array (min = 1, max = 32), description "Number of receive descriptors"
parm: Speed int array (min = 1, max = 32), description "Speed setting"
parm: Duplex int array (min = 1, max = 32), description "Duplex setting"
parm: AutoNeg int array (min = 1, max = 32), description "Advertised auto-negotiation setting"
parm: FlowControl int array (min = 1, max = 32), description "Flow Control setting"
parm: XsumRX int array (min = 1, max = 32), description "Disable or enable Receive Checksum offload"
parm: TxIntDelay int array (min = 1, max = 32), description "Transmit Interrupt Delay"
parm: TxAbsIntDelay int array (min = 1, max = 32), description "Transmit Absolute Interrupt Delay"
parm: RxIntDelay int array (min = 1, max = 32), description "Receive Interrupt Delay"
parm: RxAbsIntDelay int array (min = 1, max = 32), description "Receive Absolute Interrupt Delay"
parm: InterruptThrottleRate int array (min = 1, max = 32), description "Interrupt Throttling Rate"
[root@pf-amon root]# modinfo /lib/modules/2.4.19-40mdksecure/kernel/drivers/net/e2100.o.gz
filename: /lib/modules/2.4.19-40mdksecure/kernel/drivers/net/e2100.o.gz
description: "Cabletron E2100 ISA ethernet driver"
author:
license: "GPL"
parm: io int array (min = 1, max = 4), description "I/O base address(es)"
parm: irq int array (min = 1, max = 4), description "IRQ number(s)"
parm: mem int array (min = 1, max = 4), description " memory base address(es)"
parm: xcvr int array (min = 1, max = 4), description "tranceiver(s) (0=internal, 1=external)"
[^] # Re: unresolved symbol
Posté par 007 . Évalué à 0.
> e2100.o.gz
Si file e2100.o.gz retourne quelque chose comme :
gzip compressed data ...
Alors compresses aussi e1000.o (gzip e1000.o).
Pour voir...
En fait tu devrais peut-être reffaire un noyau complet.
cd /usr/src/linux
vim Makefile ( ajoute un truc à la fin de "EXTRAVERSION = -1.350" )
make mrproper
cp /boot/config-{version} .config
make oldconfig # pas forcément nécessaire
make dep
make
make modules
make modules_install
cp .config /boot/config-{new-version}
cp System.map /boot/System.map-{new-version}
cp arch/i386/boot/bzImage /boot/vmlinuz-{new-version}
mkinitrd /boot/initrd-{new-version}.img {new-version}
depmod -a -e -F /boot/System.map-{new-version} {new-version}
mise à jour /boot/grub/grub.conf ou /etc/lilo.conf
reboot.
compilation/installation de e1000 . Vérifier que le Makefile pointe sur l'arble de contruction (/usr/src/linux).
[^] # Re: unresolved symbol
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
En plus je préfere qu'ils continuent à avoir un noyau de base mdk avec updates de sécu.
[^] # Re: unresolved symbol
Posté par 007 . Évalué à 0.
"EXTRAVERSION=-40mdksecure".
cp /boot/config-2.4.19-40mdksecure .config
[...]
Tu obtiens le même noyau que Mandrake. L'avantage, est que tu es sûr que ton arbre de construction est synchro.
N'oublies pas de mettre au chaud /lib/modules/2.4.19-40mdksecure etc de Mandrake sinon le "nouveau" noyau va tout écraser
Fais ça après avoir testé avec "EXTRAVERSION=-40mdksecurecustom".
[^] # Re: unresolved symbol
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
N'oublies pas de mettre au chaud /lib/modules/2.4.19-40mdksecure
Pas besoin vu que je l'installe pas :-)
# Symboles suffixés
Posté par gc (site web personnel) . Évalué à 4.
A la fin on avait trouvé qu'une option de compil des modules permet de suffixer ou non les symboles par quelque chose qui ressemble à un md5 et qui semble être fait pour différencier un kernel d'un autre (sinon, on a juste le symbole "printk" par exemple, et donc tout kernel peut charger ce module même si des choses importantes comme les options de compil sont différentes, ce qui est à éviter).
Je flaire un problème similaire dans ton cas.
[^] # Re: Symboles suffixés
Posté par Pascal Terjan (site web personnel) . Évalué à 0.
[^] # Re: Symboles suffixés
Posté par gc (site web personnel) . Évalué à 2.
[^] # Re: Symboles suffixés
Posté par Pascal Terjan (site web personnel) . Évalué à 0.
[^] # Re: Symboles suffixés
Posté par gc (site web personnel) . Évalué à 4.
Mais dis-moi, tu aurais un contrat de support golden truc muche Mandrake tu aurais pu directement demander à Quintela ça aurait cool non. Ah ouais mais alors je contribue moi-même aux ratages des contrats de Mandrake en répondant ici :(. Hum.
[^] # Re: Symboles suffixés
Posté par Pascal Terjan (site web personnel) . Évalué à 0.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.