
Während ich lernte, wie man einen benutzerdefinierten Kernel erstellt und installiert (für Kernel-Hacking), stieß ich auf eine widersprüchliche Aussage.
In diesemStackExchange-Antwortstellt der Autor fest:
In den folgenden Anweisungen haben Pfade innerhalb des Quellbaums die Form [src]/was auch immer, wobei [src] das Verzeichnis ist, in das Sie den Quellcode installiert haben, z. B. /usr/src/linux-3.13.3. Sie möchten dies wahrscheinlich als su root tun, da der Quellbaum in Bezug auf Schreibberechtigungen sicher bleiben soll (er sollte root gehören).
Im Nachschlagewerk erwähnte er:Linux-Kernel auf den Punkt gebracht, Greg Kroah-Hartman sagt:
Diese Warnung ist das Wichtigste, das Sie sich merken sollten, wenn Sie die Schritte in diesem Buch durcharbeiten. Alles in diesem Buch – das Herunterladen des Kernel-Quellcodes, das Entpacken, das Konfigurieren und Erstellen des Kernels – sollten Sie als normaler Benutzer auf der Maschine ausführen. Nur die zwei oder drei Befehle, die zum Installieren eines neuen Kernels erforderlich sind, sollten Sie als Superuser (Root) ausführen.
Und
Der Kernel-Quellcode sollte auch niemals im Verzeichnis /usr/src/linux/ abgelegt werden, da dies der Speicherort des Kernels ist, für den die Systembibliotheken erstellt wurden, und nicht Ihres neuen benutzerdefinierten Kernels. Führen Sie überhaupt keine Kernel-Entwicklung im Verzeichnisbaum /usr/src/ durch, sondern nur in einem lokalen Benutzerverzeichnis, in dem dem System nichts Schlimmes passieren kann.
Beide Quellen sind recht alt, was ist heutzutage der richtige Umgang damit?
Antwort1
/usr
ist der falsche Ort für alles "Benutzerdefinierte":
man hier:
/usr/src
Source files for different parts of the system, included with some packages for reference purposes. Don't work
here with your own projects, as files below /usr should be read-only except when installing software (optional).
/usr/src/linux
This was the traditional place for the kernel source. Some distributions put here the source for the default
kernel they ship. You should probably use another directory when building your own kernel.
Man-Dateihierarchie:
/usr/
Vendor-supplied operating system resources. Usually read-only, but this is not required. Possibly shared between
multiple hosts. This directory should not be modified by the administrator, except when installing or removing
vendor-supplied packages.
/usr/include
/usr/src/linux
hat sich vorher darauf verlassen :
/usr/include/linux
This contains information which may change from system release to system release and used to be a symbolic link
to /usr/src/linux/include/linux to get at operating-system-specific information.
Die Kernelquellen dienen daher nur /usr/src
zum Referenzieren und nicht zum Ändern.
Das Documentation/admin-guide/README.rst
zeigt die O=
Option, mit der Sie einen Build in eine schreibgeschützte Angelegenheit umwandeln können in/usr/src/linux-VERSION
cd /usr/src/linux-4.X
make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel
So wird auch die .config Datei unter /home erstellt.