Como saber o root da árvore de código-fonte do kernel

1

No link há um ditado

make KERNEL_TREE=<root of the kernel source tree>

This builds both the flashcache.ko and 3 utilities.

flascache-sa-guide.txt has details on how to create and load flashcache volumes.

Mohan Srinivasan Paul Saab

O que devo escrever para substituir?

    
por user4951 25.01.2013 / 04:29

3 respostas

3

CentOS

Referência: Link do tutorial

Citação rápida do tutorial:

Etapa 1: como usuário normal

[user@host]$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
[user@host]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

Etapa 2: como raiz

[root@host]# yum install rpm-build redhat-rpm-config asciidoc hmaccalc
[root@host]# yum install binutils-devel elfutils-libelf-devel newt-devel zlib-devel

Etapa 3: como usuário normal

[user@host]$ rpm -i http://vault.centos.org/6.3/updates/Source/SPackages/kernel-2.6.32-279.19.1.el6.src.rpm 2>&1 | grep -v mock

árvore de origem do kernel: /home/user/rpmbuild/BUILD/kernel*/linux*/ < - cd para confirmar os '*'.

Então

make KERNEL_TREE=<put in the full path above>

Debian

<root of the kernel source tree> é onde a fonte do kernel está.

No Ubuntut / Debain, faça o download da fonte do kernel

apt-get install linux-source-3.2.0

Isso colocará a árvore de fontes do kernel em

/usr/src/linux-source-3.2.0

No entanto, a árvore de origem real precisa ser compactada

# cd /usr/src/linux-source-3.2.0
# ls -lh
total 77M
drwxr-xr-x 10 root root 4.0K Jan 24 22:40 debian
drwxr-xr-x  8 root root 4.0K Jan 24 22:40 debian.master
-rw-r--r--  1 root root  77M Jan  8 17:46 linux-source-3.2.0.tar.bz2

# tar xf linux-source-3.2.0.tar.bz2
# ls -lh
total 77M
drwxr-xr-x 10 root root 4.0K Jan 24 22:40 debian
drwxr-xr-x  8 root root 4.0K Jan 24 22:40 debian.master
drwxrwxr-x 24 root root 4.0K Jan  8 17:45 linux-source-3.2.0
-rw-r--r--  1 root root  77M Jan  8 17:46 linux-source-3.2.0.tar.bz2

A árvore de origem é /usr/src/linux-source-3.2.0/linux-source-3.2.0

Então

make KERNEL_TREE=/usr/src/linux-source-3.2.0/linux-source-3.2.0
    
por 25.01.2013 / 04:40
2

Os sistemas Red Hat, CentOS e Fedora têm o pacote kernel-devel , contendo o maquinário necessário para construir módulos contra o kernel (não a fonte completa, lembre-se). A raiz da fonte é então em /usr/src/kernels/<version> .

    
por 28.01.2013 / 03:03
2

Para compilar módulos extras do kernel, você geralmente precisa instalar o pacote com os arquivos de cabeçalho do seu kernel chamados

  • kernel-devel em distros baseadas em RedHat (Fedora, CentOS, ...)
  • linux-headers-$(uname -r) em distros baseadas no Debian (Ubuntu, ...).

Em /lib/modules/$(uname -r)/ , deve haver um link simbólico build que deve apontar para o diretório correto.

Então, instale o pacote de cabeçalho do kernel e use

make KERNEL_TREE=/lib/modules/$(uname -r)/build
    
por 28.01.2013 / 11:17

Tags