¿Dónde está la fuente del núcleo para el núcleo predeterminado de Raspbian 3.1.9+?

13

La versión de kernel predeterminada de Raspbian es 3.1.9+. Cuando intento compilar un módulo de kernel adicional, tengo muchos mensajes de error ya que faltan los archivos de encabezado del kernel. He comprobado el repositorio Raspbian , pero era incapaz de encontrar las cabeceras del núcleo 3.1.9+ y fuentes del núcleo.

Si busco 3.2.0, puedo instalar el nuevo kernel (linux-image-3.2.0-3-rpi), los encabezados (linux-headers-3.2.0-3-rpi) y la fuente (linux-source -3.2) y puedo compilar el módulo adicional. Lamentablemente, el kernel 3.2 es muy inestable para mí, por lo que esta actualización no es una opción.

asalamon74
fuente

Respuestas:

9

Me parece que no hay un paquete de Deb de fuente kernel 3.1.9+ en el repositorio Raspbian. Según Alex Bradbury (asb), construyeron el núcleo Raspbian basado en https://github.com/raspberrypi/linux . Basado en esta documentación de compilación del núcleo hice lo siguiente (como root):

cd /usr/src
git clone --depth 1 https://github.com/raspberrypi/linux.git
ln -s linux linux-3.1.9+
cd linux
zcat /proc/config.gz > .config
ln -s /usr/src/linux /lib/modules/3.1.9+/build

Después de eso pude recompilar el módulo externo.

Algunas notas

  • He clonado la última versión de la fuente del núcleo, que es más nueva que la imagen del núcleo Raspbian. Si realmente necesita exactamente la misma versión del kernel, entonces esta versión anterior podría ser mejor.

  • También he compilado todo el núcleo solo para estar seguro. No haga eso si solo necesita compilar un módulo externo, ya que lleva horas.

  • Tuve que modificar el Makefile del módulo externo (8192cu) un poco (configurando ARCH para armar en lugar de armv6l).
asalamon74
fuente
3
+1 Buen trabajo. Realmente deberían poner los encabezados en los repositorios.
Jivings
1

Es extraño cómo eso es tan difícil ... Todo lo que puedo encontrar es este paquete en la lista de fuentes:

Package: linux-libc-dev
Source: linux
Version: 3.2.21-1+rpi1
Architecture: armhf
Maintainer: Debian Kernel Team <[email protected]>
Installed-Size: 2790
Conflicts: linux-kernel-headers
Replaces: linux-kernel-headers
Provides: linux-kernel-headers
Multi-Arch: same
Priority: optional
Section: devel
Filename: pool/main/l/linux/linux-libc-dev_3.2.21-1+rpi1_armhf.deb
Size: 764146
SHA256: b75b35ccf8e7fbac582ad08af9579a23095f9dbbc9e7369430e43d584afc48fd
SHA1: e8c3bb2a30483c51ee39b525becd6e213ae9c2c7
MD5sum: 840e28237198aa137dfcdb558ef1cbf5
Description: Linux support headers for userspace development
 This package provides userspaces headers from the Linux kernel.  These
 headers are used by the installed headers for GNU glibc and other system
 libraries.

Parece proporcionar las herramientas que necesita, pero no tengo idea de por qué no se llama un paquete linux-kernel-headers.

Sin embargo, si busca en el archivo del paquete, puede encontrar esto:

http://archive.raspbian.org/raspbian/pool/main/l/linux-latest/

Quizás uno de los paquetes de encabezados en ese directorio sea para el núcleo que necesita.

Desafortunadamente, esa es toda la información que puedo ofrecer actualmente, ya que todavía no he instalado Raspbian, aunque está en mi lista TODO.

Jivings
fuente
Pensándolo bien, esta sigue siendo la versión incorrecta para la que quieres, ¿no?
Jivings
Esto también es para el kernel 3.2. El número de versión (3.2.21-1 + rpi1) es el mismo para los paquetes que he mencionado en la pregunta (por ejemplo, linux-headers-3.2.0-3-all_3.2.21-1 + rpi1_armhf.deb)
asalamon74