본문 바로가기

Programming

커널모듈 Cross Compile 주의사항

커널모듈 크로스 컴파일시 유의사항



1. ARCH, CROSS_COMPILE 디렉티브 꼭 넣어주기.

이때 Makefile 속에 명시해주려면 아래처럼 export 랑 := 로 써줘야함.


root@ubuntu:/var/www/samsung/rootkit# cat Makefile 

export ARCH:=arm

export CROSS_COMPILE:=/var/www/samsung/gnu/arm/lin/bin/arm-xilinx-linux-gnueabi-


obj-m += stealth_file.o


KDIR := /var/www/samsung/linux-xlnx-xilinx-v2014.4-trd

PWD := $(shell pwd)

CC := /var/www/samsung/gnu/arm/lin/bin/arm-xilinx-linux-gnueabi-gcc


defulat:

$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules


clean:

rm -f *.ko *.mod.* .*.cmd *.o

rm -f Module.symvers modules.order

rm -rf .tmp_versions



2. 커널소스 내부에서 modpost 가 커널모듈을 linking 해주게 되어있는데

이놈이 실행불가능하면(32bit OS 에서 64bit ELF 를 돌리려한다던지) modpost 에러가 나게되어있음.

이점도 참고할것.



3. 꼭 xilinx 크로스컴파일러 아니어도 그냥 arm-linux-gnueabi 로해도 간단한건 잘됨.



4. 어떤경우는 커널을 컴파일해야 생성되는 헤더들이 있기때문에, 간단한 소스는 빌드되지만 복잡한건 크로스컴파일이 실패하는경우 그것도 고려할것.




'Programming' 카테고리의 다른 글

Intel SGX basics  (1) 2016.07.12
Mount QEMU qcow image  (0) 2015.12.17
RSA crap  (0) 2015.10.19
Linux 쉘커맨드로 반복적으로 argv escape 하기 귀찮을때  (0) 2015.10.14
zlib compress/decompress  (0) 2015.08.01