以原始碼編譯和安裝驅動程式
Shrnutí: Linux 驅動程式已綁定在核心上。大部分要下載的 Linux RPM 驅動程式都適用於每個版本的原始核心版本。如果核心已更新為特定版本,RPM 驅動程式將不再適合更新的核心。此知識庫文章將說明如何從來源代碼更新更新核心的驅動程式。
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
在此知識庫文章中,我們以 X710 NIC 為範例。其他所有的 linux 原始碼都類似。
安裝彙編所需的套件。
1.從 Dell 支援入口網站下載驅動程式。
2.擷取並取得原始碼。
3a。問題:如果您在執行「make」命令時看到以下錯誤
3b。問題:安裝前請先測試驅動程式。如果出現以下錯誤「Required key not available」,表示伺服器已啟用「安全開機」,不允許載入自行編譯的驅動程式。您可以開機進入 BIOS 以停用「安全開機」。
4.將驅動程式安裝至此伺服器。
額外:
如果您想要根據此驅動程式建立 RPM 以安裝至其他伺服器 (必須在目標伺服器上為相同的核心版本),請執行下列命令以建立 rpm。
安裝彙編所需的套件。
[root@rhel87 ~]# yum groupinstall "Development Tools" [root@rhel87 ~]# yum install kernel-devel-$(uname -r)
1.從 Dell 支援入口網站下載驅動程式。
2.擷取並取得原始碼。
[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.編譯驅動程式。
[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。問題:如果您在執行「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.確定套件「核心解說」已安裝相同的核心版本。(在第一步中)
[root@rhel87 ~]# yum install kernel-devel-$(uname -r)
3b。問題:安裝前請先測試驅動程式。如果出現以下錯誤「Required key not available」,表示伺服器已啟用「安全開機」,不允許載入自行編譯的驅動程式。您可以開機進入 BIOS 以停用「安全開機」。
[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.將驅動程式安裝至此伺服器。
[root@rhel87 src]# make install5.重新啟動伺服器,新驅動程式將在開機後自動載入。
額外:
如果您想要根據此驅動程式建立 RPM 以安裝至其他伺服器 (必須在目標伺服器上為相同的核心版本),請執行下列命令以建立 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/將 RPM 複製到目標伺服器以進行安裝。
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.