Kernel Konfiguration überprüfen / aktualisieren.

Eine Installation bzw. Konfiguration des Kernel schlägt fehl. Sowohl über genkernel als auch manuell über make menuconfig .

localhost # genkernel --menuconfig all
* Gentoo Linux Genkernel; Version 65
* Running with options: --menuconfig all
* Using genkernel.conf from /etc/genkernel.conf
* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..

* ERROR: Kernel Makefile (/usr/src/linux/Makefile) missing. Maybe re-install the kernel sources.
*
* -- Grepping log... --
*
*
* -- End log... --
*
* Please consult /var/log/genkernel.log for more information and any
* errors that were reported above.
*
* Report any genkernel bugs to bugs.gentoo.org and
* assign your bug to genkernel@gentoo.org. Please include
* as much information as you can in your bug report; attaching
* /var/log/genkernel.log so that your issue can be dealt with effectively.
*
* Please do *not* report compilation failures as genkernel bugs!
*

michi@localhost ~ $ su
Password:
localhost /home/michi # cd /usr/src/linux
localhost /usr/src/linux # make menuconfig
make: *** No rule to make target 'menuconfig'. Stop.

Hier wird die Konfigurationsdatei gesucht. Durch oldconfig kann eine Datei erstellt werden.

localhost /usr/src/linux-4.9.72-gentoo # make
 HOSTCC scripts/basic/fixdep
 HOSTCC scripts/kconfig/conf.o
 SHIPPED scripts/kconfig/zconf.tab.c
 SHIPPED scripts/kconfig/zconf.lex.c
 SHIPPED scripts/kconfig/zconf.hash.c
 HOSTCC scripts/kconfig/zconf.tab.o
 HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [scripts/kconfig/Makefile:39: silentoldconfig] Fehler 1
make[1]: *** [Makefile:541: silentoldconfig] Fehler 2
 SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h
 SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h
 SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h
 SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h
 HOSTCC arch/x86/tools/relocs_32.o
 HOSTCC arch/x86/tools/relocs_64.o
 HOSTCC arch/x86/tools/relocs_common.o
 HOSTLD arch/x86/tools/relocs
make: *** Keine Regel vorhanden, um das Ziel „include/config/auto.conf“, 
 benötigt von „include/config/kernel.release“, zu erstellen. Schluss.


 

Bevor „Maybe re-install the kernel sources.“  durchgeführt wird ist es sinnvoll auf evtl Fehler zu recherchieren. Wie angezeigt kann unter /var/log/genkernel.log geschaut werden, ob etwas interessantes aufgeführt ist.

Aktionen zur Fehlerdiagnose:

Das Paket des genkernels kann beim Update dessen deinstalliert werden. Dann ist es nur erforderlich das Paket gentoo-sources und evtl. genkernel neu zu installieren.
Als Erstes wird überprüft, ob der Kernel einen Link gesetzt bekommen hat. eselect kernel list zeigt die vorhandenen Kernel an. Durch eselect kernel set x wird der Link gesetzt.

localhost /usr/src/linux # eselect kernel list
Available kernel symlink targets:
[1] linux-4.12.12-gentoo

oder durch den Aufruf des Verzeichnisses /usr/src/linux

localhost /usr/src/linux # ls -l /usr/src
total 8
lrwxrwxrwx 1 root root 19 Sep 3 12:00 linux -> linux-4.12.5-gentoo
drwxr-xr-x 25 root root 4096 Sep 15 13:36 linux-4.12.12-gentoo
drwxr-xr-x 22 root root 4096 Sep 14 19:16 linux-4.12.5-gentoo

Der Link ist auf den Kernel linux-4.12.5-gentoo gesetzt.

In der /etc/fstab muss überprüft werden, ob das Root-Verzeichnis korrekt festgelegt ist.
Ein Beispiel:

localhost # nano -w /etc/fstab
#LABEL=boot /boot ext4 noauto,noatime 1 2
#UUID=58e72203-57d1-4497-81ad-07655bd51111/ ext4 noatime 0 1
LABEL=swap none swap sw 0 0
#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
/dev/sda2 / ext4

Falls keine Besserung eintritt kann Gentoo-Sources und genkernel neu kompiliert werden:

localhost /usr/src/linux # emerge -av genkernel-next
* IMPORTANT: 15 news items need reading for repository 'gentoo'.
* Use eselect news read to view new items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] sys-kernel/genkernel-next-65::gentoo USE="-cryptsetup -dmraid -gpg -iscsi -mdadm -plymouth (-selinux)" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No]

localhost /usr/src/linux # emerge -av gentoo-sources
* IMPORTANT: 15 news items need reading for repository 'gentoo'.
* Use eselect news read to view new items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] sys-kernel/gentoo-sources-4.12.12:4.12.12::gentoo USE="-build -experimental -symlink" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No]
Ein emerge der Gentoo-Souces wird erfolgreich gestartet

Bitte beachten: auf einem System darf nicht genkernel und genkernel-next gemeinsam installiert sein.

localhost / # emerge -av genkernel-next      

 * IMPORTANT: 10 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] sys-kernel/genkernel-next-69::gentoo  USE="-cryptsetup -dmraid -gpg -iscsi -mdadm -plymouth (-selinux)" 0 KiB
[blocks B      ] sys-kernel/genkernel ("sys-kernel/genkernel" is blocking sys-kernel/genkernel-next-69)

Total: 1 package (1 new), Size of downloads: 0 KiB
Conflict: 1 block (1 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (sys-kernel/genkernel-3.5.3.3:0/0::gentoo, installed) pulled in by
    sys-kernel/genkernel required by @selected

  (sys-kernel/genkernel-next-69:0/0::gentoo, ebuild scheduled for merge) pulled in by
    genkernel-next


For more information about Blocked Packages, please refer to the following
section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

https://wiki.gentoo.org/wiki/Handbook:X86/Working/Portage#Blocked_packages

Nun zum Verzeichniss des Kernel wechseln.

localhost /usr/src/linux-4.19.72-gentoo # cd /usr/src/
localhost /usr/src # ls -all
total 16
drwxr-xr-x 4 root root 4096 Sep 17 17:10 .
drwxr-xr-x 12 root root 4096 Aug 28 22:08 ..
-rw-r–r– 1 root root 0 Aug 28 21:52 .keep
lrwxrwxrwx 1 root root 20 Aug 31 18:07 linux -> linux-4.19.66-gentoo
drwxr-xr-x 23 root root 4096 Sep 20 17:13 linux-4.19.66-gentoo
drwxr-xr-x 26 root root 4096 Oct 3 14:23 linux-4.19.72-gentoo

Hier wird der Kernel linux-4.19.66-gentoo verwendet, da der Link von linux dorthin verweist. Nun wird make menuconfig aufgerufen. Somit kann die Konfiguration des Kernel gestartet werden.

localhost /usr/src # cd /usr/src/linux
localhost /usr/src/linux #

localhost /home/michi # genkernel –menuconfig all

Gentoo Linux Genkernel; Version 3.5.3.3
Running with options: –menuconfig all
Using genkernel.conf from /etc/genkernel.conf
Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..

Nach der Konfiguration des Kernel wird durch make die Kompilierung gestartet.

localhost /usr/src/linux # make
make: *** No targets specified and no makefile found. Stop.

Bei dieser Fehlermeldung bitte überprüfen ob man im richtigen Installationsverzeichnis ist. Wechseln nach /usr/src/linux-kernelversion also zum Beispiel: /usr/src/linux-4.19.72-gentoo

make wurde erfolgreich abgeschlossen

Nun werden die Module installiert. Der Behfel lautet make modules_install

make modules_install