x86 ubuntu Linux で ARM カーネル モジュールをクロス コンパイルしたいと考えています。カーネル ソース (ターゲット ARM マシンがこの Linux バージョンを実行しているため、Linux 2.6.26) をダウンロードしました。そして、アームクロスコンパイラを適切に取得しました。ご覧のように。
root@declspec-desktop:/var/www/module_test# arm-linux-gnueabi-
arm-linux-gnueabi-addr2line arm-linux-gnueabi-cpp-4.5
arm-linux-gnueabi-gcov-4.5 arm-linux-gnueabi-ld.gold
arm-linux-gnueabi-ranlib arm-linux-gnueabi-strip
arm-linux-gnueabi-ar arm-linux-gnueabi-elfedit
arm-linux-gnueabi-gprof arm-linux-gnueabi-nm
arm-linux-gnueabi-readelf arm-linux-gnueabi-as
arm-linux-gnueabi-gcc arm-linux-gnueabi-ld
arm-linux-gnueabi-objcopy arm-linux-gnueabi-size
arm-linux-gnueabi-c++filt arm-linux-gnueabi-gcc-4.5
arm-linux-gnueabi-ld.bfd arm-linux-gnueabi-objdump
arm-linux-gnueabi-strings
以下は私のカーネル モジュール (hello_module.ko) コンパイル (x86 マシン用) の Makefile で、これは正常に動作します。
obj-m += hello_module.o
KDIR := /lib/modules/$(shell uname -r)/build
#PWD:=$(shell pwd)
all:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -rf *.o *.ko *.mod.* .c* .t*
Linux 2.6.26 用のカーネル モジュールを ARM 用にクロス コンパイルするには、元の作業 Makefile で何を変更する必要がありますか?
LinuxソースとLinuxヘッダーソースの違いは何ですか? カーネル関連のものをコンパイルするたびにこれらを見てきましたが、それでもわかりません。
いくつかの記事をグーグル検索しましたが、役に立ちません...