Site Tools


Hotfix release available: 2025-05-14b "Librarian". upgrade now! [56.2] (what's this?)
Hotfix release available: 2025-05-14a "Librarian". upgrade now! [56.1] (what's this?)
New release available: 2025-05-14 "Librarian". upgrade now! [56] (what's this?)
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

Both sides previous revision Previous revision
Next revision
Previous revision
file_system [2017/08/14 20:13]
1.241.172.144
file_system [2017/08/14 21:35] (current)
1.241.172.144
Line 1: Line 1:
 ===== 최소사양으로 rootfs 만드는 법 ===== ===== 최소사양으로 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 만드는 법 ===== ===== Buildroot로 rootfs 만드는 법 =====
  
-{{wiki:​atmel_sama5d42:​nfs:​nfs_1.jpg}}+===== Yocto Poky로 rootfs 만드는 법 ===== 
 + 
  
file_system.1502709236.txt.gz · Last modified: 2017/08/14 20:13 by 1.241.172.144