¿Cómo obtengo el código fuente del kernel?

22

Estoy planeando escribir algunos controladores de dispositivos y necesito obtener el código fuente del kernel de Linux. Mi versión del kernel de Linux es 3.2.0-23-generic-pae y descargué la imagen de this . En muchos de los artículos que he leído, me dice que necesito tener todo el árbol del kernel para comenzar a insertar nuevos módulos.

¿Es suficiente si descargo esta imagen y la pego en la carpeta usr/src/ o tengo que hacer otra cosa?

    
pregunta Sab 05.07.2012 - 05:41

4 respuestas

26

Esto obtendrá la fuente del kernel común:

apt-get source linux-source

Puede verificar qué versión del kernel se está ejecutando así:

uname -r

Que imprimirá algo así como:

3.13.0-46-generic

Puede encontrar una lista de las versiones actuales del paquete fuente disponibles en su sistema a través de:

apt-cache search linux-source

Para obtener la versión anterior del kernel:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git

En el enlace de arriba, 'trusty' es el nombre en clave para la versión de Ubuntu. Puede encontrar el nombre clave de la versión de Ubuntu que ha instalado a través de:

cat /etc/lsb-release
    
respondido por el Bryce 05.07.2012 - 06:33
7
apt-get source linux

es la forma más fácil. Descargará la fuente de su repositorio, y será la misma que la versión que esté ejecutando (suponiendo que aún no lo haya personalizado).

Pero si quiere encontrar dónde se guarda la fuente, puede ejecutar:

apt-cache showsrc linux

Busque el atributo 'Vcs-' (Sistema de control de versiones). Por lo general, será un git (Vcs-Git) o ​​un depósito mercurial.

Nota: estos comandos funcionan con cualquier paquete. Simplemente sustituya 'linux' con el paquete que le interesa. Y también tenga en cuenta que 'apt-get source' no necesita acceso a sudo y va a volcar la fuente en su directorio actual.

    
respondido por el Brendan McGrath 26.02.2015 - 00:20
3

Solo elige uno de:

sudo apt install linux-source  # downloads into system directory
sudo apt source linux-source  # downloads into working directory

Si le piden que proporcione algunas URL de 'fuentes' en su sources.list , vaya a editar su archivo /etc/apt/sources.list y elimine el comentario de la línea deb-src deseada, por ejemplo (si está ejecutando Xenial):

deb http://fr.archive.ubuntu.com/ubuntu/ xenial main restricted
# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial main restricted

Al eliminar # en esta última línea, se habilitan los repositorios de fuentes para descargar, incluidas las fuentes del kernel.

Observaciones:

  • Utiliza herramientas modernas; evitar apt-get .
  • Estos comandos descargan el código fuente de su kernel actual (en mi caso 4.4.0-75-generic por ejemplo).
  • Cuando se descarga en el directorio del sistema, los archivos se almacenan en /usr/src/linux-source-4.4.0/ (por ejemplo).
respondido por el Tim 18.06.2017 - 21:18
2

Descargar fuente directamente desde Launchpad

Por extraño que parezca, todos recomiendan apt-get source , que no funciona la mayor parte del tiempo si estás buscando una versión de kernel específica:

Supongamos que necesita fuente de núcleo para 3.19.0-58:
apt-get source linux-image-3.19.0-58-generic obtendrá la fuente para el kernel más reciente de la serie: 3.19.0-80 en este caso, que no es lo que pidió.

Entonces tienes dos opciones:

1) Renunciar, instalar kernel 3.19.0-80 y usar apt-get source

2) Obtenga la fuente directamente desde la plataforma de lanzamiento:

  • Póngalos en un nuevo directorio, desempaquete con dpkg-source -x *.dsc

Notas:

  • Debe haber una mejor manera.
  • Puedes obtener la versión que quieras de git, pero te espera una gran descarga. Consulte "Obtención de las fuentes del núcleo para una versión de Ubuntu usando git" en Código fuente del núcleo de Ubuntu Wiki .
respondido por el lemonsqueeze 23.07.2017 - 14:39

Lea otras preguntas en las etiquetas