¿Es /usr/src una ubicación válida para un kernel personalizado?

¿Es /usr/src una ubicación válida para un kernel personalizado?

Mientras aprendía a construir e instalar un kernel personalizado (para hackear el kernel), me encontré con una afirmación contradictoria.

En estorespuesta de StackExchange, el autor afirma:

en las siguientes instrucciones, las rutas dentro del árbol de código fuente toman la forma [src]/lo que sea, donde [src] es el directorio en el que instaló el código fuente, por ejemplo, /usr/src/linux-3.13.3. Probablemente quieras hacer esto desde root ya que el árbol fuente debe permanecer seguro en términos de permisos de escritura (debe ser propiedad de root).

Mientras que en el libro de referencia, mencionó:El kernel de Linux en pocas palabras, Greg Kroah-Hartman dice:

Esta advertencia es lo más importante que debe recordar mientras sigue los pasos de este libro. Todo lo que se incluye en este libro (descargar el código fuente del kernel, descomprimirlo, configurar el kernel y compilarlo) debe realizarse como un usuario normal en la máquina. Sólo los dos o tres comandos necesarios para instalar un nuevo kernel deben realizarse como superusuario (root).

y

El código fuente del kernel tampoco debe colocarse nunca en el directorio/usr/src/linux/, ya que esa es la ubicación del kernel en el que se construyeron las bibliotecas del sistema, no su nuevo kernel personalizado. No realice ningún desarrollo del kernel bajo el árbol de directorios /usr/src/, sino sólo en un directorio de usuario local donde no le pueda pasar nada malo al sistema.

Ambas fuentes son bastante antiguas, ¿cuál es el enfoque correcto hoy en día?

Respuesta1

/usres el lugar equivocado para cualquier cosa "personalizada":

hombre aquí:

   /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 jerarquía de archivos:

   /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/includeconfiaba /usr/src/linuxantes:

   /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.

Por lo tanto, las fuentes del kernel solo deben /usr/srcser referenciadas, no modificadas.

Muestra Documentation/admin-guide/README.rstla O=opción para que pueda convertir una compilación en un asunto de solo lectura en/usr/src/linux-VERSION

   cd /usr/src/linux-4.X
   make O=/home/name/build/kernel menuconfig
   make O=/home/name/build/kernel

Así también el archivo .config se crea en /home.

información relacionada