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