-
BuildRooot카테고리 없음 2023. 9. 6. 16:59
이미지 파일 생성하기
BuildRoot란 ? 임베디드 리눅스 시스템을 생성하는 스크립트 덩어리이다. 임베디드 시스템을 소스파일로부터 생성하는 명령어 집합.
git buildroot 다운로드 -> make<config>->make menuconfig->make
make<config> : 나는 make<config> 부분이 이해가 잘 안되었지만 configs 하위 폴더의 파일들 중 하나를 지정, 설정을 하는 명령어라 이해했다.
make menuconfig : 설정을 변경하는 명령어 (직접 해봐야 이해가 갈 것 같단 생각이 들었다...)
설정 항목들....
- <BuildRoot top menu>
- <BuildRoot Build options menu>
- buildroot 관련 option을 지정할 수 있다.
- <BuildRoot Toolchain menu>
- Toolchain 설정을 변경할 수 있다. uClibc, glibc 등에 대한 선택도 가능하다.
- Toolchain이란 ?
- Compiler(gcc), Debugger(gdb), Library(glibc), Util(binutils -gcc를 위한 어셈블러, 링커 라이브러리 관련 파일 모음)
- uClibc란 ?
- 임베디드 리눅스 전용으로 만들어진 소형 C표준 라이브러리
- GLIBC란?
- C언어는 input/output, 메모리관리, 문자열 조작 등의 기능이 없다. #include <stdio.h>와 같은 라이브러리를 GLIBC라한다.
- Toolchain이란 ?
- Toolchain 설정을 변경할 수 있다. uClibc, glibc 등에 대한 선택도 가능하다.
- <BuldRoot System configuration menu>
- target system configuration을 지정할 수 있다.
- <BuildRoot Kernel menu>
- linux kernel 관련 설정을 할 수 있다(단, kernel config 자체에 대한 설정은 별도의 명령으로 진행함 - 3절 참조)
- linux kernel 관련 설정을 할 수 있다(단, kernel config 자체에 대한 설정은 별도의 명령으로 진행함 - 3절 참조)
- <BuildRoot Target packages menu>
- target board에 올라가는 각종 package를 선택 지정할 수 있다.
- <BuildRoot Filesystem images menu>
- 사용하고자 하는 root file system을 지정할 수 있다.
- root file system이란 ?
- 시스템 초기화 및 관리에 필요한 내용을 담고 있어 부팅에 꼭 필요한 파일 시스템
- root file system이란 ?
- 사용하고자 하는 root file system을 지정할 수 있다.
- <BuildRoot Bootloaders menu>
- bootloader를 선택 지정할 수 있다
메뉴 이미지를 확대해서...단어를 다 찾아보려 했으나 양이 너무 방대..
make : 다운로드, 빌드한다. 부팅 가능한 이미지 파일을 생성하는데 필요한 파일을
Yocto란 ?
여러 개의 작업을 하나의 작업 경로 내에서 모두 처리 할 수 있는 간편한 빌드 시스템
NFS Booting하기
NFS Booting이란 ? 타겟 보드가 충분한 저장공간을 가지지 않았을 때, root filesystem과 다른 필요한 파일을 remote 서버로부터 가져와 부팅하는 것으로 파악된다. 예전에 리눅스 프로젝트에서 소스 편집 후 sd card에 저장 후 빌드시켰는데, remote 서버로부터 가져오는 것 같다.
kernel Configuration
새로운 config 파일 생성 -> $make linux-menuconfig -> $ make linux-update-defconfig -> $ make savedefconfig config파일이름
Custom BSP 관련 작업하기
BuildRoot에 application 또는 kernel module을 포함하는 방법은 패키지, 오버레이 방식