OpenWrt 펌웨어 eMMC 설치, 용량 확장 등 (BananaPi)
아래 내용 중 OpenWrt 펌웨어 찾고 이미지 굽는 것은 다른 기기에도 적용되는 방법이니 초보분들은 바나나파이 기기가 아니어도 참고하세요.
바나나파이 OpenWrt 펌웨어를 eMMC에 설치하다가 머리카락이 좀 많이 빠졌습니다. 급하게 구매한 USB TTL 케이블이 불량이었을 줄이야.. 아무리해도 안돼서 내려칠 뻔하다가 가격 때문에 주먹만 꽉 쥐었습니다. 제가 삽질한 결과를 몇가지 공유합니다.
목차
BPI R4 OpenWrt 펌웨어 설치 순서
- SD카드 설치
- U-Boot에서 NAND 설치
- U-Boot에서 eMMC 설치
이 순서대로 해야합니다. 바로 eMMC로 안됩니다. 그럼 왜 SD카드에서 eMMC로 바로 펌웨어를 못 올리나? 그 이유는 SD 카드와 EMMC 장치는 하나의 SOC 컨트롤러를 공유하기 때문이라고 합니다. 그래서 SD카드 – NAND 부팅 모드로 전환 후 – EMMC 이미지를 올려야 합니다. 마지막으로 부팅 모드를 EMMC 부팅 모드로 변경하면 돼요.
OpenWrt에 익숙하신 분들이라면 위 과정이 매우 쉽겠지만, 본격적으로 사용하기위해 처음해보는 사람에게는 많이 헷갈릴 수 있습니다.
BananaPi 공식 문서 https://docs.banana-pi.org/en/BPI-R4/GettingStarted_BPI-R4를 적극 활용하세요.
여기에 온보드 eMMC에 이미지를 굽는 방법이 나와있긴 한데 바나나파이에서 제공하는 펌웨어 사용해야하고, 중간에 뭐가 꼬였는지 저는 실패했어요. 그래도 공식 문서의 방식을 먼저 따라하세요. SD카드, USB만 있으면 되기 때문에 덜 번거롭습니다.
펌웨어 찾기
1.OpenWrt 공홈
바나나파이 펌웨어 https://docs.banana-pi.org/en/BPI-R4/BananaPi_BPI-R4#_system_image 여기서 찾으실 수 있습니다.
저는 OpenWrt 스냅샷을 이용 했습니다. https://firmware-selector.openwrt.org 접속 후 우측 버전을 선택한 후 모델명으로 검색하시면 됩니다.

SDCARD.IMG.GZ 파일을 받으세요.
2.바나나파이 제공 펌웨어
How to burn Image to SD card 여기에서 SDcard/NAND/eMMC 부분을 차례대로 보시면 됩니다.
3.ImmortalWrt
OpenWrt Fork 버전으로 중국 본토 사용자들에게 좀 더 특화되었다고 합니다. https://github.com/immortalwrt/immortalwrt 당연히 오픈소스이니 걱정하실 것은 없고요. https://firmware-selector.immortalwrt.org/ 여기서 펌웨어 버전별로 받으실 수도 있습니다.
장점은 더 많은 패키지가 포팅되어있고, 더 많은 라우터를 지원한다고 합니다. 상당수의 제품들이 중국에서 제조되기 때문이기도하고, 가성비를 위해 중국 내수 제품을 구매하시는 분들도 계셔서 이런것도 있으니 알아두시면 도움될 것 같아서 공유합니다.
이미지 굽기
공식 문서는 Balena Etcher를 예로 들었지만, 이유를 모르겠으나 플래싱 오류가 생겨서 저는 Rufus 사용했습니다. 포터블 버전이있어서 좋아요.
설치전에 USB to TTL 변환 모듈이 필요합니다.

저는 이거 샀어요. https://link.coupang.com/a/c06ldS (이 링크는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.) 저 처럼 급하게 구매하지 마시고.. 알리나 타오바오에서 구매하시면 훨씬 저렴합니다. 저렇게 점퍼선을 하나씩 원하는 곳에 끼울 수 있는게 좋습니다.
준비물
- SD카드
- USB-TTL(UART) 케이블
- 꼭! 3.3V 여야 합니다!
- 위 제품은 5V, 3.3V, 1.8V 고를 수 있어요. 나중에 혹시 다른 곳에 사용할까봐 선택 가능한 제품으로 구매했습니다.
- Putty
설치
필요한 것들을 하나씩 알아봅시다.
Putty
https://putty.software 다운로드 받아서 설치.

