ソース コードを使用したドライバーのコンパイルとインストール
Summary: Linuxドライバーはカーネルに関連付けられています。ダウンロード用のLinux RPMドライバーのほとんどは、各リリースの元のカーネル バージョン用です。カーネルが特定のバージョンにアップデートされている場合、RPMドライバーはアップデートされたカーネルには適しなくなります。このKBは、アップデートされたカーネルのドライバーをソース コードからアップデートする方法について説明します。 ...
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
このKBでは、例として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.同じカーネル バージョンがインストールされているパッケージ「kernel-devel」を確認します。(最初のステップ)
[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をコピーします。
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.