Compilar e instalar o driver com o código-fonte
Shrnutí: O driver do Linux está vinculado ao kernel. A maioria dos drivers de RPM do Linux para download é para a versão original do kernel de cada versão. Se o kernel tiver sido atualizado para uma versão específica, o driver rpm não será mais adequado para o kernel atualizado. Este artigo da KB mostra como atualizar o driver do kernel atualizado a partir do código-fonte. ...
Tento článek se vztahuje na
Tento článek se nevztahuje na
Tento článek není vázán na žádný konkrétní produkt.
V tomto článku nejsou uvedeny všechny verze produktu.
Pokyny
Neste artigo da KB, usamos a NIC X710 como exemplo. Todos os outros códigos-fonte do Linux são semelhantes.
Instale os pacotes necessários para compilação.
1. Faça download do driver no Portal de suporte da Dell.
2. Extraia e obtenha o código-fonte.
3 a. Problema: Se você viu um erro como o seguinte ao executar o comando "make"
3b. Problema: Teste o driver antes de instalar. Se o seguinte erro "Chave obrigatória não estiver disponível", significa que o servidor tem a opção "Secure Boot" ativada, que não tem permissão para carregar o driver auto compilado. Você pode inicializar no BIOS para desativar a "Inicialização segura".
4. Instale o driver nesse servidor.
Adicionais:
Se você quiser criar o RPM com base nesse driver para instalar em outros servidores (deve ser a mesma versão do kernel no servidor de destino), execute o seguinte comando para criar o rpm.
Instale os pacotes necessários para compilação.
[root@rhel87 ~]# yum groupinstall "Development Tools" [root@rhel87 ~]# yum install kernel-devel-$(uname -r)
1. Faça download do driver no Portal de suporte da Dell.
2. Extraia e obtenha o código-fonte.
[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 o 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]#
3 a. Problema: Se você viu um erro como o seguinte ao executar o 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.Certifique-se de que o pacote "kernel-devel" com a mesma versão do kernel esteja instalada. (Na primeira etapa)
[root@rhel87 ~]# yum install kernel-devel-$(uname -r)
3b. Problema: Teste o driver antes de instalar. Se o seguinte erro "Chave obrigatória não estiver disponível", significa que o servidor tem a opção "Secure Boot" ativada, que não tem permissão para carregar o driver auto compilado. Você pode inicializar no BIOS para desativar a "Inicialização segura".
[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 o driver nesse servidor.
[root@rhel87 src]# make install5. Reinicialize o servidor e o novo driver será carregado automaticamente após a inicialização.
Adicionais:
Se você quiser criar o RPM com base nesse driver para instalar em outros servidores (deve ser a mesma versão do kernel no servidor de destino), execute o seguinte comando para criar o 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 o RPM para o servidor de destino a ser instalado.
Dotčené produkty
Red Hat Enterprise Linux Version 6, Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8Vlastnosti článku
Číslo článku: 000211258
Typ článku: How To
Poslední úprava: 19 pro 2024
Verze: 3
Najděte odpovědi na své otázky od ostatních uživatelů společnosti Dell
Služby podpory
Zkontrolujte, zda se na vaše zařízení vztahují služby podpory.