rpi4-64 u-boot, initramfs 사용

markyang92·2022년 8월 23일
0
post-thumbnail

Partition

partitionfilesystemcapacitytype
bootFAT32100MBW95 FAT32
rootext4until last sector

fdisk

파티션 지우기

  • SD 카드의 디바이스파일을 sdc로 가정
# 마운트가 되어 있다면 umount 할 것
$ lsblk
sdc      8:32   1  14.9G  0 disk 
├─sdc1   8:33   1  61.9M  0 part /media/dhyang/boot
└─sdc2   8:34   1 161.2M  0 part /media/dhyang/root
$ sudo umount /media/dhyang*

$ sudo fdisk /dev/sdc # fdisk 명령 실행

파티션 추가

$ sudo fdisk /dev/sdc

파티션 type 변경

  • 요렇게 뜨면 성공
  • 항상 w 명령을 써야 적용된다.

파일 시스템 포맷

$ sudo mkfs.vfat -F 32 -n boot /dev/sdc1
$ sudo mkfs.ext4 -L root /dev/sdc2

마운트

# 마운팅 포인트가 없다면 미리 만들기
# sudo mkdir -p /mnt/boot
$ sudo mount /dev/sdc1 /mnt/boot

# sudo mkdir -p /mnt/root
$ sudo mount /dev/sdc2 /mnt/root

toolchain

$ git clone https://github.com/crosstool-ng/crosstool-ng
$ cd crosstool-ng/
$ ./bootstrap
$ ./configure --prefix=${PWD}
$ make
$ make install
$ export PATH="${PWD}/bin:${PATH}"

toolchain 살펴보기

$ ct-ng list-samples

  • 우리가 사용할 것은 aarch64-rpi4-linux-gnu
$ ct-ng show-aarch64-rpi4-linux-gnu


toolchain 설정

$ ct-ng aarch64-rpi4-linux-gnu

toolchain build

$ ct-ng build

toolchain 구조

  • toolchain 구조 를 한번 살펴보기
  • 여튼, 방금 빌드한 툴체인은 ${HOME}/x-tools/aarch64-rpi4-linux-gnu에 생성된다.
    • 여기서 생성된 Target용 Cross compiler는 ${HOME}/x-tools/aarch64-rpi4-linux-gnu/bin 에 있다.
  • 환경변수에 설정하려면 아래와 같이 한다.
$ export PATH=${HOME}/x-tools/aarch64-rpi4-linux

https://hechao.li/2021/12/20/Boot-Raspberry-Pi-4-Using-uboot-and-Initramfs/

profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글