Como criar o cabeçalho do Linux para o kernel recém-compilado?

2

Na Debian, quando eu quero compilar meu módulo do kernel, eu preciso instalar o linux-header-* package e então eu preciso escrever alguns makefile assim:

obj-m := hello.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

Mas agora eu fiz o download do kenel específico do kernel.org e o compilei. Então, como posso endereçar a variável KDIR no meu makefile ?

Eu quero saber, como os Debian mainteners criam linux-header-* packages?

    
por Milad Khajavi 07.12.2013 / 18:28

1 resposta

5

Você não precisa.

KDIR := /lib/modules/$(shell uname -r)/build

Presume que você esteja criando um módulo para o kernel em execução no momento, já que ele usa $(shell uname -r) para concluir o caminho. Quando você constrói um kernel e executa make modules_install , os módulos são copiados em um diretório correspondente em /lib/modules - isto irá coincidir com a saída de uname -r para aquele kernel.

O subdiretório build é um link para a árvore de origem do kernel. Então não apague isso, obviamente.

Se você está compilando para um kernel diferente do que o existente, apenas configure KDIR para o diretório de origem onde você o construiu.

    
por 07.12.2013 / 18:40