Driver compileren en installeren met broncode
Resumen: Linux-driver is gekoppeld aan de kernel. De meeste Linux RPM-drivers die u kunt downloaden, zijn voor de oorspronkelijke kernelversie van elke versie. Als de kernel is bijgewerkt naar een specifieke versie, is de RPM-driver niet langer geschikt voor de bijgewerkte kernel. In dit KB-artikel leest u hoe u de driver voor de bijgewerkte kernel kunt bijwerken vanuit de broncode. ...
Este artículo se aplica a
Este artículo no se aplica a
Este artículo no está vinculado a ningún producto específico.
No se identifican todas las versiones del producto en este artículo.
Instrucciones
In dit KB-artikel nemen we de X710 NIC als voorbeeld. Alle andere Linux-broncodes zijn vergelijkbaar.
Installeer vereiste pakketten voor compilatie.
1. Download de driver van de Dell Support Portal.
2. Pak de broncode uit en haal deze op.
3a. Probleem: Als u de volgende foutmelding ziet bij het uitvoeren van de opdracht "make"
3b. Probleem: Test de driver voordat u deze installeert. Als de volgende foutmelding "Required key not available" (Vereiste sleutel niet beschikbaar) wordt weergegeven, betekent dit dat de server "Secure Boot" heeft ingeschakeld, wat niet is toegestaan om de zelfcompileerde driver te laden. U kunt opstarten in het BIOS om 'Secure Boot' uit te schakelen.
4. Installeer de driver op deze server.
Extra:
Als u rpm wilt maken op basis van deze driver om te installeren op de andere servers (moet dezelfde kernelversie op de doelserver zijn), voert u de volgende opdracht uit om rpm te maken.
Installeer vereiste pakketten voor compilatie.
[root@rhel87 ~]# yum groupinstall "Development Tools" [root@rhel87 ~]# yum install kernel-devel-$(uname -r)
1. Download de driver van de Dell Support Portal.
2. Pak de broncode uit en haal deze op.
[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. Compileer de driver.
[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]#
3a. Probleem: Als u de volgende foutmelding ziet bij het uitvoeren van de opdracht "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.Zorg ervoor dat het pakket "kernel-devel" met dezelfde kernelversie is geïnstalleerd. (In de eerste stap)
[root@rhel87 ~]# yum install kernel-devel-$(uname -r)
3b. Probleem: Test de driver voordat u deze installeert. Als de volgende foutmelding "Required key not available" (Vereiste sleutel niet beschikbaar) wordt weergegeven, betekent dit dat de server "Secure Boot" heeft ingeschakeld, wat niet is toegestaan om de zelfcompileerde driver te laden. U kunt opstarten in het BIOS om 'Secure Boot' uit te schakelen.
[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. Installeer de driver op deze server.
[root@rhel87 src]# make install5. Start de server opnieuw op en de nieuwe driver wordt automatisch geladen na het opstarten.
Extra:
Als u rpm wilt maken op basis van deze driver om te installeren op de andere servers (moet dezelfde kernelversie op de doelserver zijn), voert u de volgende opdracht uit om rpm te maken.
[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/Kopieer de rpm naar de doelserver om deze te installeren.
Productos afectados
Red Hat Enterprise Linux Version 6, Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8Propiedades del artículo
Número del artículo: 000211258
Tipo de artículo: How To
Última modificación: 19 dic 2024
Versión: 3
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.