[리눅스 커널 구조 원리] #1. 라즈베리 파이 커널 설치

문연수·2025년 3월 13일
0

1. 실습을 위해 구매한 제품

 구매는 devicemart 에서 했다. 옛날에는 이렇게 안 비쌌는데 어쩌다가 이런 가격까지 올라갔는지 도무지 이해가 되질 않는다... 원래 구 버전은 점점 가격이 내려가지 않나?

 추가적으로 microSD 를 굽기 위한 멀티 허브(core d34 dex) 도 있는데 이건 이미 가지고 있어서 따로 구매하지 않았다. 쿠팡 기준으로 가격은 대략 3만원 정도 하는 것 같다.

역시 임베디드는 돈이 많아야 할 수 있다....

2. 라즈베리 파이 설치

 책에서는 포매터 프로그램을 이용해서 microSD 를 굽는데 지금은 라즈베리 파이 사에서 제공하는 Raspberry Pi Imager 라는 공식 프로그램이 있어서 필자는 이를 이용했다. 버전은 굳이 맞추지 않고 최신 버전의 Raspberry Pi OS Lite (64-bit) 를 설치했다.

설정은 대략 이런 식으로 했다. 무선 랜 대신 유선 랜을 이용할 예정이므로 유선 랜 설정은 빼버렸다.

SSH 사용 도 체크했다.


 옛날에는 이런 설정도 일일이 직접 해줘야 했는데 별 것도 아니지만 정말 세상이 빠르게 변하고 있음을 깨닫게 된다.

3. 라즈베리 파이 부팅

설치는 대략 이런 식으로 했다. headless 로 사용할 예정이므로 랜과 전원만 있으면 충분하다.

정상적으로 부팅이 된다. 부팅 후에는 아래의 명령어를 순서대로 입력했다.

sudo apt update
sudo apt upgrade
sudo apt autoremove

sudo apt install git

최종 업데이트 후 리눅스의 버전은 6.6.51+rpt-rpi-v8 인 것 같다.

4. 라즈베리 파이 빌드하기

 필자는 커널을 호스트 머신에서 크로스빌드 한 뒤 scp 로 넘겨보낼 예정이다. 따라서 호스트 머신에서 크로스 컴파일을 수행해야 한다.

* 빌드하기

 이하의 명령어를 입력해서 커널 설정 파일, Image, modules, dtbs 를 생성한다. 마지막으로 modules_install 명령어를 통해 모듈을 생성한다.

KERNEL=kernel8 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig O=../../build/raspberrypi/
KERNEL=kernel8 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs O=../../build/raspberrypi/ -j$(nproc)

KERNEL=kernel8 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=../../build/raspberrypi/ INSTALL_MOD_PATH=../../build/raspberrypi modules_install -j$(nproc)

* 파일 전송하기

빌드가 끝났다면 파일을 scp 명령어를 통해 파일을 raspberrypi 로 옮긴다:

scp arch/arm64/boot/Image mythos@192.168.0.128:/home/mythos/build/Image
scp -r lib/modules/6.6.78-v8+/ mythos@192.168.0.128:/home/mythos/build/modules/

scp arch/arm64/boot/dts/broadcom/*.dtb mythos@192.168.0.128:/home/mythos/build/dtb/
scp arch/arm64/boot/dts/overlays/*.dtb* mythos@192.168.0.128:/home/mythos/build/dtb/overlays/

5. 라즈베리 파이 커널 업그레이드

sudo cp Image /boot/firmware/kernel8.img
sudo cp modules/ /lib/modules/6.6.74+rpt-rpi-v8/
sudo cp -r modules /lib/modules/6.6.74+rpt-rpi-v8/

 위 파일들을 모두 복사한 뒤에 재부팅을 하면 이하와 같이 커널의 버전이 변경된 것을 확인할 수 있다:

profile
2000.11.30

0개의 댓글

관련 채용 정보