우리 모두 알고 있듯이 Linux 환경에서는 모든 것이 파일이고 파일이 모든 것을 나타낼 수 있습니다. 파일 시스템은 이러한 공통 구성 요소의 모음입니다. 임베디드 분야에서는 busybox를 기반으로 구축된 rootfs가 파일 시스템 구축에 자주 사용됩니다.
busybox는 거의 20년 동안 존재해 왔으며 이제 임베디드 업계의 주류 rootfs 구축 도구가 되었습니다.
busybox의 코드는 완전한 오픈 소스입니다. 공식 웹사이트에 들어가 "Get BusyBox" 아래의 "Download Source"를 클릭하면 소스 코드 다운로드 인터페이스로 들어갈 수 있습니다.
“
공식 홈페이지 링크:
https://busybox.net/”
소스 코드를 다운로드한 후 소스 코드를 컴파일 환경에 복사합니다. 컴파일 전에 Busybox를 구성해야 하며 이는 주로 세 가지 측면을 포함합니다.
1. 컴파일 도구 체인 설정
2.컴파일 모드 설정
3. 파일 시스템에서 지원하는 기능
처음 두 항목은 반드시 완료해야 하며, 세 번째 항목은 사용자의 필요에 따라 구성됩니다.
make menuconfig를 실행하여 구성 인터페이스로 들어갑니다.
컴파일 툴체인 설정
설정된 크로스 컴파일 툴 체인은 커널 컴파일 시 사용된 툴 체인과 동일해야 합니다. 예를 들어 크로스 컴파일 툴 체인이 arm-linux-gnueabi-로 설정된 경우 빌드 옵션을 입력하여 설정하세요. .
물론 루트 디렉터리에 Makefile 파일을 입력하여 해당 크로스 컴파일 도구 체인 및 플랫폼 정보를 수정할 수도 있습니다.
컴파일 모드 설정
컴파일된 이미지 파일이 정적인지 동적인지 설정합니다. 동적으로 컴파일되는 경우 크로스 컴파일 도구 체인 아래의 lib 라이브러리를 최종 _install 폴더에 수동으로 복사해야 하며 그 반대의 경우도 마찬가지입니다. 정적 컴파일의 구성은 다음과 같습니다. 괄호 안의 프롬프트에는 공유 라이브러리가 포함되지 않은 것을 알 수 있습니다. 이 옵션을 활성화하지 않으면 컴파일 방법이 동적이 됩니다.
**rootfs에서 지원하는 기능 설정
**
busybox는 수백 개의 명령줄과 기타 기능을 지원할 수 있으며 필요에 따라 늘리거나 줄일 수 있습니다. 예를 들어 devmem 명령줄을 추가하는 경우 해당 활성화 상자를 선택하세요.
컴파일
make 및 make install을 실행하면 bin, sbin, usr 및 기타 파일이 포함된 _install 폴더가 컴파일 경로에 생성됩니다. 방금 추가한 devmem 명령을 확인하고 컴파일되었는지 확인하세요.
이때, busybox에 컴파일된 _install을 rootfs의 기본 프레임워크로 복사한 후, 기타 필요한 컴포넌트를 추가해 주세요.
_install 아래의 모든 파일을 복사하고 lib 및 etc 폴더를 생성한 다음 크로스 컴파일 도구 체인 arm-linux-gnueabi 아래의 lib 라이브러리를 생성된 lib 폴더에 복사합니다.
그런 다음 home, opt, run, sys, var, boot, dev, media, proc, tmp, usr을 순서대로 생성하세요
etc 디렉토리 구성
rcS 파일을 생성하기 전, etc 디렉터리에 init.d 폴더를 수동으로 생성하고 init.d 폴더에 rcS를 생성해야 합니다.
이 시점에서 다음 명령을 실행하여 경량 rootfs를 패키징하고 생성합니다.
으아아아mfgtools를 사용하여 압축된 rootfs.tar.bz2를 mmc로 다운로드하고 시스템을 다시 시작하면 생성된 루트 파일 시스템이 정상적으로 작동하는 것을 볼 수 있으며, 앞서 추가한 devmem 명령도 정상적으로 실행될 수 있습니다.
위 내용은 Linux rootfs를 구축하는 방법을 단계별로 가르쳐주세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!