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



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
커널모듈 Cross Compile 주의사항  (0) 2015.12.09
RSA crap  (0) 2015.10.19
Linux 쉘커맨드로 반복적으로 argv escape 하기 귀찮을때  (0) 2015.10.14
zlib compress/decompress  (0) 2015.08.01
Posted by daehee87

댓글을 달아 주세요