O linux-source -... possui um módulo que está desabilitado no config /boot/config-3.4-trunk-686-pae, para que não faça parte do linux-image -... (Isso está no Debian, mas a solução deve ser a mesma para o Ubuntu, ou?), por exemplo
# CONFIG_CAN_PEAK_USB is not set
Como alguém poderia compilar apenas esse 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 alguém compilaria apenas esse módulo único específico?
(Nota: também o kernel precisa ser compilado antes, caso contrário, você receberá o seguinte erro no symbol version for module_layout
:)
depmod -a
antesmodbrobe
?Respostas:
Eu tive o mesmo problema. Eu assumo que você precisa não apenas copiar .config, mas também Module.symvers
meus passos para compilar o módulo ft1000 (executando o Debian Wheeze 7.1.0; kernel 3.2.0-4-686-pae):
fonte
make M=/path/to/module
que parecia funcionar.No diretório de origem de nível superior, simplesmente forneça o caminho para o nome ou diretório do módulo, por exemplo:
ou para um exemplo mais simples (driver Intel e1000 Ethernet):
fonte
make drivers/net/can/usb/peak_usb/pcan_usb.ko
construiu apenas pcan_usb.o. Fazermake drivers/net/can/usb/peak_usb/ && make drivers/net/can/usb/peak_usb/pcan_usb.ko
compila, mas insmod reclamaError: could not insert module drivers/net/can/usb/peak_usb/peak_usb.ko: Invalid module format
. dmesg:peak_usb: no symbol version for module_layout
modprobe
também.make modules SUBDIRS=drivers/net/can/usb/peak_usb
ou qualquer outro subdiretório. Funciona bem aqui.Tão simples quanto: (este exemplo ilustra o driver ft1000, isso deve levar apenas alguns minutos, se não instantes)
Você pode carregar o módulo
modprobe
depois dedepmod
Nota: dependendo da dependência do módulo, pode ser necessário reconstruir o kernel inteiramente
fonte