73 lines
3.4 KiB
Markdown
73 lines
3.4 KiB
Markdown
|
https://koreascience.kr/article/JAKO201710758144628.pdf
|
|||
|
|
|||
|
### 1. 준비 단계
|
|||
|
- 리눅스 시스템(Ubuntu, Fedora...)
|
|||
|
- 준비된 스크립트 (version-check.sh, library-check.sh)를 실행하여 요건 만족 여부 확인
|
|||
|
- 새 디스크 파티션 및 마운트
|
|||
|
- root로 작업
|
|||
|
- 새 파티션의 마운트 LFS=/mnt/lfs
|
|||
|
- 소스 파일 다운로드
|
|||
|
- 디렉토리 $LFS/sources를 생성
|
|||
|
- 필요한 프로그램 패키지 소스와 패치 파일 다운로드(70여종)
|
|||
|
- 향후 모든 빌드는 sources 디렉토리 아래에서 수행
|
|||
|
- 임시 디렉토리 및 사용자 생성
|
|||
|
- 임시 디렉토리 $LFS/tools를 생성
|
|||
|
- 일반 사용자 계정을 생성
|
|||
|
- tools 디렉토리에 임시 시스템을 구성하는 도구 설치
|
|||
|
- -> 임시 시스템은 호스트 시스템과 분리되며, 최종 시스템과도 격리될 수 있다
|
|||
|
- 최종 시스템이 구축되면 tools 디렉토리에 구축된 임시 시스템은 안전하게 제거
|
|||
|
- 이 디렉토리에 대한 심볼릭 링크를 호스트의 루트(/) 디렉토리에 다음과 같이 걸어둔다
|
|||
|
- > ln –sv $LFS/tools /
|
|||
|
(이 링크를 통해 호스트에서 빌드 시 디렉토리 /tools는 새 파티션의 tools 디렉토리를 가리키게 된다. )
|
|||
|
(임시 시스템, 최종 시스템 구축 시 /tools는 이 디렉토리를 가리키게 된다)
|
|||
|
- 치명적인 작업 실수로 인한 피해를 예방하기 위해 일반 사용자 계정 lfs를 생성
|
|||
|
- tools와 sources 디렉토리의 소유자 권한을 부여
|
|||
|
- lfs가 로그인할 때 마다 쉘 환경이 초기화 되도록 두bash 시작 파일을 설정
|
|||
|
```bash
|
|||
|
|
|||
|
# .bash_profile파일 (로그인 쉘이 열릴 때 실행됨)
|
|||
|
# 모든 기존 환경 변수를 무효화
|
|||
|
# 세 가지 환경변수만을 정의
|
|||
|
# 새 bash 프로그램으로 대체
|
|||
|
exec env –i HOME=/root TERM=“$TERM” \
|
|||
|
PS1=’\u:\w\$’ /bin/bash
|
|||
|
|
|||
|
# .bashrc 파일
|
|||
|
# 명령 위치 검색시 해쉬 테이블을 사용하지 않도록 한다.
|
|||
|
set +h
|
|||
|
umask 022
|
|||
|
# LFS 마운트한 폴더 (LFS=/mnt/lfs)
|
|||
|
LFS=/mnt/lfs
|
|||
|
LC_ALL=POSIX
|
|||
|
# 시 시스템 구축에 사용되는 크로스 컴파일러 구축을 위해 target 시스템 이름을 환경변수 LFS_TGT로 정의
|
|||
|
LFS_TGT=x86_64-lfs-linux-gnu
|
|||
|
# set +h 명령과 함께, 앞으로 임시 시스템에서 임시 툴들이 tools 디렉 토리에 설치되는 대로 이들이 즉시 사용될 수 있도록 한다
|
|||
|
PATH=/tools/bin:/bin:/usr/bin
|
|||
|
export LFS LC_ALL LFS_TGT PATH
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
### 2. 임시 시스템 구축 단계
|
|||
|
- lfs로 수행
|
|||
|
- 크로스 툴체인 설치
|
|||
|
(크로스 정적 링커와 크로스 gcc 컴파일러로구성됨)
|
|||
|
( 임시 시스템의 라이브러리를 크로스 컴파일 할 때 사용)
|
|||
|
- 정적 링커를 포함하는 binutils 패키지와 컴파일러를 포함하는 gcc 패키지를 컴파일 할 때, 크로스 툴체인을 얻기 위해
|
|||
|
configure 옵션[6] 중 target 옵션을 triplet x86_64-lfs-linux-gnu으로 설정
|
|||
|
(기본 triplet의 vendor 부분만을 pc에서 lfs로 살짝 수정 한 것))
|
|||
|
- 임시 C 라이브러리 설치
|
|||
|
- 툴체인 설치
|
|||
|
|
|||
|
### 3. 최종 시스템 구축 단계
|
|||
|
- 가상 커널 파일 시스템 준비
|
|||
|
- chroot 환경 진입
|
|||
|
- 표준 디렉토리 생성 및 필수 파일 생성
|
|||
|
- 최종 C 라이브러리 및 최종 툴체인 설치
|
|||
|
- 최종 시스템 패키지 설치
|
|||
|
|
|||
|
### 4. 시스템 설정 및 부팅 준비
|
|||
|
|
|||
|
|
|||
|
http://soopsaram.com/lfs/markdowns/0_Preface.html
|