Site Tools


Hotfix release available: 2024-02-06b "Kaos". upgrade now! [55.2] (what's this?)
Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
Hotfix release available: 2023-04-04b "Jack Jackrum". upgrade now! [54.2] (what's this?)
Hotfix release available: 2023-04-04a "Jack Jackrum". upgrade now! [54.1] (what's this?)
New release available: 2023-04-04 "Jack Jackrum". upgrade now! [54] (what's this?)
Hotfix release available: 2022-07-31b "Igor". upgrade now! [53.1] (what's this?)
Hotfix release available: 2022-07-31a "Igor". upgrade now! [53] (what's this?)
New release available: 2022-07-31 "Igor". upgrade now! [52.2] (what's this?)
New release candidate 2 available: rc2022-06-26 "Igor". upgrade now! [52.1] (what's this?)
New release candidate available: 2022-06-26 "Igor". upgrade now! [52] (what's this?)
Hotfix release available: 2020-07-29a "Hogfather". upgrade now! [51.4] (what's this?)
New release available: 2020-07-29 "Hogfather". upgrade now! [51.3] (what's this?)
New release candidate 3 available: 2020-06-09 "Hogfather". upgrade now! [51.2] (what's this?)
New release candidate 2 available: 2020-06-01 "Hogfather". upgrade now! [51.1] (what's this?)
New release candidate available: 2020-06-01 "Hogfather". upgrade now! [51] (what's this?)
Hotfix release available: 2018-04-22c "Greebo". upgrade now! [50.3] (what's this?)
Hotfix release available: 2018-04-22b "Greebo". upgrade now! [50.2] (what's this?)
Hotfix release available: 2018-04-22a "Greebo". upgrade now! [50.1] (what's this?)
New release available: 2018-04-22 "Greebo". upgrade now! [50] (what's this?)
Hotfix release available: 2017-02-19g "Frusterick Manners". upgrade now! [49.7] (what's this?)
Hotfix release available: 2017-02-19f "Frusterick Manners". upgrade now! [49.6] (what's this?)
Hotfix release available: 2017-02-19e "Frusterick Manners". upgrade now! [49.5] (what's this?)
Hotfix release available fixing CVE-2017-12979 and CVE-2017-12980: 2017-02-19d "Frusterick Manners". upgrade now! [49.4] (what's this?)
Hotfix release available fixing CVE-2017-12583: 2017-02-19c "Frusterick Manners". upgrade now! [49.3] (what's this?)
file_system

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
file_system [2017/08/14 20:12]
1.241.172.144 created
file_system [2017/08/14 21:35] (current)
1.241.172.144
Line 1: Line 1:
-aaa+===== 최소사양으로 rootfs 만드는 법 ===== 
 + 
 +우선 현재 설치되어 있는 컴파일러를 사용할 예정이다. 
 +linaro에서 다운받은 컴파일러 이다. 
 + 
 +1. 간단한 형태의 root filesystem 의 레이아웃을 우선 간단하게 잡아본다. 
 + 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_000.jpg}} 
 + 
 +2. 레이아웃에 맞게 디렉토리를 생성 
 + 
 +  $ mkdir rootfs 
 +  $ cd rootfs 
 +  $ mkdir bin dev etc lib proc sys sbin usr 
 +  $ mkdir etc/init.d usr/bin usr/sbin 
 + 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_001.jpg}} 
 + 
 +3. Busybox 를 복제 
 + 
 +  $ cd .. 
 +  $ git clone git://​busybox.net/​busybox.git 
 + 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_002.jpg}} 
 + 
 +4. Busybox 설정 
 + 
 +  $ cd busybox 
 +  $ make defconfig 
 +  $ make menuconfig 
 + 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_003.jpg}} 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_004.jpg}} 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_005.jpg}} 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_006.jpg}} 
 + 
 +Settings--->​Build static library\\ 
 + 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_007.jpg}} 
 + 
 +Settings->​Cross Compile prefix : ~/​VI/​gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf\bin\arm-linux-gnueabihf-\\ 
 +->​설치된 자신의 크로스 컴파일러의 경로를 사용한다. 
 + 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_008.jpg}} 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_009.jpg}} 
 + 
 +Settings->​Destination path for 'make install'​ : ~/​VI/​rootfs\\ 
 +->​위에서 만들었던 root file system 폴더 
 + 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_010.jpg}} 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_011.jpg}} 
 +{{wiki:​atmel_sama5d42:​rootfs:​rootfs_012.jpg}} 
 + 
 +5. Busybox 를 빌드하고 인스톨 
 + 
 +  $ make 
 +  $ make install 
 + 
 +6. 이제 BusyBox나 그 외 실행파일들이 사용하는 Shared library를 lib 폴더로 복사한다.  
 + 
 +  $ cp -a ~/​x-tools/​arm-cortexa5-linux-uclibcgnueabihf/​arm-cortexa5-linux-uclibcgnueabihf/​sysroot/​lib/​* ./lib 
 + 
 +7. 이제 inittab 파일과 rcS 파일을 설정하여,​ /proc /sys 폴더를 마운트한다. 
 +inittab 파일 샘플은 busybox 소스폴더의 example 폴더에 있다. 
 +우선 이 파일을 복사한 후 수정한다.  
 + 
 +  $ cd ~/​VI/​busybox/​examples 
 +  $ cp inittab ~/​VI/​rootfs/​etc 
 +  $ cd ~/​VI/​rootfs/​etc 
 +  $ vi inittab 
 + 
 +  ::​sysinit:/​etc/​init.d/​rcS 
 +   
 +  # Start an "​askfirst"​ shell on the console (whatever that may be) 
 +  ttyS0::​askfirst:/​bin/​sh 
 +   
 +  # Start an "​askfirst"​ shell on /​dev/​tty2-4 
 +  tty2::​askfirst:/​bin/​sh 
 +  tty3::​askfirst:/​bin/​sh 
 +  tty4::​askfirst:/​bin/​sh 
 +   
 +  # Stuff to do when restarting the init process 
 +  ::​restart:/​sbin/​init 
 +   
 +  # Stuff to do before rebooting 
 +  ::​ctrlaltdel:/​sbin/​reboot 
 +  ::​shutdown:/​bin/​umount -a -r 
 +  ::​shutdown:/​sbin/​swapoff -a 
 + 
 +  $ cd ~/​VI/​rootfs/​etc/​init.d 
 +  $ vi rcS 
 + 
 +  #!/bin/sh 
 +  mount -t proc proc /proc 
 +  mount -t sysfs sysfs /sys 
 + 
 +8. 앞서 구성했던 레이아웃을 다시 한번 살펴보면 아래와 같이 구성되어진 것을 확인할 수 있다. 
 +  $ tree -d 
 +  . 
 +  ├── bin => BusyBox에 의해서 구성 
 +  ├── dev => Kernel의 devtmpfs 에 의해서 구성 
 +  ├── etc => inittab 파일 추가 
 +  │   ​└── init.d => rc.S 파일 추가 
 +  ├── lib => sysroot/lib 폴더에서 파일 복사 
 +  ├── proc => rcS 파일에서 마운트 
 +  ├── sbin => BusyBox에 의해서 구성 
 +  ├── sys => rcS 파일에서 마운트 
 +  ├── usr => BusyBox에 의해서 구성 
 +      ├── bin 
 +      └── sbin 
 + 
 +이를 NFS로 하여 사용해 본다. 
 + 
 + 
 +===== Buildroot로 rootfs 만드는 법 ===== 
 + 
 +===== Yocto Poky로 rootfs 만드는 법 ===== 
 + 
 + 
file_system.1502709143.txt.gz · Last modified: 2017/08/14 20:12 by 1.241.172.144