Los kernel-header
paquetes de distribución contienen, como su nombre lo indica, solo los archivos de encabezado del núcleo (más la plomería necesaria) que se requieren para construir software como los módulos del núcleo.
No debe esperar encontrar archivos binarios en absoluto en un directorio de origen del núcleo , a excepción de la salida de compilación. (Si se configura y construye un núcleo mismo, el directorio de fuentes del núcleo también contiene los objetos compilados, módulos, el propio núcleo construido y algunos otros bits binarios y piezas que lo hacen funcionar.)
KConfig
Archivos son una descripción de las opciones de configuración del kernel (y sus dependencias) que están disponibles para un directorio / módulo dado.
Aparte de eso, es todo (principalmente) código fuente C, archivos de encabezado y Makefile
s. Hay algunos scripts de ayuda aquí y allá, y también fuente de ensamblaje.
Los paquetes de encabezado (lo que instaló) solo contienen la parte de encabezado de lo anterior (y no todo eso, solo los encabezados "exportados") y parte de la infraestructura de compilación. Entonces, lo que estás viendo se espera. Los paquetes de encabezado no contienen código fuente C (a excepción de algunos códigos auxiliares y código de infraestructura de compilación). El objetivo de tener este tipo de paquete es ahorrar espacio (y ancho de banda): todo el árbol de fuentes del núcleo de Linux es bastante grande y completamente innecesario si no tiene la intención de compilar el núcleo usted mismo. Los paquetes de encabezado se crean y envían mediante distribuciones para proporcionar las cosas correctas necesarias para construir módulos, pero no más. (Ciertamente no contienen el núcleo compilado).
Abordar su comentario: los paquetes de encabezado no se reubican en ningún lado. Están diseñados para versiones específicas del núcleo, empaquetados en un directorio específico, y eso es todo. Es solo un conjunto de archivos. (Tenga en cuenta que los paquetes de encabezado no necesariamente tienen la misma versión que los paquetes binarios del kernel estable actual; los paquetes de encabezado son genéricos y pueden estar rezagados con respecto al kernel real que está ejecutando. Sin embargo, no deben ser de un kernel versión que es más reciente que el núcleo actual instalado (o de destino).)
Los archivos binarios del kernel instalados generalmente se instalan en el /boot
directorio, junto con los archivos binarios del cargador de arranque y los archivos de configuración. (Esto a veces es un sistema de archivos independiente, no montado de forma predeterminada). El nombre exacto de los archivos depende del núcleo y la distribución. (También lo hace el gestor de arranque).
Los módulos de kernel instalados residen en subdirectorios de:
/lib/modules/`uname -r`/
Entonces, por ejemplo, en mi sistema, actualmente están en
/lib/modules/3.1.4-gentoo/
Código fuente del núcleo completo : en Ubuntu, si desea que las fuentes del núcleo completo construyan un núcleo usted mismo, debe instalarlo siguiendo las instrucciones aquí .
También puede descargar un tarball de origen kernel.org
y descomprimirlo en algún lugar ( no sobrescriba los archivos instalados de Ubuntu si usa este tarball, mantenga sus cosas personales y las cosas administradas por RPM por separado).
/usr/src/linux
es un lugar tradicional para colocar fuentes de kernel, pero nada le impide colocar fuentes de kernel en otro lugar. Esta ruta también suele ser solo un enlace simbólico a un directorio. Por ejemplo, tengo esto en mi máquina:
$ ls -l /usr/src/linux
lrwxrwxrwx 1 root root 18 Dec 7 17:03 /usr/src/linux -> linux-3.1.4-gentoo
El enlace simbólico está ahí para simplificar la creación de aplicaciones que dependen de la fuente del núcleo. Vincula esa ruta a su núcleo en ejecución (o destino) para que no tenga que especificar la versión exacta o la información de ruta cuando construye un módulo fuera del árbol. Ayuda un montón para distribuciones basadas en fuente al menos.