¿Dónde/cuál es la fuente real del núcleo?

¿Dónde/cuál es la fuente real del núcleo?

Estoy siguiendoestepara aprender a compilar el kernel. solía

apt-get source linux-image-$(uname -r)

para descargar el código fuente del kernel de Linux que estoy usando actualmente.

Después de ejecutar el comando anterior, se descargaron los siguientes archivos (y directorios).

user $ ls -l
total 130972
drwxrwxr-x 27 sps sps      4096 Oct 16 03:10 linux-lts-vivid-3.19.0
-rw-rw-r--  1 sps sps  10980684 Oct  5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz
-rw-rw-r--  1 sps sps      7396 Oct  5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.dsc
-rw-rw-r--  1 sps sps 123115155 May  6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz
user $ 

En elmismopágina se menciona:

Construir el kernel es bastante fácil. Cambie su directorio de trabajo a la raíz del árbol de fuentes del kernel y luego escriba los siguientes comandos:

Pero no estoy seguro de cuál es la "raíz del árbol de fuentes del kernel".

¿Es el directorio actual (donde ejecuté apt-get source ...y donde tengo los archivos enumerados anteriormente)?

O es el directorio:

drwxrwxr-x 27 sps sps      4096 Oct 16 03:10 linux-lts-vivid-3.19.0

o debería extraer el tarball

-rw-rw-r--  1 sps sps 123115155 May  6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz

Salida para uname -r:

user $ uname -r
3.19.0-30-generic
user $ 

Respuesta1

Desde elWiki Debian:

Paquetes fuenteproporcionarle todos los archivos necesarios para compilar o, de lo contrario, crear el software deseado.

Consta, en su forma más simple, de tres archivos:

  • El tarball ascendente con.tar.gzfinalizando

  • Un archivo de descripción con terminación .dsc. Contiene el nombre del paquete, tanto en su nombre de archivo como en su contenido (después de la palabra clave Fuente:).

  • Un tarball, con los cambios realizados en el código fuente, además de todos los archivos creados para el paquete Debian.

    • esto tiene un.debian.tar.gz(formato fuente: 3.0)
    • o un.diff.gzfinal (formato fuente: 1.0)

Es exactamente lo mismo para Ubuntu, y en tu caso:

  • "linux-lts-vivid-3.19.0": el núcleo real, parcheado a partir del tarball ascendente "linux-lts-vivid_3.19.0.orig.tar.gz" con las modificaciones enumeradas en "linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz";
  • "linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz": un tarball, con los cambios realizados en el código fuente, además de todos los archivos creados para el paquete Debian;
  • "linux-lts-vivid_3.19.0-30.34~14.04.1.dsc": un archivo de descripción que termina en ".dsc". Contiene el nombre del paquete, tanto en su nombre de archivo como en su contenido (después de la palabra clave Fuente:);
  • "linux-lts-vivid_3.19.0.orig.tar.gz": el archivo tar ascendente con terminación ".tar.gz" (tenga en cuenta que, según mi experiencia, no siempre es un archivo ".tar.gz", puede estar en un formato ligeramente diferentes formatos, como ".tar.xz");

Cuando ejecuta apt-get source linux-image-$(uname -r), el tarball ascendente se parchea automáticamente con las modificaciones enumeradas en "linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz" en "linux-lts-vivid-3.19.0":

% apt-get source linux-image-$(uname -r)
# ...
dpkg-source: info: extracting linux in linux-3.19.0
dpkg-source: info: unpacking linux_3.19.0.orig.tar.gz
dpkg-source: info: applying linux_3.19.0-30.34.diff.gz
# ...

Respuesta2

La raíz de su árbol del núcleo es el directorio linux-lts-vivid-3.19.0.

Acerca de los otros archivos:

En el tarball linux-lts-vivid_3.19.0.orig.tar.gzpuede encontrar el kernel "vainilla", tal como se lanzó en sentido ascendente; A este kernel, los desarrolladores de Ubuntu agregaron parches, controladores y cambiaron cosas que se recopilan en el diffarchivo comprimido linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz.

Respuesta3

Mmm. Cuando ejecutas el comando

apt-get source linux-image-`uname -r`

el comando debeautomáticamenteextraiga los archivos tar de origen y parcheelos para crear un directorio con el nombre de su kernel. En su caso, parece que se llama 'linux-lts-vivid-3.19.0'; está en la lista de su directorio.

Entonces, ese es el directorio fuente, debes ejecutar:

cd linux-lts-vivid-3.19.0

y luego continúa siguiendo las instrucciones

información relacionada