본문 바로가기
운영_설치/리눅스_유닉스

젠투(gentoo)스럽게 라즈베리 파이 OS 이미지 만들고 관리하기 (정리중)

by 써드아이 2013. 5. 10.

# emerge -u crossdev 

# crossdev -S -v -t armv6j-hardfloat-linux-gnueabi



# git clone --depth 1 git://github.com/raspberrypi/linux.git

# git clone https://github.com/raspberrypi/tools.git



툴체인을 만들 수 없다면 만들어져있는 커널을 이용하라고 친절히 git 주소를 알려주네...


# git clone https://github.com/raspberrypi/firmware.git




타겟 플랫폼용 바이너리를 생성할시 각 변수의 의미


CBUILD=i686-linux-gnu  : 빌드를 ㅅ ㅣ도하고있는 플랫폼

CHOST=armv6j-hardfloat-linux-gnueabi  : 타겟 플랫폼

CTARGET= : 실제 동작하게될 플랫폼


ROOT=/usr/${CHOST}/ : 설치하게될 가상 / (root)

PORTAGE_CONFIGROOT : 설정파일을 찾을 가상 / (root)


SYSROOT : 개발 툴들이 설치된 디렉토리


%%%%

툴 체인을 빌드 할 때는 CBUILD와 CHOST가 같고

타겟용 바이너리를 빌드 할 때는 CHOST와 CTARGET이 같다.

%%%%



# pwd
/root/RaspberryPi

# mkdir rootfs
# mkdir bootfs

# dd if=/dev/zero of=rasp_rootfs bs=1M count=2048
# losetup /dev/loop0 rasp_rootfs
# mkfs.ext4 /dev/loop0
#  mount /dev/loop0 rootfs
# cd rootfs 
# tar xvfj ../stage3-armv6j_hardfp-20130207.tar.bz2

# cd /usr/armv6j-hardfloat-linux-gnueabi
# rm -rf make.globals
# cd portage
# ln -s /usr/portage/profiles/default/linux/arm/13.0 make.profile

# cd ~
# ROOT=/root/RaspberryPi/rootfs armv6j-hardfloat-linux-gnueabi-emerge -u ntp 하니까 ROOT 에 설치



// =======================================================================================================

# armv6j-hardfloat-linux-gnueabi-emerge --sync 과연 필요할까?? 필요 없을 듯 하다.
# ROOT=/root/RaspberryPi/rootfs armv6j-hardfloat-linux-gnueabi-emerge --sync

equery 등의 명령도 ROOT를 기반으로 검색 할까??

# cross_emerge 로 빌드 할 때 사용되는 디렉토리는 

/usr/$CTARGET/tmp 이다.

======================================================================================================= //