u-boot ARM Chromebook에서 "grub"과 연결하고 메인라인 커널을 부팅하는 방법

u-boot ARM Chromebook에서 "grub"과 연결하고 메인라인 커널을 부팅하는 방법

Exynos5250 Arm 32비트 CPU(Snow, 모델 xe303c12)를 기반으로 하는 기존 ARM Chromebook 노트북에서 KVM 가상화를 활성화하고 싶습니다. 내가 한 첫 번째 일은 아래 이미지를 SD 카드에 직접 추가하는 것이었습니다.

https://github.com/hexdump0815/imagebuilder/releases/download/220619-01/chromebook_snow-armv7l-jammy.img.gz

그것은 매력처럼 작동하지만 kvm은 비활성화됩니다. 그래서 kvm을 활성화하는 방법에 대한 좋은 문서를 찾기 시작했고 다음을 발견했습니다.

http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/

모든 지침을 따랐고 작동하지만 Ubuntu 13.04 및 14.04에서만 작동합니다. 더 업그레이드된 우분투 버전은 많은 문제를 가져오고 작동하지 않을 것입니다.

그래서 저는 새로운 아이디어를 생각해 냈습니다. 튜토리얼에 설명된 대로 첫 번째 파티션에 가상 개방형 시스템 "인증되지 않은 u-boot"를 어떻게 설치하고 원래 u-boot 후에 다른 파티션을 부팅하는 대신 설치된 커널 u-boot ubuntu jammy와 grub을 연결할 수 있습니까? "hexdump0815"로 생성된 iso 이미지? hexdump0815가 grub을 사용하는지 솔직히 잘 모르겠지만 나중에 설명하겠습니다.

어쨌든 나는 여기를 읽고 아이디어를 얻었습니다.

Grub 부트로더를 2단계 부트로더로 설치하는 방법

그럼 이제 내 프랑켄슈타인 SD 카드의 파티션 내용이 무엇인지 설명하겠습니다.

1) /dev/sdh1 = 알 수 없음 = 16MB. 다음을 수행하여 이 파티션을 만들었습니다.

$ dd if=nv_uboot-snow.kpart of=/dev/sdh1

nv_uboot-snow.kpart 파일은 어디서 구할 수 있나요? 여기에서:

http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-boot-snow.kpart

2) /dev/sdh2 = 알 수 없음 = 16MB. 파티션은 다음 스크립트를 실행하여 생성됩니다.

$ ./scripts/sdcard.sh /dev/sdh

3) /dev/sdh3 = ext2 = 시작

/dev/sdh3 파티션 내에서 다음 파일과 폴더를 복사했습니다(hexdump0815 "chromebook_snow-armv7l-jammy.img.gz" 파일에서 가져옴).

a) dtb-5.18.1-stb-cbe+ = 디렉토리

b) extlinux = 디렉토리

c) 추가 = 디렉토리

d) config.5.18.1-stb-cbe+: 파일

e) initrd.img-5.18.1-stb-cbe+: 파일

f) System.map-5.18.1-stb-cbe+: 파일

g) vmlinux.kpart-5.18.1-stb-cbe+: 파일

h) zImage-5.18.1-stb.cbe+: 파일

"dtb-5.18.1-stb-cbe+" 디렉터리에는 다음 파일이 있습니다.

가) exynos5250-snow.dtb

b) exynos5250-snow-rev5.dtb

다) exynos5250-spring.dtb

"extlinux" 디렉터리에는 다음 파일이 있습니다:

a) extlinux.conf: 다음 내용을 포함합니다:

TIMEOUT 30

DEFAULT linux-snow-rev4

MENU TITLE snow chromebook boot options

# rev4 snow chromebook
LABEL linux-snow-rev4
      MENU LABEL linux rev4 snow
      LINUX ../zImage-5.18.1-stb-cbe+
      INITRD ../initrd.img-5.18.1-stb-cbe+
      FDT ../dtb-5.18.1-stb-cbe+/exynos5250-snow.dtb
      APPEND console=tty1 root=LABEL=rootpart ro rootwait net.ifnames=0 ipv6.disable=1 fsck.repair=yes noresume

# rev5 snow chromebook
LABEL linux-snow-rev5
      MENU LABEL linux rev5 snow
      LINUX ../zImage-5.18.1-stb-cbe+
      INITRD ../initrd.img-5.18.1-stb-cbe+
      FDT ../dtb-5.18.1-stb-cbe+/exynos5250-snow-rev5.dtb
      APPEND console=tty1 root=LABEL=rootpart ro rootwait net.ifnames=0 ipv6.disable=1 fsck.repair=yes noresume

# spring chromebook - untested
LABEL linux-spring
      MENU LABEL linux spring
      LINUX ../zImage-5.18.1-stb-cbe+
      INITRD ../initrd.img-5.18.1-stb-cbe+
      # rev4 snow chromebook
      FDT ../dtb-5.18.1-stb-cbe+/exynos5250-spring.dtb
      APPEND console=tty1 root=LABEL=rootpart ro rootwait net.ifnames=0 ipv6.disable=1 fsck.repair=yes noresume

추가 디렉터리에는 다음 파일이 있습니다.

a) 커널-chromebook_snow-legacy.tar.gz

b) uboot.kpart.cbe-눈

c) uboot.kpart.cbe-snow-대체

d) uboot.kpart.cbe-봄

4) /dev/sdh4: hexdump0818에서 준비한 jammy 사용자 영역의 모든 파일을 여기에 복사했습니다.

그게 다야. 내가 알아내려는 것은 grub 또는 hexdump0815 jammy iso 이미지를 부팅할 수 있는 메커니즘을 사용하여 /dev/sdh1 파티션에 설치된 "인증되지 않은 u-boot"를 링크 로드할 수 있는지 여부와 방법입니다.

다시 말씀드리지만, "확인되지 않은 u-boot"는 u-boot/scripts 디렉터리에 저장된 "build.sh"라는 스크립트에 의해 생성됩니다. 제가 원하는 작업이 불가능할 경우 최신 커널을 사용하여 크롬북 암에서 kvm을 활성화하는 방법을 설명해 주시겠습니까? 저는 ARM 32의 kvm이 더 이상 커널 5.7에서 지원되지 않는다는 것을 알고 있지만 저에게는 5.7보다 낮은 커널을 사용해도 괜찮습니다. 나는 몇 달 동안 이 프로젝트를 진행해 왔습니다. 좀 진전이 있었으면 좋겠습니다. 감사해요.

추신: 며칠 전에 커널 버전을 성공적으로 컴파일했습니다. 5.4.244, 모든 kvm 플래그와 exynos 5250-snow.dtb 파일을 활성화합니다.

관련 정보