2013-03-03 43 views
5

Moja ostatnia wersja jądra była w wersji 2.6 ~ Teraz próbuję skompilować moduł i pojawia się następujący błąd podczas kompilacji poza drzewem jądra.Niepowodzenie kompilacji jądra Linuksa

/bin/sh: 1: /home/blabla/workspace/kernel35/linux-3.5/scripts/recordmcount: not found 

Plik obiekt jest tworzony poprawnie, jednak problem jest w samej Makefile jądra, coś się zmieniło i nie został zaktualizowany?

Używam źródła kernela z kernel.org wanilii, a ja już nie

make oldconfig && make prepare 

Zamieściłem Makefile że używam, to norma makefile dla modułów jądra

# Comment/uncomment the following line to disable/enable debugging 
#DEBUG = y 


# Add your debugging flag (or not) to CFLAGS 
ifeq ($(DEBUG),y) 
    DEBFLAGS = -O -g -DBLABLA_DEBUG # "-O" is needed to expand inlines 
else 
    DEBFLAGS = -O2 
endif 

ccflags-y += $(DEBFLAGS) 
ccflags-y += -I.. 

ifneq ($(KERNELRELEASE),) 
# call from kernel build system 

obj-m := blabla.o 

else 
KERNELDIR ?= /home/blabla/workspace/kernel35/linux-3.5 
PWD  := $(shell pwd) 

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

endif 

clean: 
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions 

depend .depend dep: 
    $(CC) $(CFLAGS) -M *.c > .depend 


ifeq (.depend,$(wildcard .depend)) 
include .depend 
endif 
+0

Czy próbowałeś 'make KERNELDIR = <ścieżka do twojego jądra>'. Plik, który masz, ma domyślną wartość */home/blabla /../ linux-3.5 *. Czy to jest źródło twojego jądra? W rzeczywistości wygląda na to, że 'KERNELDIR' jest ścieżką do drzewa kompilacji. Czy budowanie i źródło są inne? –

Odpowiedz

8

OK, zorientowałem się, jak rozwiązać ten problem. Podobno po raz pierwszy próbuję skompilować moduł bez wcześniejszej kompilacji jądra. do rozwiązania problemu Uruchomiam następujące polecenie z drzewa źródłowego jądra.

make modules_prepare 

tworzy to niezbędną infrastrukturę do obsługi modułów.

Powiązane problemy