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.