Kompilacja i instalacja sterownika z kodem źródłowym
Shrnutí: Sterownik linux jest powiązany z jądrem. Większość sterowników RPM linux do pobrania dotyczy oryginalnej wersji jądra każdej wersji. Jeśli jądro zostało zaktualizowane do określonej wersji, sterownik RPM nie będzie już odpowiedni dla zaktualizowanego jądra. Ten artykuł bazy wiedzy zawiera informacje na temat sposobu aktualizacji sterownika zaktualizowanego jądra z kodu źródłowego. ...
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
W tej wiedzy jako przykład przedstawiamy kartę sieciową X710. Wszystkie pozostałe kody źródłowe systemu Linux są podobne.
Instalacja wymaganych pakietów kompilacji.
1. Pobierz sterownik z portalu pomocy technicznej firmy Dell.
2. Wyodrębnij i pobierz kod źródłowy.
3 a. Problem: Jeśli podczas uruchamiania polecenia "make" wyświetlany jest następujący błąd
3b. Problem: Przetestuj sterownik przed instalacją. Jeśli wyświetli się następujący błąd "Required key not available" (Wymagany klucz jest niedostępny) oznacza, że na serwerze włączono funkcję "Secure Boot", co nie może załadować sterownika skompilowanego samodzielnie. Możesz uruchomić system BIOS, aby wyłączyć opcję "Secure Boot".
4. Zainstaluj sterownik na tym serwerze.
Dodatkowe:
Jeśli chcesz utworzyć pakiet RPM na podstawie tego sterownika, aby zainstalować go na innych serwerach (musi to być ta sama wersja jądra na serwerze docelowym), uruchom następujące polecenie, aby utworzyć pakiet rpm.
Instalacja wymaganych pakietów kompilacji.
[root@rhel87 ~]# yum groupinstall "Development Tools" [root@rhel87 ~]# yum install kernel-devel-$(uname -r)
1. Pobierz sterownik z portalu pomocy technicznej firmy Dell.
2. Wyodrębnij i pobierz kod źródłowy.
[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. Skompiluj sterownik.
[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]#
3 a. Problem: Jeśli podczas uruchamiania polecenia "make" wyświetlany jest następujący błąd
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.Upewnij się, że pakiet "kernel-devel" ma zainstalowaną tę samą wersję jądra. (W pierwszym kroku)
[root@rhel87 ~]# yum install kernel-devel-$(uname -r)
3b. Problem: Przetestuj sterownik przed instalacją. Jeśli wyświetli się następujący błąd "Required key not available" (Wymagany klucz jest niedostępny) oznacza, że na serwerze włączono funkcję "Secure Boot", co nie może załadować sterownika skompilowanego samodzielnie. Możesz uruchomić system BIOS, aby wyłączyć opcję "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. Zainstaluj sterownik na tym serwerze.
[root@rhel87 src]# make install5. Uruchom ponownie serwer, a nowy sterownik zostanie automatycznie załadowany po uruchomieniu.
Dodatkowe:
Jeśli chcesz utworzyć pakiet RPM na podstawie tego sterownika, aby zainstalować go na innych serwerach (musi to być ta sama wersja jądra na serwerze docelowym), uruchom następujące polecenie, aby utworzyć pakiet 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/Skopiuj pakiet RPM na serwer docelowy do zainstalowania.
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.