microSD로 OS 구동은 도저히 쓸 수 없을 것 같았습니다.
유튜브로 라즈베리파이 구동 영상을 봤을 땐, 생각보다 빠릿빠릿하게 돌아가는 걸 확인할 수 있었습니다. 그런데 직접 돌려보니 실사용이 불가능할 정도로 느렸습니다. 리소스 점유율도 낮은데 자꾸 프리징이 걸렸습니다. 처음엔 기계에 문제가 있나 싶었습니다. 이유를 알고 보니 A1 로고가 붙지 않은 microSD에 OS를 돌려서 그랬던 거였습니다.
일반 microSD는 랜덤IO(4k) 성능이 좋지 않아서 OS를 구동하는데 적합하지 않습니다. 따라서 랜덤IO에 특화된 A1 로고가 붙은 카드를 사용해야 합니다. 저는 이 시점에서 microSD로 OS 구동하는 걸 포기했습니다.
(2020. 10. 9. 추가) A1 로고가 붙은 카드 위에 OS를 설치하면 병목현상 없이 충분히 쾌적하게 사용 가능합니다.
라즈베리파이4에는 USB 3.0 포트(=USB 3.1 Gen1)가 있습니다.
USB 부팅을 한다면 5Gbps(=596MB/s) 정도의 대역폭을 이용할 수 있습니다. 그렇지만 무작정 USB에 OS를 구운 다음에 라즈베리파이에 연결하면 99% 확률로 부팅안됩니다. USB 부팅이 가능하게 된 건 비교적 최근 일이기 때문입니다. 이 포스팅에서는 몇 가지 절차를 통해 라즈베리파이4의 EEPROM을 수정해 USB 부팅을 할 수 있도록 만들어 보겠습니다. 모든 내용은 Windows10과 라즈베리파이 OS 상에서 진행되었으며, 리눅스에서도 가능함을 알립니다.(그러나, 이후 과정을 생각한다면 리눅스 환경에서 진행하는 걸 추천드립니다.)
0단계. 라즈베리파이 OS에서 터미널을 열고 아래의 명령어를 통해 OS를 업데이트합니다.
sudo apt-get update
sudo apt-get upgrade
1단계. 위의 명령어로 파일을 열어서 FIRMWARE_RELEASE_STATUS="critical" 항목에서 critical 값을 stable로 변경합니다. Ctrl +X, 그리고 Y를 눌러서 파일을 저장합니다.
sudo nano /etc/default/rpi-eeprom-update
2단계. EEPROM 부트로더를 업데이트합니다.
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/stable/pieeprom-2020-06-15.bin
파일이 존재하는 경로에 더 상위버전의 이미지가 있다면 그걸로 업데이트하셔도 되지만 개인적으로 2020-06-15버전을 추천합니다.
3단계. 아래 명령을 통해 재부팅 후 부트로더가 잘 적용되었는지 확인합니다.
sudo reboot # 재부팅합니다
vcgencmd bootloader_version # 그 다음 부트로더 버전을 확인합니다.
vcgencmd bootloader_config # 부팅 우선순위를 확인합니다.
vcgencmd bootloader_version | Jun 15로 나오면 성공적으로 업데이트한 겁니다.
vcgencmd bootloader_config | BOOT_ORDER 가 0xf41이면 USB 우선으로 부팅으로 설정된겁니다.
4. 위의 과정이 완료되면 Raspberry Pi OS를 BalenaEtcher로 굽습니다. 우분투를 설치할 경우 추가 작업이 필요합니다. 다음 포스팅을 참조해주세요.
5. (Raspberry Pi OS 한정) 아래 링크에서 에서 최신 펌웨어를 다운 받은 후, boot 폴더 안에 있는 모든 .dat와 .elf 파일을 복사해서 Rasberry Pi OS가 구워져있는 USB에 붙여넣습니다.
쇼핑몰을 좀 찾아보니 64G 고사양 microSD를 단돈 15,000원 선에 팔고 있었습니다. 저는 그런 줄도 모르고 3.0 USB를 사버린 흑우이기에 사 놓은 게 아까워서라도 usb 물려서 써야겠지만 대부분의 경우에는 그냥 microSD를 사는 편이 더 나아 보입니다. USB 부팅은 SSD를 라즈베리파이에 물려서 안정성을 높일 때 의미가 있어 보입니다.
긴 글 읽어주셔서 감사합니다.글이 도움이 되셨다면 왼쪽 아래의 공감버튼과 광고 클릭 부탁드립니다.
고마움을 표현할 수 있는 가장 쉬운 방법입니다.