Dov'è l'origine del kernel per il kernel 3.1.9+ predefinito di Raspbian?


13

La versione predefinita del kernel di Raspbian è la 3.1.9+. Quando provo a compilare un modulo kernel aggiuntivo ho molti messaggi di errore poiché mancano i file di intestazione del kernel. Ho controllato il repository Raspbian , ma non sono riuscito a trovare le intestazioni del kernel 3.1.9+ e il sorgente del kernel.

Se cerco 3.2.0 posso installare il nuovo kernel (linux-image-3.2.0-3-rpi), le intestazioni (linux-headers-3.2.0-3-rpi) e il sorgente (linux-source -3.2) e posso compilare il modulo aggiuntivo. Sfortunatamente il kernel 3.2 è molto instabile per me, quindi questo aggiornamento non è un'opzione.

Risposte:


9

A mio avviso, non esiste un pacchetto deb sorgente kernel 3.1.9+ nel repository Raspbian. Secondo Alex Bradbury (asb) hanno creato il kernel Raspbian basato su https://github.com/raspberrypi/linux . Sulla base di questa documentazione sulla compilazione del kernel ho fatto quanto segue (come 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

Successivamente sono stato in grado di ricompilare il modulo esterno.

Alcune note:

  • Ho clonato l'ultima versione del sorgente del kernel, che è più recente dell'immagine del kernel di Raspbian. Se hai davvero bisogno della stessa identica versione del kernel, questa versione precedente potrebbe essere migliore.

  • Ho anche ricompilato l'intero kernel solo per essere sicuro. Non farlo se hai solo bisogno di compilare un modulo esterno, poiché ci vogliono ore.

  • Ho dovuto modificare un po 'il Makefile del modulo esterno (8192cu) (impostando ARCH su arm invece di armv6l).

3
+1 Bel lavoro. Dovrebbero davvero inserire le intestazioni nei repository.
Jivings,


1

Scopri come sia così difficile ... Tutto quello che posso trovare è questo pacchetto nell'elenco delle fonti:

Package: linux-libc-dev
Source: linux
Version: 3.2.21-1+rpi1
Architecture: armhf
Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
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.

Sembra fornire gli strumenti necessari, ma non ho idea del perché non esiste un pacchetto chiamato linux-kernel-headers.

Tuttavia, se guardi nell'archivio dei pacchetti puoi trovare questo:

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

Forse uno dei pacchetti di intestazioni in quella directory sarà per il kernel di cui hai bisogno.

Purtroppo sono tutte le informazioni che posso attualmente offrire, dato che non ho ancora installato Raspbian da solo, sebbene sia nella mia lista TODO.


Ripensandoci, questa è ancora la versione sbagliata di quella che vuoi non è vero?
Jivings,

Questo vale anche per il kernel 3.2. Il numero di versione (3.2.21-1 + rpi1) è lo stesso per i pacchetti che ho menzionato nella domanda (ad esempio linux-headers-3.2.0-3-all_3.2.21-1 + rpi1_armhf.deb)
asalamon74

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.