본문 바로가기

라즈베리파이/왕초보

라즈베리파이[10] - USB로 부팅하기

반응형

안녕하세요.

오늘은 라즈베리파이를 USB로 부팅해보겠습니다.

 

1. 개요

보통은 SD카드를 이용해서 라즈베리파이를 부팅시키고 계실겁니다.

하지만 라즈베리파이4부터 탑재된 EEPROM덕분에 USB를 활용한 부팅이 가능해졌습니다.

부팅 중 EEPROM의 메인 부트로더의 부팅순서 항목에 USB저장장치가 포함되도록 변경해주면 됩니다.

참고로 2020/09/03에 정식버전으로 업데이트된 기능이니 걱정말고 따라하셔도 됩니다.

2. 부팅 순서

라즈베리파이의 부팅순서는 다음과 같습니다.

아래의 순서 중 (4)번 항목을 이용하여 부팅 우선권을 USB저장장치에 주도록 하겠습니다.

(1) BCM2711 SoC에 전원을 인가합니다.

(2) 부트로더 리커버리파일(recovery.bin)이 SD카드에 있는지 확인합니다.

(3) SD카드에 리커버리 파일이 있으면 실행해서 EEPROM을 초기화하고, 리커버리파일이 없으면 EEPROM에서 메인부트로더를 읽어들입니다.

(4) 메인 부트로더는 부팅순서설정(BOOT_ORDER CONFIGURATION) 항목을 확인해서 어떤 저장장치(SD카드, 네트워크, USB저장장치)로 부팅할 지 결정합니다.

(5) 지정된 저장장치의 start.elf파일로 부팅과정이 넘어간 뒤에 다시 커널을 불러옴으로써 부팅이 완료 됩니다

3. EEPROM 펌웨어 업데이트 방법

(1) 라즈베리파이 패키지 업데이트

작업에 들어가기 전에 다음과 같은 명령어를 활용하여 라즈베리파이를 업데이트해줍니다.

sudo apt update

sudo apt upgrade

(2) EEPROM 펌웨어 업데이트

라즈비안의 rpi-eeprom 패키지를 활용해 eeprom의 펌웨어를 수정할 수 있습니다.

다음과 같은 명령어를 입력하여 rpi-eeprom패키지를 업데이트해줍니다.

만약 구버전 펌웨어를 사용중이라면 update available이라는 문구가 뜹니다.

sudo rpi-eeprom-update

이번엔 다음과 같은 명령어를 입력하여 펌웨어 업데이트를 해줍니다.

펌웨어 업데이트를 위한 명령어이며, 완료 후 재부팅을 해주세요.

sudo rpi-eeprom-update -a

(3) 라즈베리파이 재부팅

펌웨어 업데이트 후 라즈베리파이를 재부팅 시키면 SD카드에 기록되어있던 부트로더 파일이 EEPROM에 기록됩니다.

이번엔 아래와 같은 명령어를 입력하여 다시 펌웨어 버전을 확인해줍니다.

up-to-date라는 문구가 뜨면 정상적으로 설치가 된 것입니다.

sudo rpi-eeprom-update

이제 다음과 같은 명령어로 USB저장장치가 첫번째 순서로 부팅되도록 지정되었는지 확인해줍니다.

BOOT_ORDER 항목에 0xf41이라는 값이 보이면 부팅순서에 USB가 먼저 지정된 것입니다.

vcgencmd bootloader_config

만약 저 작업이 정상적으로 진행되지 않는다면 다음 명령어를 입력하여 다른 버전의 부트로더를 설치해줍니다.

sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/stable/pieeprom-2020-06-15.bin

설치가 완료되면 재부팅 하신 후 처음부터 다시 따라하신 후 부팅순서를 확인해주세요.

정상적으로 설정이 완료되었다면 다음 명령어로 라즈베리파이를 종료해줍니다.

sudo shutdown -h now

(4) USB에 라즈비안 굽기

이제 설정이 끝났으니 Etcher를 활용하여 라즈비안을 USB에 구워줍니다.

ssh와 wifi를 바로 사용하기 위해 boot 파티션에 설정파일 삽입하는 작업을 잊지 말아주세요.

(5) USB로 부팅

수고하셨습니다.

모든 작업이 끝나 이제 USB를 활용한 부팅이 잘 되실겁니다.

반응형