- Serial Line to connect to: 장치관리자에서 포트(COM & LPT) 쪽에서 꽂은 USB를 확인하셔야 합니다. 저는 COM4 였어요.
- Speed: 115200 (숫자 틀리면 텍스트가 제대로 안나옵니다.)
- Data bits: 8
- Stop bits: 1
- Parity: None
- Flow control: None
전원 꽂고 멍 때리면 아래처럼 나옵니다.

이 화면으로 넘어가면 부팅된겁니다. 전원을 꽂고 메뉴화면에 나오면 바로 방향키 아무거나 누르세요.

기기 왼쪽에 있습니다. 올려 내려 계속 해야하니 화면 띄워놓고 필요에 따라 선택합니다.
- 처음에는 둘다 내려서 1,1 상태에서 SD카드로 부팅 후 NAND로 옮기고
- 0,1로 바꿔서 NAND로 부팅 후 eMMC로 옮깁니다.
- 다 하면 1,0 eMMC 부팅모드로 사용.
SD card > NAND

7. Install bootloader, recovery and production to NAND 누르면 낸드에 설치됩니다.
전원끄고 NAND 모드로 변경

9. Install bootloader, recovery and production to eMMC

웹 브라우저에서 192.168.1.1 (보통 이 주소)로 접속해서 이 화면이 뜨면 성공. 패스워드 설정으로 시작합니다.
이렇게 끝나지 않습니다.
eMMC 파티션 확장
저는 여기서 시간을 이렇게 쓸 줄 몰랐습니다.

내 eMMC 8G 인데??? 왜 429.70MiB가 최대 용량으로 뜨는거지???
https://ablog.jc-lab.net/367 이 분이 간단 명료하게 잘 정리해주셨는데 저는 저 방식이 먹히지 않았습니다. 참고하시라고 링크해둡니다. 가독성 좋게 아래 정리해둘게요. 차례대로 하시면 됩니다.
eMMC 설치 후 NAND 부팅 모드에서 아래 명령어를 실행합니다.
# 1. parted 실행
parted /dev/mmcblk0
# 2. (parted) 프롬프트가 나타나면 다음을 입력:
print free
# 3. GPT 오류 메시지가 나타나면 'fix' 입력
fix
# 4. End of disk warning이 나타나면 'fix' 입력 (전체 공간 사용)
fix
# 5. p5 파티션 크기 조정 시작
resizepart 5
# 6. 'End? [537MB]?' 질문에 다음을 입력:
7818MB
# 7. 변경사항 저장 후 종료
quit
# 8. 시스템 재부팅
reboot저는 GPT, Gemini랑 대화하면서 이것저것 시도하다 하다가 됐습니다; 아 이거 왜 안되지? 했는데 eMMC로 부팅후 그냥 됐더라고요.. 그래서 제가 어떻게 했는지 설명드리기가 어렵네요.

여튼 따로 리사이징을 해줘서 저렇게 7.20GiB가 나와야 합니다. 용량이 넉넉하니 마음이 푸근하네요.
대략적으로 말씀드리면 cfdisk 패키지 설치후 p5 파티션 삭제 후 다시 작업하는거였어요. Type은 Linux filesystem으로

비슷한 질문이 Reddit에 올라왔는데 댓글 답변이 꽤 많습니다. 여기서도 방식이 통일되지 않은 것을 보면.. – Why is /overlay only 431MB on my 8GB eMMC? (레딧 자체에서 자동 번역된 글 입니다. 뭔가 이상하면 원문으로 보세요.)
글이 너무 길어지니 다른 부분은 생각날 때 따로 작성하겠습니다.
오 신기하네요
진짜 일반 운영체제 설치하듯이 진행되는거군요
엡 리눅스 기반이고 재미있어요! 라즈베리파이 이런거 중고로 구해서 장난감처럼 가지고 놀아보는것도 좋아요.