Como eu construo um único módulo de kernel em árvore?

29

O linux-source -... tem um módulo que está desabilitado no arquivo config /boot/config-3.4-trunk-686-pae para que ele não faça parte do linux-image -... Debian, mas a solução deve ser a mesma para o Ubuntu, ou?), Por exemplo

# CONFIG_CAN_PEAK_USB is not set

Como se compilaria apenas aquele módulo do kernel, para que ele possa ser usado com o kernel distribuído?

O respectivo pacote linux-source -... já está instalado, descompactado e vinculado a / usr / src / linux. /boot/config-3.4-trunk-686-pae é copiado para /usr/src/linux/.config e modificado com

CONFIG_CAN_PEAK_USB=m

com

make
make modules

é possível compilar o kernel e todos os módulos. Mas como se compilaria apenas esse módulo único específico?

(Nota: também o kernel precisa ser compilado antes, senão você recebe o seguinte erro: no symbol version for module_layout )

    
por mab 26.07.2012 / 09:37

2 respostas

28

Eu tive o mesmo problema. Eu suponho que você precisa não apenas copiar o .config mas também o Module.symvers

meus passos para compilar o módulo ft1000 (rodando o Debian Wheeze 7.1.0; kernel 3.2.0-4-686-pae):

aptitude install linux-headers-3.2.0-4-686-pae
aptitude install linux-source-3.2
cd /usr/src/
tar xjf linux-source-3.2.tar.bz2
cd /usr/src/linux-source-3.2
cp ../linux-headers-3.2.0-4-686-pae/Module.symvers .
make oldconfig # it copies .config to ./
vi .config # enable ft1000 module: CONFIG_FT1000=m
make prepare # setup FT1000 as module
make modules_prepare
make SUBDIRS=scripts/mod
make SUBDIRS=drivers/staging/ft1000/ft1000-usb modules
cp drivers/staging/ft1000/ft1000-usb/ft1000.ko /lib/modules/3.2.0-4-686-pae/kernel
/drivers/staging/
depmod
modprobe ft1000
    
por Maros Michalik 28.08.2013 / 16:09
8

A partir do diretório de origem de nível superior, basta fornecer o caminho para o nome do módulo ou diretório do módulo, por exemplo:

make drivers/net/can/usb/peak_usb/

ou para um exemplo mais simples (driver Intel e1000 Ethernet):

make drivers/net/ethernet/intel/e1000/e1000.ko
    
por ish 26.07.2012 / 10:38