Kompilujte a nainstalujte ovladač se zdrojovým kódem
Summary: Ovladač systému Linux je vázán na jádro. Většina ovladačů RPM pro systém Linux ke stažení je určená pro původní verzi jádra jednotlivých verzí. Pokud bylo jádro aktualizováno na konkrétní verzi, ovladač RPM již nebude pro aktualizované jádro vhodný. Tento článek databáze znalostí popisuje, jak aktualizovat ovladač pro aktualizované jádro ze zdrojového kódu. ...
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
V tomto článku databáze znalostí použijeme jako příklad síťovou kartu X710. Všechny ostatní zdrojové kódy systému Linux jsou podobné.
Nainstalujte požadované balíčky pro kompilaci.
1. Stáhněte ovladač z portálu podpory společnosti Dell.
2. Extrahujte a získejte zdrojový kód.
3a. Problém: Pokud se při spuštění příkazu "make" zobrazí následující chyba:
3b. Problém: Před instalací otestujte ovladač. Pokud se zobrazí následující chyba "Required key not available", znamená to, že server má povolenou možnost "Secure Boot", což neumožňuje načíst samokompilovaný ovladač. Spuštěním systému BIOS můžete zakázat funkci "Secure Boot".
4. Nainstalujte ovladač na tento server.
Další:
Chcete-li vytvořit modul RPM na základě tohoto ovladače pro instalaci na ostatní servery (na cílovém serveru musí být stejná verze jádra), vytvořte soubor rpm pomocí následujícího příkazu.
Nainstalujte požadované balíčky pro kompilaci.
[root@rhel87 ~]# yum groupinstall "Development Tools" [root@rhel87 ~]# yum install kernel-devel-$(uname -r)
1. Stáhněte ovladač z portálu podpory společnosti Dell.
2. Extrahujte a získejte zdrojový kód.
[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. Kompilujte ovladač.
[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. Problém: Pokud se při spuštění příkazu "make" zobrazí následující chyba:
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.Ujistěte se, že balíček "kernel-devel" s nainstalovanou stejnou verzí jádra. (V prvním kroku)
[root@rhel87 ~]# yum install kernel-devel-$(uname -r)
3b. Problém: Před instalací otestujte ovladač. Pokud se zobrazí následující chyba "Required key not available", znamená to, že server má povolenou možnost "Secure Boot", což neumožňuje načíst samokompilovaný ovladač. Spuštěním systému BIOS můžete zakázat funkci "Secure Boot".
[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. Nainstalujte ovladač na tento server.
[root@rhel87 src]# make install5. Restartujte server a nový ovladač se po spuštění automaticky načte.
Další:
Chcete-li vytvořit modul RPM na základě tohoto ovladače pro instalaci na ostatní servery (na cílovém serveru musí být stejná verze jádra), vytvořte soubor rpm pomocí následujícího příkazu.
[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/Zkopírujte soubor rpm na cílový server, který chcete nainstalovat.
Affected Products
Red Hat Enterprise Linux Version 6, Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8Article Properties
Article Number: 000211258
Article Type: How To
Last Modified: 19 Dec 2024
Version: 3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.