Compilar e instalar el controlador con el código fuente
Resumen: El controlador de Linux está vinculado al kernel. La mayoría de los controladores RPM de Linux para descarga son para la versión original del kernel de cada versión. Si el kernel se actualizó a una versión específica, el controlador rpm ya no será adecuado para el kernel actualizado. Este artículo de la base de conocimientos sirve para actualizar el controlador para el kernel actualizado desde el código fuente. ...
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
En este artículo de la base de conocimientos, tomamos nic X710 como ejemplo. Todos los demás códigos fuente de Linux son similares.
Instalar los paquetes necesarios para la compilación.
1. Descargue el controlador desde el portal de soporte de Dell.
2. Extraiga y obtenga el código fuente.
3a. Problema: Si vio el error como el siguiente cuando ejecutó el comando "make"
3b. Problema: Pruebe el controlador antes de instalar. Si aparece el siguiente error "Required key not available", significa que el servidor tiene "Secure Boot" habilitado, lo que no permite cargar el controlador autocompilado. Puede iniciar en el BIOS para deshabilitar el "arranque seguro".
4. Instale el controlador en este servidor.
Adicional:
Si desea crear RPM basados en este controlador para instalar en los otros servidores (debe ser la misma versión de kernel en el servidor de destino), ejecute el siguiente comando para crear rpm.
Instalar los paquetes necesarios para la compilación.
[root@rhel87 ~]# yum groupinstall "Development Tools" [root@rhel87 ~]# yum install kernel-devel-$(uname -r)
1. Descargue el controlador desde el portal de soporte de Dell.
2. Extraiga y obtenga el código fuente.
[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. Compile el controlador.
[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. Problema: Si vio el error como el siguiente cuando ejecutó el comando "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.Asegúrese de que el paquete "kernel-devel" con la misma versión de kernel instalada. (En el primer paso)
[root@rhel87 ~]# yum install kernel-devel-$(uname -r)
3b. Problema: Pruebe el controlador antes de instalar. Si aparece el siguiente error "Required key not available", significa que el servidor tiene "Secure Boot" habilitado, lo que no permite cargar el controlador autocompilado. Puede iniciar en el BIOS para deshabilitar el "arranque seguro".
[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. Instale el controlador en este servidor.
[root@rhel87 src]# make install5. Reinicie el servidor y el nuevo controlador se cargará automáticamente después del arranque.
Adicional:
Si desea crear RPM basados en este controlador para instalar en los otros servidores (debe ser la misma versión de kernel en el servidor de destino), ejecute el siguiente comando para crear 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/Copie el rpm en el servidor de destino que se instalará.
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.