BeagleBone 리눅스 빌드하기

BeagleBone 리눅스 빌드하기는 부트로더만 따로 보는 게 아니라, 최종적으로 보드가 실제로 뜨는 흐름까지 같이 보는 작업이다. 이 글에서는 전체 빌드 순서를 한 번에 정리한다.

처음 시작할 때는 크로스 툴체인 설치가 되어 있어야 하고, U-boot 컴파일하기도 같이 봐야 한다. 이 두 개가 없으면 뒤에서 커널을 빌드해도 연결이 안 된다.

전체 흐름

BeagleBone 리눅스를 만든다는 건 보통 부트로더, 커널, 루트파일시스템을 순서대로 맞추는 작업이다. 한 번에 다 하려고 하면 정신없으니, 먼저 어디까지 빌드할 건지 나누는 게 좋다.

  1. 크로스 툴체인을 준비한다.
  2. U-Boot를 빌드한다.
  3. 커널 이미지를 빌드한다.
  4. 루트파일시스템을 준비한다.
  5. 실제 보드에서 부팅 테스트를 한다.

실행 전에 볼 것

커널을 빌드할 때는 보드 설정과 아키텍처가 맞아야 한다. BeagleBone Black은 am335x 계열로 묶어서 보는 게 맞고, 여기서 설정이 틀리면 이미지가 있어도 안 뜬다.

그리고 파일시스템이 없으면 부팅은 되더라도 쉘로 들어가기 어렵다. 그래서 Busybox 사용해보기buildroot 사용해보기가 같이 필요하다.

왜 이 순서인가

부트로더가 먼저 올라와야 커널을 넘길 수 있고, 커널이 올라와야 사용자 공간이 보인다. 이 순서를 모르고 빌드하면, 파일은 있는데 왜 안 뜨는지 계속 찾게 된다. 그래서 BeagleBone 리눅스 빌드하기는 결과보다 순서를 먼저 보는 게 낫다.

뒤에서 TFTP로 부팅할 때도 이 빌드 결과가 그대로 쓰인다. 필요하면 비글본 블랙 TFTP 부팅하기를 같이 보면 된다.

주의할 점

설정 파일은 한 번 꼬이면 오래 간다. 빌드가 안 될 때는 파일 자체보다 defconfig와 환경변수를 먼저 보자. 그리고 완성된 이미지가 실제로 보드에 올라가는지도 같이 확인해야 한다. 빌드만 성공하고 부팅은 안 되는 경우가 생각보다 많다.

정리

BeagleBone 리눅스 빌드하기는 결국 순서 싸움이다. 툴체인, U-Boot, 커널, 루트파일시스템을 따로 보고 마지막에 합치면 된다.

실행 체크

BeagleBone 리눅스 빌드하기는 결과만 보면 복잡해 보이지만, 실제로는 순서만 맞추면 된다. 툴체인, U-Boot, 커널, rootfs를 따로 보고 마지막에 합치는 식으로 가면 생각보다 덜 꼬인다.

개발 중에는 NFS나 BusyBox를 같이 써서 빠르게 확인하는 편이 좋다. 부팅 이미지가 바뀔 때마다 다시 SD 카드를 굽는 것보다 훨씬 낫다. 다음 글에서 rootfs 쪽을 보면 연결이 된다.

  • 순서 먼저 정리
  • rootfs는 가볍게 시작
  • TFTP와 NFS도 같이 보기

댓글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.