Comment créer un module de noyau unique dans l'arborescence?

30

linux-source -... a un module qui est désactivé dans config /boot/config-3.4-trunk-686-pae pour qu'il ne fasse pas partie de linux-image -... Debian, mais la solution devrait être la même pour Ubuntu, ou?), Par exemple

# CONFIG_CAN_PEAK_USB is not set

Comment pourrait-on compiler juste ce module de noyau, de sorte qu'il puisse être utilisé avec le noyau distribué?

Le package linux-source -... correspondant est déjà installé, non compressé et lié à / usr / src / linux. /boot/config-3.4-trunk-686-pae est copié dans /usr/src/linux/.config et modifié avec

CONFIG_CAN_PEAK_USB=m

Avec

make
make modules

il est possible de compiler le noyau et tous les modules. Mais comment compiler uniquement ce module unique spécifique?

(Remarque: le noyau doit également être compilé avant, sinon vous obtenez l'erreur suivante: no symbol version for module_layout )

    
posée mab 26.07.2012 - 09:37
la source

2 réponses

29

J'ai eu le même problème. Je suppose que vous devez non seulement copier .config mais aussi Module.symvers

mes étapes pour compiler le module ft1000 (sous Debian Wheeze 7.1.0; noyau 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
    
réponse donnée Maros Michalik 28.08.2013 - 16:09
la source
9

Dans le répertoire source de premier niveau, indiquez simplement make le chemin vers le nom du module ou le répertoire du module, par exemple:

make drivers/net/can/usb/peak_usb/

ou pour un exemple plus simple (pilote Ethernet Intel e1000):

make drivers/net/ethernet/intel/e1000/e1000.ko
    
réponse donnée ish 26.07.2012 - 10:38
la source

Lire d'autres questions sur les étiquettes