incapaz de compilar um módulo do kernel

2

Eu tentei compilar meu primeiro módulo de kernel carregável e falhou: (

Aqui está o erro:

r@ubuntu:/$ sudo make -C /lib/modules/'uname -r'/build/ M='pwd'
[sudo] password for r: 
make: Entering directory '/usr/src/linux-headers-2.6.38-8-generic'
scripts/Makefile.build:76: kbuild: Makefile.build is included improperly
make[1]: *** No rule to make target 'kernel/bounds.c', needed by 'kernel/bounds.s'.  Stop.
make: *** [_module_] Error 2
make: Leaving directory '/usr/src/linux-headers-2.6.38-8-generic'

Preciso de ajuda para saber o que está errado.

Aqui está o makefile que estou usando:

obj-m += sample_module_for_techblog.o 
all: 
     make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules 
clean: 
     make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean 
clean-files := Module.symvers

eu descobri o seguinte trecho de código (que está imprimindo o erro que estou recebendo) de aqui

ifndef obj
$(warning kbuild: Makefile.build is included improperly)
endif

Espero que isso ajude a resolver o problema.

    
por Chani 04.01.2012 / 18:17

1 resposta

2

Tente este, ajustado conforme necessário. Não estou familiarizado com o tutorial que você vincula, mas suponho que você tenha criado o módulo de estilo mais básico do 'hello world' que você tenta compilar:

ifeq ($(KERNELRELEASE),)

    KERNELDIR ?= /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)

modules:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

modules_install:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

# adjust this by removing what applies to you
clean:
        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions \
        *.symvers  *.order 

.PHONY: modules modules_install clean

else
obj-m := hello.o 

endif
    
por 04.01.2012 / 19:40