Я пытаюсь выполнить кросс-компиляцию модуля ядра helloworld (2.6.x) для архитектуры ARM на моем хост Intel x86.
Цепочка инструментальных кодов для ARM находится по адресу: / home / ravi / workspace / hawk / arm-2009q3
Источник ядра находится по адресу: / home / ravi / workspace / hawk / linux-omapl1
Мой Makefile:
ARCH=arm
CROSS_COMPILE=arm-none-linux-gnueabi
obj-m := Hello.o
KDIR := /home/ravi/workspace/hawk/linux-omapl1
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
Когда я запускаю make , получается .ko, который является моим хостом, что означает, что make-файл Вызов родного компилятора вместо кросс-компилятора. Что я делаю не так? Двоичные файлы кросс-компилятора находятся на моем пути.
Поместите ARCH
и CROSS_COMPILE
в Makefile не работает. Вам нужно поместить их в командную строку:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-