Rootfs 빌드 하기

2024. 11. 20. 21:43디바이스 드라이버

루트파일시스템(Rootfs) 이란?

루트 파일 시스템은 운영체제에서 가장 기본이 되는 파일 시스템이다. 리눅스나 유닉스 계열의 운영 체제에서 모든 파일과 디렉터리는 이 루트 파일 시스템 아래에 위치한다. 

 

주요 디렉터리로는 밑과 같다.

 

/ : 루트 디렉터리

/bin : 사용자와 시스템에서 사용하는 필수 명령어 바이너리 (ls,cp,mv...)

/sbin : 시스템 관리자가 사용하는 바이너리 (

/lib : 실행 파일에 필요한 공유 라이브러리 ( C 라이브러리, 공유 라이브러리..)

/etc : 시스템 설정 파일과 애플리케이션의 설정 파일 ( /etc/fstab, /etc/passwd...)

/var : 가변 데이터를 저장

/home : 사용자 계정의 개인 파일을 저장 ( /home/user)

/usr : 사용자가 설치한 프로그램과 데이터

 

루트파일시스템을 다운받기 위해서 오픈소스 기반의 맞춤형 루트 파일 시스템을 만들어 주는 프로그램인 빌드 루트를 다운받는다.

 

wget 명령어를 사용해 압축 파일을 다운로드 후 

 

tar xvf 명령어로 압축을 해제한다.

 

이렇게 해서 빌드 루트를 다운받았다면, 빌드 루트를 설정한다. 만약 무엇을 설정해야하는지 모른다면 

 

 

ls configs 명령어를 통해 무엇을 설정해야하는지 확인할 수 있다.

 

 

이런 식으로 자신이 설정하고 싶은 defconfig를 make한다.

 

.config파일이 생성되면서 위에 있는 qemu_aarch64_virt_defconfig에 있는 설정들이 모두 .config파일로 들어간다.

그 다음 make menuconfig를 사용하여 상세한 설정 값을 적용시킨다. ncurse라는 라이브러리가 사전에 설치되어야하므로 sudo apt install libncurses-dev 명령어를 통해 미리 설치한다.

 

마지막으로 빌드 루트를 빌드한다.

make -j<코어 개수> 명령어를 사용하는데 코어 개수를 모르겠다면

 

아래와 같은 명령어로 코어의 개수를 알 수 있다. 여기서 코어의 개수는 4개이다.