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でのみ機能します。よりアップグレードされたUbuntuバージョンは多くの問題をもたらし、機能しません。

だから私は新しいアイデアを思いついた。チュートリアルで説明されているように、最初のパーティションに仮想オープンシステム「認証されていないu-boot」をどのようにインストールし、元のu-bootの後に別のパーティションを起動するのではなく、インストールされたカーネルu-boot ubuntu jammyとgrubを接続できますか? 「hexdump0815」で作成されたisoイメージ? hexdump0815 が grub を使用しているかどうかは正直にはわかりませんが、後で説明します。

とにかく私はここを読んでアイデアを得ました。

Grubブートローダを2段階ブートローダとしてインストールする方法

それでは、私のフランケンシュタインSDカードのパーティションの内容が何であるかを説明します。

1) /dev/sdh1 = Unknown = 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 = Unknown = 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+" ディレクトリには次のファイルがあります。

a) exynos5250-snow.dtb

b) exynos5250-snow-rev5.dtb

c)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」というスクリプトによって生成されます。私が望むことができない場合は、最新のカーネルを使用してChromebookアームでkvmを有効にする方法を説明しますか?私はARM 32のkvmがもはやカーネル5.7でサポートされていないことを知っていますが、私には5.7より低いカーネルを使用しても問題ありません。私は数ヶ月間このプロジェクトを進めてきました。ちょっと進展があってほしいです。ありがとうございます。

PS:数日前にカーネルバージョンを正常にコンパイルしました。 5.4.244、すべてのkvmフラグとexynos 5250-snow.dtbファイルを有効にします。

ベストアンサー1

おすすめ記事