다음 Makefile
을 사용하여이 tutorial에서 chardev.c
을 컴파일하려고했습니다.동일한 Makefile이 Ubuntu 10.04 LTS에서 성공했지만 Beagle Board의 Angstrom에서 실패했습니다.
make CROSS_COMPILE=arm-angstrom-linux-gnueabi-
을했는데 다음 오류가 발생했습니다.
[email protected]:~/Desktop/noge/C-tutorials/hello_world# make CROSS_COMPILE=
arm-angstrom-linux-gnueabi-
make -C /lib/modules/2.6.32/build M=/home/root/Desktop/noge/C-tutorials/hels
make[1]: Entering directory `/usr/src/linux-2.6.32/2.6_kernel'
Makefile:1448: *** mixed implicit and normal rules. Stop.
make[1]: Leaving directory `/usr/src/linux-2.6.32/2.6_kernel'
make: *** [default] Error 2
이것이 원인인지 확실하지 않지만 make
버전이 있는지 확인했습니다. 우분투 및 옹스트롬과 다른 :
Angstrom's version:
GNU Make 3.82
Built for arm-angstrom-linux-gnueabi
Ubuntu's version:
GNU Make 3.81
This program built for i486-pc-linux-gnu
즉, Anstrom을 실행하는 Beagle Board에서 make
를 수행하는 동안 왜 오류가 발생합니까?
어떤 도움을 주셔서 감사합니다 ..!
업데이트 : Makefile의 내용은 1448 줄 근처에 있습니다.
1447 # Modules
1448 /%/: prepare scripts FORCE
1449 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
1450 $(build)=$(build-dir)
1451 %.ko: prepare scripts FORCE
1452 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
1453 $(build)=$(build-dir) $(@:.ko=.o)
1454 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
커널 버전에 대한 확인을했는데 Linux beagleboard 2.6.32 #3 PREEMPT Thu Jun 23 09:56:19 CEST 2011 armv7l GNU/Linux
이 있는데 here에서 얻은 커널 소스는 2.6.22.18
버전입니다. .
이 문제의 원인이되는 잘못된 커널 소스 코드를 가져 오는 것이 가능합니까?