Ist /usr/src ein gültiger Speicherort für einen benutzerdefinierten Kernel?

Ist /usr/src ein gültiger Speicherort für einen benutzerdefinierten Kernel?

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

/usrist 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/linuxhat 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/srczum Referenzieren und nicht zum Ändern.

Das Documentation/admin-guide/README.rstzeigt 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.

verwandte Informationen