Compiler des modules pour d'autres machines

Compiler des modules pour d'autres machines - Installation - Linux et OS Alternatifs

Marsh Posté le 14-02-2003 à 13:48:46    

J'ai de petits problemes (de comprehension surtout) en ce qui concerne la compilation de modules.
 
Jusqu'à maintenant j'avais un SME5.5 mis à jour avec un noyau 2.4.18-5 à l'aide de rpm redhat.
Pour pouvoir compiler des sources pour ce serveur sans lui installer les package de dev, je me suis monté une autre machine à base de redhat 7.1 mise à jour avec la meme version du kernel (meme rpm redhat).
J'ai donc compilé quelques modules (drivers bewan, lcd-mod) qui  
fonctionnaient tres bien sur mon SME5.5.
Hier j'ai installé un SME5.6 qui a le meme noyau, donc à priori  
compatible avec mes modules, je les recopie donc là où il faut, je fais un depmod -ae et voilà ce que j'obtient :  
 
depmod: *** Unresolved symbols in /lib/modules/2.4.18-5/kernel/drivers/atm/unicorn_atm.o
depmod:         __wake_up
depmod:         __kfree_skb
depmod:         alloc_skb
depmod:         __generic_copy_from_user
depmod:         kmalloc
depmod:         boot_cpu_data
depmod:         cpu_raise_softirq
depmod:         get_random_bytes
depmod:         del_timer
depmod:         atm_charge
depmod:         kfree
depmod:         ___pskb_trim
depmod:         __verify_write
depmod:         skb_over_panic
depmod:         do_BUG
depmod:         sprintf
depmod:         jiffies
depmod:         softnet_data
depmod:         printk
depmod:         atm_dev_register
depmod:         add_timer
depmod:         irq_stat
depmod:         shutdown_atm_dev
depmod:         __generic_copy_to_user
depmod: *** Unresolved symbols in /lib/modules/2.4.18-5/kernel/drivers/atm/unicorn_pci.o
depmod:         pci_write_config_byte
depmod:         send_sig
depmod:         flush_signals
depmod:         schedule_timeout
depmod:         __wake_up
depmod:         vsprintf
depmod:         kmalloc
depmod:         pci_free_consistent
depmod:         pci_enable_device
depmod:         pci_disable_device
depmod:         pcibios_present
depmod:         pidhash
depmod:         free_irq
depmod:         iounmap
depmod:         pci_alloc_consistent
depmod:         interruptible_sleep_on_timeout
depmod:         __ioremap
depmod:         del_timer
depmod:         mod_timer
depmod:         pci_release_regions
depmod:         kfree
depmod:         request_irq
depmod:         exit_files
depmod:         pci_set_master
depmod:         xtime
depmod:         pci_find_device
depmod:         do_BUG
depmod:         sprintf
depmod:         daemonize
depmod:         jiffies
depmod:         printk
depmod:         add_timer
depmod:         complete_and_exit
depmod:         kernel_thread
depmod:         __const_udelay
depmod:         pci_request_regions
depmod: *** Unresolved symbols in /lib/modules/2.4.18-5/misc/lcd.o
depmod:         remove_proc_entry_R17568295
depmod:         register_chrdev_R5c582fbc
depmod:         create_proc_entry_Rbfe731f4
 
J'essaye tout de meme de charger ces modules : les drivers unicorn passent, le driver lcd refuse :
Using /lib/modules/2.4.18-5/misc/lcd.o
/lib/modules/2.4.18-5/misc/lcd.o: unresolved symbol  
remove_proc_entry_R17568295
/lib/modules/2.4.18-5/misc/lcd.o: unresolved symbol  
register_chrdev_R5c582fbc
/lib/modules/2.4.18-5/misc/lcd.o: unresolved symbol  
create_proc_entry_Rbfe731f4
 
Je ne comprend pas pourquoi. Apparement, selon le resultat du depmod, il y aurait 2 types de unresolved symbol : avec ou sans code(adresse, numéro de symbol, ???) et l'un serait critique, l'autre pas.
 
Les modules qui passent sont compilés avec ces options :  
 
CFLAGS := -O2 -fno-exceptions -fno-gnu-linker -Wstrict-prototypes -fomit- frame-pointer -fno-strict-aliasing -pipe -fno-stren
gth-reduce -Wall -DMODULE -D__KERNEL__ -DLINUX -DDEBUG=1
INCLUDES := -I$(HPATH) -I../include/ -I../ MODFLAGS = -DMODULE
 
Ceux qui ne passent pas avec celles ci :  
 
CFLAGS= -Wall -D__KERNEL__ -I$(KERNEL_SRC_DIR)/include \
                -O2 -fomit-frame-pointer -pipe \
                -ffixed-8 -DMODULE -DMODVERSIONS -finline-functions \
                -include $(KERNEL_SRC_DIR)/include/linux/modversions.h
 
L'architecture de l'environement de compil est elle importante pour les modules ?  
Est il possible de compiler des modules qui fonctionneront à coup sûr sur n'importe quel Linux ayant le meme kernel (meme version du rpm redhat et au moins sans tenir compte du SMP) ?
 
Merci d'avance

Reply

Marsh Posté le 14-02-2003 à 13:48:46   

Reply

Marsh Posté le 15-02-2003 à 23:56:32    

UP

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed