É possível compilar um módulo do kernel em chroot?

4

Em um ambiente chroot, é possível construir um módulo de kernel sem ter o kernel instalado, apenas os cabeçalhos?

Parece algo que você não gostaria de fazer, mas no meu caso eu faço. Eu tenho um script que automatiza a criação de um ambiente para netbooting que também inclui o initrd.img criado por mkinitramfs e copiado para o servidor tftp depois.

Por exemplo, se o PC alvo também incluir uma placa radeon, eu quero fglrx. Se é nvidia eu quero o pacote nvidia. Aqueles que executam / personalizam o script de construção podem não ter essas placas instaladas fisicamente no meu PC.

    
por Matt H 09.05.2014 / 06:32

1 resposta

1

Sim.

Para o Ubuntu, você realmente só precisa do linux-headers-* empacotado instalado para o destino desejado. Aqui está um Makefile de exemplo que define o KDIR para um local de cabeçalho personalizado:

obj-m := example.o                                                              
KDIR := /usr/src/linux-headers-4.2.0-18-generic                                
PWD := $(shell pwd)                                                             
default:                                                                        
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules                               
clean:                                                                          
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean 

Isso deve funcionar da mesma forma dentro de um chroot.

    
por Chris J Arges 12.11.2015 / 19:05