Linux-source -... tiene un módulo que está deshabilitado en la configuración /boot/config-3.4-trunk-686-pae para que no forme parte de linux-image -... (Esto está en Debian, pero la solución debería ser la misma para Ubuntu, o?), ej.
# CONFIG_CAN_PEAK_USB is not set
¿Cómo se compilaría solo ese módulo del núcleo, de modo que pueda usarse con el núcleo distribuido?
El respectivo paquete linux-source -... ya está instalado, descomprimido y vinculado a / usr / src / linux. /boot/config-3.4-trunk-686-pae se copia en /usr/src/linux/.config y se modifica con
CONFIG_CAN_PEAK_USB=m
Con
make
make modules
Es posible compilar el núcleo y todos los módulos. Pero, ¿cómo se compilaría solo ese módulo único específico?
(Nota: también las necesidades del núcleo para ser compilados antes, de lo contrario se obtiene el siguiente error: no symbol version for module_layout
)
depmod -a
antesmodbrobe
?Respuestas:
Yo tuve el mismo problema. Supongo que no solo necesita copiar .config sino también Module.symvers
mis pasos para compilar el módulo ft1000 (ejecutando Debian Wheeze 7.1.0; kernel 3.2.0-4-686-pae):
fuente
make M=/path/to/module
que parecía funcionar.Desde dentro del directorio de origen de nivel superior, simplemente haga que la ruta al nombre del módulo o al directorio del módulo, por ejemplo:
o para un ejemplo más simple (controlador de Ethernet Intel e1000):
fuente
make drivers/net/can/usb/peak_usb/pcan_usb.ko
solo construí pcan_usb.o. Hacerlo lomake drivers/net/can/usb/peak_usb/ && make drivers/net/can/usb/peak_usb/pcan_usb.ko
compila, pero insmod se quejaError: 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
también.make modules SUBDIRS=drivers/net/can/usb/peak_usb
o cualquier otro subdirectorio. Funciona bien aquí.Tan simple como: (este ejemplo ilustra el controlador ft1000, esto debería tomar solo unos minutos, si no instantes)
Luego puede cargar el módulo con
modprobe
afterdepmod
Nota: dependiendo de la dependencia del módulo, es posible que deba reconstruir el núcleo por completo
fuente