반응형

Raspberry Pi 3를 위해 커널을 크로스 컴파일하는 방법을 설명합니다.



1. ARM용 크로스 컴파일러 설치


2. 커널 소스 다운로드


3. 커널 소스 설정


4. 커널 및 모듈 컴파일


5. 라즈베리파이로 복사






1. ARM용 크로스 컴파일러 설치


다음 명령으로 ARM용 컴파일러를 설치합니다.

$ sudo apt-get install gcc-arm-linux-gnueabihf




본 포스팅을 진행하기 위해서는 추가로 다음 패키지도 필요합니다.

$ sudo apt-get install make ncurses-dev build-essential




2. 커널 소스 다운로드


git 패키지를 설치 한 후,

$ sudo apt-get install git



커널 소스를 다운로드 받습니다.

$ git clone --depth=1 https://github.com/raspberrypi/linux.git




3. 커널 소스 설정

Raspberry PI 3를 위한 기본 설정을 사용합니다.

$ cd linux

$ KERNEL=kernel7

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig




추가적으로 고칠 옵션이 있다면 아래 명령을 사용합니다.

$ make ARCH=arm menuconfig



4. 커널 및 모듈 컴파일

-j4 옵션을 사용하여 커널과 모듈을 컴파일합니다.

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs -j4




컴파일된 모듈을 /home/pi/modules에 복사해둡니다.

$ sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=~/modules modules_install




5. 라즈베리파이로 복사

PC에서 커널 이미지와 모듈 디렉토리를 scp를 이용하여 전송합니다.

$ scp arch/arm/boot/zImage  pi@192.168.43.142:/home/pi




4.9.60-v7+커널 모듈 디렉토리 이름은 글 작성 시점과 다를 수 있습니다.

$ sudo rm  ~/modules/lib/modules/4.9.60-v7+/build

$ sudo rm  ~/modules/lib/modules/4.9.60-v7+/source

$ scp -r /home/webnautes/modules/lib/modules/4.9.60-v7+/ pi@192.168.43.142:/home/pi



라즈베리파이의 적절한 위치로 커널 이미지와 모듈 디렉토리를 복사해줍니다.

$ sudo cp zImage /boot/kernel7.img
$ sudo cp -rf 4.9.60-v7+/ /lib/modules/




Device Tree blob를 라즈베리파이로 복사합니다.

라즈베리파이로 파일들을 복사 한 후,

$ scp arch/arm/boot/dts/*.dtb pi@192.168.43.142:/home/pi


라즈베리파이에서 /boot 위치로 복사해줍니다.

pi@raspberrypi:~ $ sudo cp *.dtb /boot
pi@raspberrypi:~ $ rm *.dtb




라즈베리파이로 파일들을 복사 한 후,

$ scp arch/arm/boot/dts/overlays/*.dtb* pi@192.168.43.142:/home/pi
$ scp arch/arm/boot/dts/overlays/README pi@192.168.43.142:/home/pi


라즈베리파이에서 /boot/overlays 위치로 복사해줍니다.

pi@raspberrypi:~ $ sudo cp *.dtb* /boot/overlays/
pi@raspberrypi:~ $ rm *.dtb*
pi@raspberrypi:~ $ sudo cp README /boot/overlays/
pi@raspberrypi:~ $ rm README




이제 라즈베리파이를 재부팅하여 커널 버전을 확인해봅니다.





참고

https://www.raspberrypi.org/documentation/linux/kernel/building.md


문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts