Brunch Framework

덤프버전 :


1. 개요
2. 상세
3. 주의사항
4. 설치법과 준비물
4.1. 사전제작된 Alpine Linux 부팅 디스크 이미지를 사용해 컴퓨터에 직접 설치하기


1. 개요[편집]


GitHub페이지

크롬 OS를 일반 PC에 설치할 수 있게 도와주는 리눅스 bash 스크립트와 크롬북 락 탐지의 회피가 가능한 부트로더를 제공한다. 이 스크립트를 사용하면 구글플레이 연결과 플레이스토어를 이용한 안드로이드 앱 설치가 가능하다.


2. 상세[편집]


ChromeOS는 크롬북을 위한 운영체제이다. 이 크롬북을 기반으로 하는 네트워크 서비스 모델이 구글의 사업의 한 축인 만큼[1], 크롬북 제품마다 천차만별의 하드웨어 사양을 가지더라도 구글에서는 제품의 사양에 일일이 맞춰 ChromeOS를 최적화 하는 것 까지 직접 관리를 하고 있다. 물론 표준 설계 사양과 그 변형에 대한 조율은 사전에 협의가 있었을 것이다. 다만 이 인증 범위 외의 하드웨어에서 ChromeOS가 돌아가는것은 인증비용을 받아내는 사업모델을 흔들어버릴 수 있기에, 크롬북에 하드웨어적으로 락을 걸고 비인증 하드웨어에 ChromeOS를 설치할 경우 락을 인식하지 못해 정상적인 구동이 불가하게 하는 방식을 취했다.[2] 대신 구글 서비스 탑재가 불가능한 크로뮴 OS를 개방하고 알아서 놀아라 하는 것이다.

Brunch Framework는 비인증 하드웨어를 특정한 인증 하드웨어로 오인식하게 만들어 ChromeOS를 구동하게 도와주는 부트로더 형식의 크랙[3]과, 이 크랙을 ChromeOS 리커버리 파일과 조합해 부팅 디스크를 만들어주는 리눅스 bash 스크립트로 구성된다. 이 스크립트는 리눅스 계보 중 데비안/페도라/아치 계열이면 무난하게 구동이 가능하다.[4] 윈도우에서도 WSL2 에뮬레이션을 이용하여 작업할 수 있다. 비슷한 기능으로 chromefy가 있다.

brunch는 웬만한 컴퓨터와 드라이버가 거의 다 지원된다. 또한, GitHub에 이슈를 남기면 개발자와 소통도 잘 되고 가능한 건 다음 업데이트[5]에 반영해준다.


3. 주의사항[편집]


  • UEFI 부팅이 가능한 64비트 환경에서만 사용할 수 있다.
  • 현재 시점에서는 엔비디아 GPU는 지원되지 않으며, 아직 준비 중이라고 한다.[6] 다만 NVIDIA Optimus와 같이 다른 GPU가 있는 시스템에서는 사용 가능.
  • 크롬 OS 업데이트는 기본적으로 비활성화되어 있다. 따라서 grub.cfg[7]의 'kernel' 줄 부분을 수정하지 않는 한 업데이트되지 않는다. 따라서 수동으로 ctrl+alt+T을 입력해 셀 창을 연 후는 다음과 같은 방법으로 업데이트할 것을 추천한다.
물론, grub.cfg을 root 권한으로 열어 'kernel' 행 맨 끝부분에 "options=enable_updates"을 붙이고 저장 후 재부팅하여 업데이트을 활성화하는 방법이 있지만 크롬 OS가 부팅되지 않는 등 예기치 못한 문제가 발생할 수도 있으므로 권장하지 않는다.
  • 안전한 업데이트를 위해 pwa를 사용할 수 있다. Brunch Framework와 사용중인 ChromOS 리커버리 계보의 최신버전을 함께 적용할 수 있게 도와주는 크롬브라우저 웹앱 기반 툴이다.


4. 설치법과 준비물[편집]


자신이 영어를 어느 정도로 이해할 수 있다면, 그냥 공식 홈페이지의 README.md를 읽어도 좋다. 상시로 업데이트가 될 뿐더러, 하단에는 생략된 여러 내용들이 있기 때문. 링크
  • 설치 흐름
단계
Windows10[8] 및 Windows 11
Linux
작업 준비
WSL 설치[9]
WSL2로 변경[10]
리눅스 배포판 설치[11]
시작 메뉴에서 리눅스 시작
리눅스[12]가 설치된 컴퓨터 부팅
리눅스 shell에서
툴 패키지 설치
pv[13], cgpt[14], unzip[15], tar[16]
이미지 기초 파일 준비
대상 하드웨어에 맞는 ChromeOS 리커버리 이미지 및 Brunch Framework 다운로드 및 파일 압축 해제[17]
설치 스크립트 실행
물리디스크에 직접 설치[18]할 수 있다.
sudo bash chromeos-install.sh -src <ChromeOS 리커버리 파일> -dst <물리디스크 경로>
디스크이미지(img)로 만들 수 있다.[19] [20] [21]
sudo bash chromeos-install.sh -src <ChromeOS 리커버리 파일> -dst <만들어낼 img파일 경로>

  • 준비물
    1. brunch framework(tar.gz 파일) 준비[22] 링크
    2. Recovery 다운로드 링크
      • Samus: 1~3세대의 구형 인텔 CPU[23]
      • Rammus: 4세대~9세대 인텔 CPU[24] [25]
      • Volteer: 10세대 및 11세대의 인텔 CPU[26]
      • Brya: 12세대 및 13세대 인텔 CPU[27]
      • Nocturne: 4~9세대 인텔 CPU를 사용하는 시스템에서 카메라 문제가 있는 경우 rammus 리커버리 대체적용 가능[28]
      • Zork: AMD RYZEN CPU[29]
      • Grunt: Stoney Ridge와 같은 Ryzen 이전의 구형 AMD CPU
      • CPU별 ChromeOS 지원 현황
    3. Windows 10 마이크로소프트 스토어에서 Ubuntu LTS 설치하기
    4. Rufus 다운로드하기 링크
    5. 14G 이상 USB 준비하기 (FAT32 포맷, GPT 포맷 이용 추천)

  • Windows에서 USB에 (Live USB, USB 부팅시 외장하드처럼 OS 이용 가능) 설치법
    1. 관리자 계정 로그인
    2. Ubuntu LTS에서 관리자 권한으로 다음 명령어 실행
다운로드 폴더에 파일이 저장되어 있다면 다음 명령어를 실행하자.
  1. Rufus 관리자 권한 실행
UEFI FAT32로 포맷, 이미지 파일 이식
  1. USB로 부팅하기
만약 보안(안전) 부팅 시 "Verfification failed: (15) Access Denied"라는 메시지가 뜨면 'OK->Enroll key from disk->EFI-SYSTEM->brunch.der->Continue' 순으로 진행하고 재부팅 후 다시 부팅하면 된다.
  1. 부팅 메뉴에서 Chrome OS 선택 후 부팅
  2. 언어 및 접근성 화면에서 CTRL+ALT+F2 누르기
  3. shell 화면에서
  1. 컴퓨터 재시작하기
  2. Wi-Fi가 안 되면 우선 USB 테더링이나 유선 LAN 이용하기. 리커버리 이미지를 수정하는 방법[30]도 있지만 아래의 방법으로 와이파이를 설정하여 설정할 수 있다.

초기 설정화면에서 CTRL+ALT+F2를 눌러 터미널로 진입하고
후에 나타나는 편집기에서 brunch_bootsplash=default 뒤에 한 칸 띄우고
으로 옵션[31]을 입력하고 CTRL+X 및 Y, 엔터를 쳐 저장하고 CTRL+ALT+F1으로 터미널을 빠져나간다. 그 후 재부팅하여 조금 기다린 후 설정을 수행하면 된다.

  • 리눅스 배포판에서 설치하는 방법
    1. 리눅스 배포판으로 부팅
리눅스가 설치된 시스템에서 해도 되고 라이브 부팅 환경에서 해도 된다.
  1. 관리자 권한으로 패키지 설치
    1. Debian/Ubuntu 계열 배포판
  1. Fedora
  1. Arch Linux 계열 배포판 - Arch Linux 계열에서는 AUR도 같이 사용해야 한다.
  1. 설치할 파티션을 마운트 - part에 파티션 이름을 입력해주면 된다.[32]
  1. Brunch Framework가 저장된 경로에서 터미널을 연 후 명령어 입력
  1. GRUB 항목에 등록

리눅스에서 지원되는 드라이버를 이용하는 Wi-Fi, 터치, 카메라 등이 가능하다. 문제가 발생한 경우 이슈를 남기면 개발자와 같이 해결할 수 있다.

