Kaynak Kodu ile Sürücüyü Derleme ve Yükleme

요약: Linux sürücüsü çekirdeke bağlı. İndirmeye yönelik Linux RPM sürücülerinin çoğu, her bir sürümün orijinal çekirdek sürümüne yöneliktir. Çekirdek belirli bir sürüme güncelleştirilmişse RPM sürücüsü artık güncelleştirilmiş çekirdek için uygun değildir. Bu KB, kaynak kodundan güncelleştirilmiş çekirdek için sürücüyü güncelleştirmeye yöneliktir. ...

이 문서는 다음에 적용됩니다. 이 문서는 다음에 적용되지 않습니다. 이 문서는 특정 제품과 관련이 없습니다. 모든 제품 버전이 이 문서에 나와 있는 것은 아닙니다.

지침

Bu KB'de X710 NIC'yi örnek olarak aacağız. Diğer tüm Linux kaynak kodları benzerdir.

Derleme için gerekli paketlerin kurulumu.
[root@rhel87 ~]# yum groupinstall "Development Tools"
[root@rhel87 ~]# yum install kernel-devel-$(uname -r)

1. Sürücüyü Dell Support Portal'dan indirin.
2. Kaynak kodunu ayıklayın ve alın.
[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.h
3. Sürücüyü derle.
[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. Sorun: "make" komutunu çalıştırırken aşağıdaki gibi bir hatayla karşılaştıysanız
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" paketinin aynı çekirdek sürümü yüklü olduğundan emin olun. (İlk adımda)
[root@rhel87 ~]# yum install kernel-devel-$(uname -r)

3b. Sorun: Yüklemeden önce sürücüyü test edin. "Required key not available" (Gerekli anahtar mevcut değil) hatasıyla karşılaştıysa sunucunun kendi kendine derlenmiş sürücüyü yüklemesine izin verilmiyor "Secure Boot" (Güvenli Önyükleme) etkin olduğu anlamına gelir. "Secure Boot" (Güvenli Önyükleme) özelliğini devre dışı bırakmak için BIOS'a önyüklenebilir.
[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. Sürücüyü bu sunucuya yükleyin.
[root@rhel87 src]# make install
5. Sunucuyu yeniden başlatın ve yeni sürücü önyüklemeden sonra otomatik olarak yüklenir.


Ek:
Diğer sunuculara yüklemek için bu sürücüye dayalı RPM oluşturmak istiyorsanız (hedef sunucuda aynı çekirdek sürümü olmalıdır), rpm oluşturmak için aşağıdaki komutu çalıştırın.
[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'yi yüklemek için hedef sunucuya kopyalama.




해당 제품

Red Hat Enterprise Linux Version 6, Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8
문서 속성
문서 번호: 000211258
문서 유형: How To
마지막 수정 시간: 19 12월 2024
버전:  3
다른 Dell 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.