Sådan installeres kernehoveder i CentOS 7


Når du kompilerer et brugerdefineret kernemodul såsom en enhedsdriver på et CentOS-system, skal du have kernel header-filer installeret på systemet, som inkluderer C header-filerne til Linux-kernen. Kernens header-filer giver forskellige former for funktions- og strukturdefinitioner, der kræves, når du installerer eller kompilerer enhver kode, der grænseflader med kernen.

Når du installerer Kernel Headers, skal du sørge for at det stemmer overens med den aktuelt installerede kerneversion på systemet. Hvis din Kernel-version leveres med standarddistributionsinstallationen, eller du har opgraderet din Kernel ved hjælp af yum-pakkehåndtering fra systembaserede opbevaringssteder, skal du kun installere matchende kerneoverskrifter ved hjælp af kun pakkehåndtering. Hvis du har samlet Kernel fra kilder, kan du kun installere kerneoverskrifter fra kilder.

I denne artikel vil vi forklare, hvordan du installerer Kernel Headers i CentOS/RHEL 7- og Fedora-distributioner ved hjælp af standardpakkehåndtering.

Installer kernehoveder i CentOS 7

Bekræft først, at de matchende kerneoverskrifter allerede er installeret under/usr/src/kerner/placering på dit system ved hjælp af følgende kommandoer.

# cd /usr/src/kernels/
# ls -l

Hvis der ikke findes nogen matchende kerneoverskrifter i/usr/src/kerner/biblioteket, skal du fortsætte og installere kerneoverskrifter, som leveres af kerneudviklingspakken, der kan installeres ved hjælp af standardpakkehåndteringen som vist.

# yum install kernel-devel   [On CentOS/RHEL 7]
# dnf install kernel-devel   [On Fedora 22+]

Efter installation af kernel-devel-pakken kan du finde alle kernel-headers-filerne i/usr/src/kernels-biblioteket ved hjælp af følgende kommando.

# ls -l /usr/src/kernels/$(uname -r) 

Bemærk på en VPS (for eksempel en Linode VPS), kan en kerne have et tilpasset versionnavn. I et sådant scenario skal du identificere kerneversionen manuelt og kontrollere de installerede kernehovedfiler ved hjælp af følgende kommandoer.

# uname -r	
# ls -l /usr/src/kernels/3.10.0-862.2.3.el7.x86_64
total 4544
drwxr-xr-x.  32 root root    4096 May 16 12:48 arch
drwxr-xr-x.   3 root root    4096 May 16 12:48 block
drwxr-xr-x.   4 root root    4096 May 16 12:48 crypto
drwxr-xr-x. 119 root root    4096 May 16 12:48 drivers
drwxr-xr-x.   2 root root    4096 May 16 12:48 firmware
drwxr-xr-x.  75 root root    4096 May 16 12:48 fs
drwxr-xr-x.  28 root root    4096 May 16 12:48 include
drwxr-xr-x.   2 root root    4096 May 16 12:48 init
drwxr-xr-x.   2 root root    4096 May 16 12:48 ipc
-rw-r--r--.   1 root root     505 May  9 19:21 Kconfig
drwxr-xr-x.  12 root root    4096 May 16 12:48 kernel
drwxr-xr-x.  10 root root    4096 May 16 12:48 lib
-rw-r--r--.   1 root root   51205 May  9 19:21 Makefile
-rw-r--r--.   1 root root    2305 May  9 19:21 Makefile.qlock
drwxr-xr-x.   2 root root    4096 May 16 12:48 mm
-rw-r--r--.   1 root root 1093137 May  9 19:21 Module.symvers
drwxr-xr-x.  60 root root    4096 May 16 12:48 net
drwxr-xr-x.  14 root root    4096 May 16 12:48 samples
drwxr-xr-x.  13 root root    4096 May 16 12:48 scripts
drwxr-xr-x.   9 root root    4096 May 16 12:48 security
drwxr-xr-x.  24 root root    4096 May 16 12:48 sound
-rw-r--r--.   1 root root 3409102 May  9 19:21 System.map
drwxr-xr-x.  17 root root    4096 May 16 12:48 tools
drwxr-xr-x.   2 root root    4096 May 16 12:48 usr
drwxr-xr-x.   4 root root    4096 May 16 12:48 virt
-rw-r--r--.   1 root root      41 May  9 19:21 vmlinux.id

Derudover, hvis du har brug for headerfiler til Linux-kernen til brug af glibc, skal du installere kernel-header-pakken ved hjælp af følgende kommando.

# yum install kernel-headers   [On CentOS/RHEL 7]
# dnf install kernel-headers   [On Fedora 22+]

Nu er du god til at gå med at kompilere dine egne eller eksisterende kernemoduler til software som VirtualBox og mange flere.

Det er det! I denne artikel har vi forklaret, hvordan man installerer kernel-devel- og kernel-header-pakker i CentOS/RHEL 7 og Fedora-systemer. Husk, at inden du kan kompilere kernemoduler som enhedsdriver på et Linux-system, skal du have de nødvendige kernel header-filer installeret. Hvis du har spørgsmål, skal du bruge kommentarformularen nedenfor for at nå os.