설치 과정에 문제가 있을 경우 공식 트러블슈팅 페이지를 참조할 수 있다. 영어를 못해도 크롬 계열 브라우저를 쓴다면 센스있게 번역기능을 사용해보자.


4.1. 사전제작된 Alpine Linux 부팅 디스크 이미지를 사용해 컴퓨터에 직접 설치하기[편집]


ChromeOS 설치용 USB 디스크를 제작하기 위해 커스텀[33]한 디스크 이미지로, HDD/SSD 등의 내장 스토리지에 직접 설치하고자 할 때 간편하게 사용할 수 있다.

  1. 준비물
    • 컴퓨터 / USB 제작 작업용 컴퓨터(윈도우 또는 리눅스)와 ChromeOS를 설치할 컴퓨터(이 컴퓨터는 UEFI를 지원해야 한다.)
    • 이미지 작업용 툴 / 윈도우는 Rufus, 리눅스는 GNOME-DISK 툴이나 dd 명령을 사용한다.
    • 부팅 디스크용 USB / 이미지 용량이 8GB이므로 16GB 이상 필요
    • 부팅 디스크 이미지 파일 다운로드 / 윈도우에서는 zip 파일 상태로 그대로 유지하고, 리눅스에서는 적당한 장소에 압축을 해제한다.
    • Brunch Framework / 완전히 gz 압축과 tar 묶음을 풀어둔다.
    • ChromeOS 리커버리 / 완전히 zip 압축을 해제한다.
  2. 작업용 컴퓨터에서 USB 디스크 제작
    • 윈도우에서는 다음과 같이 진행한다.
      • Rufus를 실행하여 부팅디스크로 만들 USB를 지정 후, 부팅 디스크 이미지 파일을 zip파일 상태 그대로 선택한 뒤 작업을 진행한다. 작업 후 해당 USB에는 부팅 파티션, swap 파티션, 리눅스 시스템 파티션, FAT32 저장소 파티션과 빈 공간이 존재하게 된다.
      • 파일 탐색기로 FAT32 저장소에 직접 파일을 복사할 수 있다. FAT32 저장소에 완전히 압축이 풀린 Brunch Framework 내용물과 ChromeOS 리커버리 파일을 복사한다. 약 7기가 정도의 FAT32 저장소가 보이지 않을 경우 USB를 제거했다가 다시 끼워준다.
    • 리눅스에서는 root 계정을 이용해 다음과 같이 진행한다.
      • GNOME-DISK 툴을 사용해 이미지 복구를 하거나 dd 명령으로 USB에 이미지를 씌워줄 수 있으며, 윈도우의 경우와 마찬가지로 작업 후 해당 USB에는 부팅 파티션, swap 파티션, 리눅스 시스템 파티션, FAT32 저장소 파티션과 빈 공간이 존재하게 된다. dd 명령은 다음과 같이 실행한다.
  • USB의 FAT32 파티션을 적당한 디렉토리에 마운트하고, 압축이 풀린 Brunch Framework 내용물과 ChromeOS 리커버리 파일을 마운트한 디렉토리에 복사한다.
  • ChromeOS를 설치할 컴퓨터에서 USB로 부팅한다.

    주의 : 설치 대상 디스크가 완전히 초기화된 다음에 설치되므로 중요한 자료가 있다면 미리 백업해두자.
  • 정상적으로 작업이 되었다면 Alpine Linux로 부팅된다. 로그인 계정은 root, 비밀번호는 없으니 그냥 엔터를 입력한다.
  • 설치 대상 디스크의 경로를 확인한다.
  • 다음과 같이 입력한다.[34]
  1. 작업이 완료되면 poweroff 명령으로 컴퓨터 전원을 끄고 USB를 제거한 뒤 다시 전원을 켠다. USB는 차후 다른 컴퓨터에 ChromeOS를 설치할 때 재활용하거나, 파티션을 모두 삭제하고 exFAT 단일 파티션을 작성해 통상적인 이동식 디스크로 쓸 수 있다.
파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-10-21 16:47:41에 나무위키 Brunch Framework 문서에서 가져왔습니다.

