임베디드를 좋아하는 조금 특이한 개발자?

Buildroot를 이용하여 Custom Linux 빌드 (Beaglebone, Raspberrypi 용) 본문

Embedded/Buildroot

Buildroot를 이용하여 Custom Linux 빌드 (Beaglebone, Raspberrypi 용)

Gordon_ 2025. 3. 4. 08:33

참고 자료

https://buildroot.org/downloads/manual/manual.html#_getting_started

 

The Buildroot user manual

Package imagemagick installs the following scripts: $(STAGING_DIR)/usr/bin/{Magick,Magick++,MagickCore,MagickWand,Wand}-config So it’s fixup would be: IMAGEMAGICK_CONFIG_SCRIPTS = \ Magick-config Magick++-config \ MagickCore-config MagickWand-config Wand

buildroot.org

 


1. 필요 패키지 설치

sudo apt install sed make binutils build-essential diffutils bash patch gzip bzip2 perl tar cpio unzip rsync file bc findutils libncurses5-dev libncursesw5-dev bzr curl cvs git mercurial openssh-server subversion

 

2. Buildroot 소스 코드 다운로드

git clone https://github.com/buildroot/buildroot.git
cd buildroot
git checkout 2024.02

 저는 2024.02 버전을 사용하였습니다. 

 

3. 개발보드 보드 설정

먼저, 빌드할 리눅스가 실행될 타켓 보드에 대해 설정해야합니다.

Buildroot에서 기본적으로 호환 가능한 타겟 보드를 확인하기 위해 아래의 명령어를 실행합니다.

(관련 내용 : https://buildroot.org/downloads/manual/manual.html#make-tips)

make list-defconfigs

make list-defconfigs 실행 결과
라즈베리파이 보드 확인

 

비글본 보드 확인

 

저는 현재 비글본 블랙을 가지고 있으므로 beaglebone_defconfig로 설정하도록 하겠습니다.

make beaglebone_defconfig

 

또한, 추가적인 설정이나 기능을 추가 하고 싶다면 make menuconfig를 통해 추가할 수 있습니다.

4. Linux 빌드

make

 

만약, PATH 관련 에러가 발생한다면 아래의 포스트를 참고하시면 됩니다.

https://littlebitodd-developer.tistory.com/20

 

buildroot 빌드시 PATH 애러 해결

1. 문제 원인위 해당 에러의 경우 PATH 환경변수에 스페이스, 탭, 개행 문자가 포함되어 있을 경우 발생하는 에러 입니다.echo $PATH위 명령어를 실행하면 위 문자가 포함되어 있는 것을 확인 할 수

littlebitodd-developer.tistory.com

 

5. SD 카드에 Linux 설치

 빌드가 완료한 후에는 buildroot/output/images 폴더 내 출력 결과물이 있습니다. buildroot는 더욱 쉽고 간단하게 sdcard에 linux를 설치할 수 있는 방법을 제공하고 있습니다.

  먼저 리눅스를 설치할 sd카드를 확인해야합니다.

lsblk

 

sd 카드 확인

저의 경우 sdd인 것을 확인하였습니다.

sudo dd if=output/images/sd-card.img of=/dev/sdd bs=1M

6. 개발 보드 부팅

먼저, 우리는 Serial 통신을 통해 개발보드를 모니터링 할 예정입니다. 저의 경우 아래의 제품을 구매하여 사용하였습니다.

https://www.coupang.com/vp/products/8331029677?itemId=24052898104&vendorItemId=91072875576&src=1042503&spec=10304025&addtag=400&ctag=8331029677&lptag=10304025I24052898104V91072875576&itime=20250304081237&pageType=PRODUCT&pageValue=8331029677&wPcid=17410435577603338684427&wRef=&wTime=20250304081237&redirect=landing&gclid=CjwKCAiAw5W-BhAhEiwApv4goOt0h9klw1t05S_sT2Ml4Udq7s-cemAkF-vX9eHJAG1pHVs28OVA3xoCy5sQAvD_BwE&mcid=2830f53e030c4243a452a833aa8ccb16&campaignid=21307631972&adgroupid=

 

PL2303TA USB to TTL 시리얼 케이블 RS232 - 변환젠더 | 쿠팡

쿠팡에서 PL2303TA USB to TTL 시리얼 케이블 RS232 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 변환젠더 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

6.1. 비글본 블랙 부팅 방법

아래와 같이 색깔에 주의하여 연결해주면 됩니다.

 

  그리고 Beaglebone은 SDcard외 eMMC라는 저장장치가 기본적으로 탑재되어 있습니다. 그래서 기본적으로는 SD 카드로 부팅하지 않고 eMMC를 통해 부팅을 하게 되어있습니다. 그러므로 SD 카드로 부팅하기 위한 버튼이 존재합니다. 해당 버튼을 전원 연결시 누르고 있어야 SDcard로 부팅할 수 있습니다.

SDcard로 부팅하는 법

저는 visual studio code 의 확장 프로그램중 Serial Monitor를 사용하였습니다.

Serial에 대한 기본 설정은 baud rate를 115200으로 바꾸고 Beaglebone을 부팅하면 정상적으로 Linux가 부팅하는 것을 확인 할 수 있습니다.

부팅 완료한 Linux

처음 로그인 할 때 "root"로 로그인하면 정상적으로 로그인 됩니다.

 

6.2. 라즈베리파 부팅 방법

UART TTL 연결 방법

기본 Bandrate는 115200입니다.

 

UART로 연결 완료후 root 로그인