Compiler et installer le pilote avec le code source
Résumé: Le pilote Linux est lié au noyau. La plupart des pilotes RPM Linux à télécharger concernent la version du noyau d’origine de chaque version. Si le noyau a été mis à jour vers une version spécifique, le pilote RPM ne sera plus adapté au noyau mis à jour. Cet article de la base de connaissances explique comment mettre à jour le pilote du noyau mis à jour à partir du code source. ...
Cet article concerne
Cet article ne concerne pas
Cet article n’est associé à aucun produit spécifique.
Toutes les versions du produit ne sont pas identifiées dans cet article.
Instructions
Dans cet article de la base de connaissances, nous prenons la carte NIC X710 comme exemple. Tous les autres code source Linux sont similaires.
Installez les packages requis pour la compilation.
1. Téléchargez le pilote à partir du portail de support Dell.
2. Extrayez et obtenez le code source.
3 a. Problème : Si l’erreur suivante s’est produite lors de l’exécution de la commande « make »
3b. Problème : Testez le pilote avant d’installer. Si vous avez obtenu l’erreur suivante « Required key not available », cela signifie que le serveur est activé sur « Secure Boot » (Démarrage sécurisé), ce qui n’est pas autorisé à charger le pilote auto-compilé. Vous pouvez démarrer dans le BIOS pour désactiver le démarrage sécurisé.
4. Installez le pilote sur ce serveur.
Supplémentaire:
Si vous souhaitez créer un RPM basé sur ce pilote pour l’installer sur les autres serveurs (doit être la même version du noyau sur le serveur cible), exécutez la commande suivante pour créer rpm.
Installez les packages requis pour la compilation.
[root@rhel87 ~]# yum groupinstall "Development Tools" [root@rhel87 ~]# yum install kernel-devel-$(uname -r)
1. Téléchargez le pilote à partir du portail de support Dell.
2. Extrayez et obtenez le code source.
[root@rhel87 i40e]# tar xf Intel_LAN_21.5.0_Linux_Source_A02.tar.gz [root@rhel87 i40e]# cd Source/base_driver/ [root@rhel87 base_driver]# tar xf i40e-2.20.12.tar.gz [root@rhel87 base_driver]# cd i40e-2.20.12/ [root@rhel87 i40e-2.20.12]# ls COPYING i40e.7 i40e.spec pci.updates README scripts src SUMS root@rhel87 i40e-2.20.12]# cd src/ [root@rhel87 src]# ls auxiliary.c i40e_client.h i40e_diag.c i40e_hmc.c i40e_ptp.c i40e_virtchnl_pf.c kcompat_impl.h linux auxiliary_compat.h i40e_common.c i40e_diag.h i40e_hmc.h i40e_register.h i40e_virtchnl_pf.h kcompat_overflow.h Makefile common.mk i40e_dcb.c i40e_ethtool.c i40e_lan_hmc.c i40e_status.h i40e_xsk.c kcompat_rhel_defs.h Module.supported i40e_adminq.c i40e_dcb.h i40e_ethtool_stats.h i40e_lan_hmc.h i40e_trace.h i40e_xsk.h kcompat_sles_defs.h virtchnl.h i40e_adminq_cmd.h i40e_dcb_nl.c i40e_filters.c i40e_main.c i40e_txrx.c kcompat.c kcompat_std_defs.h i40e_adminq.h i40e_ddp.c i40e_filters.h i40e_nvm.c i40e_txrx_common.h kcompat_defs.h kcompat_ubuntu_defs.h i40e_alloc.h i40e_debugfs.c i40e.h i40e_osdep.h i40e_txrx.h kcompat_gcc.h kcompat_vfd.c i40e_client.c i40e_devids.h i40e_helper.h i40e_prototype.h i40e_type.h kcompat.h kcompat_vfd.h3. Compilez le pilote.
[root@rhel87 src]# make *** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but *** the signing key cannot be found. Module signing has been *** disabled for this build. make[1]: Entering directory '/usr/src/kernels/4.18.0-80.el8.x86_64' /root/i40e/Source/base_driver/i40e-2.20.12/src/Makefile:38: 2 CC [M] /root/i40e/Source/base_driver/i40e-2.20.12/src/i40e_main.o ...skipped... LD [M] /root/i40e/Source/base_driver/i40e-2.20.12/src/i40e.o CC [M] /root/i40e/Source/base_driver/i40e-2.20.12/src/auxiliary.o Building modules, stage 2. /root/i40e/Source/base_driver/i40e-2.20.12/src/Makefile:38: 2 MODPOST 2 modules CC /root/i40e/Source/base_driver/i40e-2.20.12/src/auxiliary.mod.o LD [M] /root/i40e/Source/base_driver/i40e-2.20.12/src/auxiliary.ko CC /root/i40e/Source/base_driver/i40e-2.20.12/src/i40e.mod.o LD [M] /root/i40e/Source/base_driver/i40e-2.20.12/src/i40e.ko make[1]: Leaving directory '/usr/src/kernels/4.18.0-80.el8.x86_64' [root@rhel87 src]# echo $? 0 [root@rhel87 src]# modinfo ./i40e.ko filename: /root/i40e/Source/base_driver/i40e-2.20.12/src/./i40e.ko version: 2.20.12 license: GPL description: Intel(R) 40-10 Gigabit Ethernet Connection Network Driver author: Intel Corporation, <e1000-devel@lists.sourceforge.net> rhelversion: 8.0 srcversion: A92CB6A1AD515E14A84C283 alias: pci:v00008086d0000158Bsv*sd*bc*sc*i* ...skipped... alias: pci:v00008086d00001572sv*sd*bc*sc*i* depends: auxiliary name: i40e vermagic: 4.18.0-80.el8.x86_64 SMP mod_unload modversions parm: debug:Debug level (0=none,...,16=all) (int) parm: l4mode:L4 cloud filter mode: 0=UDP,1=TCP,2=Both,-1=Disabled(default) (int) [root@rhel87 src]#
3 a. Problème : Si l’erreur suivante s’est produite lors de l’exécution de la commande « make »
common.mk:82: *** Kernel header files not in any of the expected locations. common.mk:83: *** Install the appropriate kernel development package, e.g. common.mk:84: *** kernel-devel, for building kernel modules and try again. Stop.Assurez-vous que le package « kernel-devel » avec la même version du noyau est installé. (Dans la première étape)
[root@rhel87 ~]# yum install kernel-devel-$(uname -r)
3b. Problème : Testez le pilote avant d’installer. Si vous avez obtenu l’erreur suivante « Required key not available », cela signifie que le serveur est activé sur « Secure Boot » (Démarrage sécurisé), ce qui n’est pas autorisé à charger le pilote auto-compilé. Vous pouvez démarrer dans le BIOS pour désactiver le démarrage sécurisé.
[root@rhel87 src]# modprobe -r i40e [root@rhel87 src]# insmod ./i40e.ko insmod: ERROR: could not insert module ./i40e.ko: Required key not available
4. Installez le pilote sur ce serveur.
[root@rhel87 src]# make install5. Redémarrez le serveur et le nouveau pilote sera automatiquement chargé après le démarrage.
Supplémentaire:
Si vous souhaitez créer un RPM basé sur ce pilote pour l’installer sur les autres serveurs (doit être la même version du noyau sur le serveur cible), exécutez la commande suivante pour créer rpm.
[root@rhel87 src]# cd ../.. [root@rhel87 base_driver]# ls -lh i40e-2.20.12.tar.gz -rw-r--r-- 1 5714316 1049089 673K Jul 11 2022 i40e-2.20.12.tar.gz [root@rhel87 base_driver]# rpmbuild -tb i40e-2.20.12.tar.gz ...skipped... [root@rhel87 base_driver]# ls /root/rpmbuild/RPMS/x86_64/Copiez le rpm sur le serveur cible à installer.
Produits concernés
Red Hat Enterprise Linux Version 6, Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8Propriétés de l’article
Numéro d’article: 000211258
Type d’article: How To
Dernière modification: 19 déc. 2024
Version: 3
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.