[1] 하드웨어 제조사로부터 돈을 받고 설계를 인증해줬으니까.[2] 마이크로소프트는 윈도우의 소스를 완전히 개방하지 않은 채 유료 정책을 고수하고 있지만, 하드웨어 제조사에게는 성능 향상이라는 대의 앞에서 관대한 편이라 윈도우를 구동할 수 있는 기준만을 주고 알아서 맞추게 한다. 애플은 하드웨어와 MacOS를 자체적으로 제작하기 때문에 3자가 껴들 여지가 없다.[3] 구동방식만을 보고 에뮬레이션이라고 말할 수도 있겠지만, 이건 못하게 막아놓은걸 회피하는 바이패싱이고 법률적인 문제를 제기할 수 있는 행위이기 때문에 크랙이 맞다. 단지 구글 생태계를 구축하는데 도움이 되기에 큰 문제를 삼지 않고 방임하는 것이니 오해하면 안된다.
비슷한 사례로, 안드로이드 또한 하드웨어 제조사들에게 라이센스 비용을 받아내는 한편, AOSP를 풀어서 온갖 하드웨어에 각종 커스텀롬이 활개치게 하고 있다. 안드로이드 생태계를 구축하고 범위를 확장하려는 것이다. 하지만 커스텀롬 제작자들이 GAPPS라고 하는 구글 제공 앱을 커스텀롬에 포함해 배포하는 순간 법률적 문제가 발생하게 된다. 이 때문에 제작자들은 AOSP 기반 변형판 까지만 일반 사용자에게 공개하고, 사용자가 커스텀롬에 GAPPS를 필요로 할 경우 셀프로 설치할 수 있도록 가이드만 제공한다. 구글에서는 플레이 스토어를 통한 수익 발생 범위가 넓어질 수 있으니 가이드 제공 까지는 방임하는 것이다.
[4] GNU Coreutils를 이용하는 리눅스에서 정상 작동한다. Alpine Linux처럼 Busybox를 사용하는 배포판에서는 스크립트 구동 중에 오류가 발생하므로 필수 패키지에 더하여 coreutils 및 bash 패키지를 설치해주면 정상적으로 작동할 수 있다.
TinyCore Linux처럼 스크립트 구동에 필요한 패키지(cgpt)가 제공되지 않는 경우도 있다.
[5] 1주일에 2번씩하기도 한다.[6] 엔비디아가 리눅스용 드라이버 소스를 공개하기 전까지는 요원한 일이고, 공개하더라도 이건 ChromeOS의 역할이지 Brunch Framework의 역할이 아니다. 현실적으로 BF로는 불가능하기도 하고.
크롬북의 컨셉을 생각하면 외장 GPU를 달아놓은 고가의 노트북에서 ChromeOS가 굴러가는게 불가능이 아니라 파격이겠지만, 사용자라면 그러한 사양에서 기능에 제한을 둔 ChromeOS보다는 윈도우나 리눅스가 훨씬 낫기 때문에 선택할 이유가 없다. 개발자는 입장이 다를 수도 있겠지만.
[7] 크롬 OS가 설치된 디스크의 (EFI 파티션)\efi\boot 폴더에 있다.[8] 1903 빌드 18362 이상[9] 제어판 - 프로그램 및 기능 - Windows 기능 켜기/끄기 - Hyper-V, Linux용 Windows 하위 시스템 체크[10] https://learn.microsoft.com/ko-KR/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package 참조[11] Microsoft Store에서 다운로드. Ubuntu 추천[12] Brunch Framework는 Busybox가 아닌 GNU coreutils가 적용된 리눅스에서 정상 작동한다. Ubuntu 추천[13] 진행률 확인 툴[14] GPT 디스크 및 파티션 생성 툴[15] zip 파일 압축 해제 툴[16] tarball 파일 핸들링 툴. 일반적으로 기본 설치되어 있음.[17] ChromeOS 리커버리 이미지는 bin 확장자가 남도록 zip 압축 해제. 파일이름이 너무 길면 축약 변경 가능.
Brunch Framework는 완전히 gz압축과 tar 묶음을 풀고 리커버리 이미지와 같은 디렉토리에 넣어둔다.
만약 Brunch Framework의 tar 묶음을 윈도우에서 풀었다면 스크립트 실행권한을 인지하지 못한다. 이 경우 리눅스에서 해당 디렉토리로 이동해 sudo chmod +x chromeos-install.sh 명령으로 실행권한을 주자.
[18] 스크립트 실행 전 shell에서 lsblk -e7 명령이나 fdisk -l 명령으로 대상 디스크를 명확히 확인해두자.[19] 이 img 파일은 DD 형식의 디스크 이미지로, 윈도우에서는 Rufus를 이용해 디스크에 직접 기록이 가능하고, 리눅스에서는 etcher 툴을 사용하거나 dd 명령으로 디스크에 직접 기록하거나 GRUB 부트로더 설정에 등록할 수 있다.[20] 2023년 5월 현재 가장 최신인 Brunch Framework r111의 설치 스크립트 문제인지 img 파일로 만드는 방식이 제대로 작동하지 않는다.[21] 이렇게 만들어진 img 파일은 구글에서 배포하는 목적에서 벗어나고 변조된 형태인지라 대외 공개 시 저작권 문제의 소지가 있다.[22] 4세대 하스웰 이후 CPU만 제대로 지원하는 것으로 명시되어 있으나, 최신 버전인 r111도 구형 기기에서 사용 가능하다.[23] 구글 크롬북 픽셀용 리커버리.
이 리커버리는 해당 기기의 1세대(2013년 출시) 지원 수명인 8년을 채우고 버전 91(2021년)을 마지막으로 추가 빌드 지원이 중단됐으며, 2023년 5월 현재 버전 91 설치 시 지원 중단 및 기기 변경 요구 알림이 뜬다. 일단 사용상 문제는 없지만 크롬브라우저 버전 95 이하에서는 심각한 보안 문제가 다수 있다는 점을 감안해야 한다.
[24] ASUS Chromebook C423/C424/C425용 리커버리.
설치 설명서에는 1세대부터 적용이 가능한 것으로 기술되어 있으며, 2세대 샌디브릿지에서 구동했다는 사례도 있다.(1세대 구동 사례는 확인되지 않음) 1세대는 버전 81, 2/3세대는 버전 101이 마지막 지원 가능 버전으로, 위의 Chromium Dash 페이지에서는 아무리 찾아도 안나오니 1세대용 다운로드 링크 2/3세대용 다운로드 링크를 이용하자.
[25] Brunch Framework r111과 리커버리 버전 111을 3337U에 설치해보니 hyperthread가 제대로 작동하지 않고, 구글플레이가 연결되지 않아 플레이스토어를 이용할 수 없었다. hyperthread는 베이스 기기가 셀러론이기 때문에 기본적으로 꺼져있으니 커널 설정에서 사용 옵션을 켜주면 된다. 이때문에 ChromeOS가 오작동할 수 있는 점은 주의 필요. 구글플레이는 4세대부터 추가된 CPU 명령어 셋을 사용하는 것으로 파악되기 때문에 3세대에서는 뭘 해봐도 답이 없다.[26] 다수 기기에 적용된 리커버리. 특정기기가 아닌 이유는 코로나19 바이러스 창궐 시기에 홈스쿨링/재택근무 용도의 크롬북 수요 폭증과 많은 제조사들이 크롬북 생산에 집중했기 때문에 표준화된 하드웨어를 대상으로 한 범용 리커버리로 파악된다.[27] 다수 기기에 적용된 리커버리. 인텔이 CPU 코어 설계를 새로이 하면서 범용 목적의 OS 최적화를 한 것으로 파악된다.[28] 크롬북 픽셀 슬레이트용 리커버리.[29] 4000번대부터는 버전 5.10 이상의 커널 필요[30] https://github.com/sebanc/brunch#modify-the-grub-configuration[31] 각 옵션은 https://github.com/sebanc/brunch 의 Framework Steps에서 확인 할 수 있다. 또한 추가적인 옵션을 입력할 때에는 쉼표를 입력하고 띄어쓰기 없이 옵션을 추가로 입력한다.[32] ex) NVMe SSD가 탑재된 시스템에서는 nvme0nXpY, SATA 저장장치는 sdXY, eMMC 내장메모리는 mmcblkXpY[33] Alpine Linux 기본 설치, 필수 패키지 설치, 파티션 조정(root 파티션 최소화 및 윈도우와의 호환을 위해 FAT32 파티션 추가)과 마운트 포인트 지정이 이미 수행된 상태를 이미지화 했으며, 번잡한 준비 과정을 대폭 생략해준다. USB 디스크에 이미지를 적용하고 Brunch Framework와 ChromeOS 리커버리 파일만 복사하면 된다.[34] FAT32 파티션은 이미 /root/fat32 디렉토리에 마운팅된 상태로, 이미 root 계정으로 로그인했고 FAT32 파티션에 들어있는 파일은 실행권한이 자동으로 지정되어 있으니 권한과 관련된 과정은 필요치 않다.