How u-boot can chain "grub" and booting a mainline kernel on my ARM Chromebook

Hello.
I would like to enable KVM virtualization on my old ARM Chromebook laptop,based on the Exynos5250 arm 32 bit cpu aka snow,model xe303c12. The first thing I did has been to dd the image below directly on the sd card :
https://github.com/hexdump0815/imagebuilder/releases/download/220619-01/chro...
and it worked like a charm,but kvm was disabled. So,I have started to look for a good documentation to understand how to enable kvm and I found this :
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
I've followed all the instructions and it worked,but only with Ubuntu 13.04 and 14.04. More upgraded ubuntu versions give a lot of problems and they don't work.
So,I've thought about a fresh idea. What about to install the virtual open systems "non-verified u-boot" on the first partition like explained in the tutorial,and,instead of starting another u-boot after the original,can I chain grub with the kernel installed for example by the ubuntu jammy iso image created by "hexdump0815" ? To be honest I'm not sure if hexdump0815 used grub,but I will explain this later.
Anyway,I've got the idea by reading here :
https://unix.stackexchange.com/questions/599141/how-to-install-grub-bootload... So,now,I'm going to explain what's the content of the partitions on my Frankenstein sd card.
1) /dev/sdh1 = unknown = 16 MB. I've created this partition by doing :
$ sudo dd if=nv_uboot-snow.kpart of=/dev/sdh1
Where I've got the file nv_uboot-snow.kpart ? From here :
http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-bo...
2) /dev/sdh2 = unknown = 16 MB. This partition has been created by executing the following
script :
$ sudo ./scripts/sdcard.sh /dev/sdh
3) /dev/sdh3 = ext2 BOOT.
Inside the partition /dev/sdh3 I have copied the following files and folders (taken from the hexdump0815 "chromebook_snow-armv7l-jammy.img.gz" file :
a) dtb-5.18.1-stb-cbe+ = directory b) extlinux = directory c) extra = directory
d) config.5.18.1-stb-cbe+ : file e) initrd.img-5.18.1-stb-cbe+ : file f) System.map-5.18.1-stb-cbe+ : file g) vmlinux.kpart-5.18.1-stb-cbe+ : file h) zImage-5.18.1-stb.cbe+ : file
Inside the directory "dtb-5.18.1-stb-cbe+" there are the following files :
a) exynos5250-snow.dtb b) exynos5250-snow-rev5.dtb c) exynos5250-spring.dtb
Inside the directory "extlinux",there is the following file :
a) extlinux.conf : that has the following content :
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
Inside the extra directory there are the following files :
a) kernel-chromebook_snow-legacy.tar.gz b) uboot.kpart.cbe-snow c) uboot.kpart.cbe-snow-alternative d) uboot.kpart.cbe-spring
4) /dev/sdh4 : inside here I have copied all the files of the jammy userland prepared by hexdump0818.
That's all. What I want to do is if and how can I chainload the "non-verified u-boot" that is installed on the partition /dev/sdh1 with grub or whatever mechanism it is able to boot the hexdump0815 jammy iso image.
As I repeat,the "non-verified u-boot" is produced by the script called "build.sh",that's stored inside the u-boot/scripts directory. And if what I want to do is impossible,can you explain to me how I can enable kvm on my chromebook arm,using the most recent kernel possible ? I already know that the support for kvm on arm 32 has been dropped on kernel 5.7,but for me to use a lower kernel than 5.7 is ok. I've been working on this project for a lot of months. I would like to see some progress. Thanks.

On Sat, Jul 1, 2023 at 1:25 PM Mario Marietto marietto2008@gmail.com wrote:
Hello.
I would like to enable KVM virtualization on my old ARM Chromebook laptop,based on the Exynos5250 arm 32 bit cpu aka snow,model xe303c12.
Upstream Linux kernel dropped support for running virt on 32 bit hosts (you can still run a 32 bit guest on a 64 bit host) in the upstream linux kernel with the 5.7 release (May 31st, 2020) so you'll probably have to run a 5.4.x LTS kernel rather than 5.18.x (not sure why you chose that one) at the very least.
The first thing I did has been to dd the image below directly on the sd card :
https://github.com/hexdump0815/imagebuilder/releases/download/220619-01/chro...
and it worked like a charm,but kvm was disabled. So,I have started to look for a good documentation to understand how to enable kvm and I found this :
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
I've followed all the instructions and it worked,but only with Ubuntu 13.04 and 14.04. More upgraded ubuntu versions give a lot of problems and they don't work.
So,I've thought about a fresh idea. What about to install the virtual open systems "non-verified u-boot" on the first partition like explained in the tutorial,and,instead of starting another u-boot after the original,can I chain grub with the kernel installed for example by the ubuntu jammy iso image created by "hexdump0815" ? To be honest I'm not sure if hexdump0815 used grub,but I will explain this later.
Anyway,I've got the idea by reading here :
https://unix.stackexchange.com/questions/599141/how-to-install-grub-bootload... So,now,I'm going to explain what's the content of the partitions on my Frankenstein sd card.
- /dev/sdh1 = unknown = 16 MB. I've created this partition by doing :
$ sudo dd if=nv_uboot-snow.kpart of=/dev/sdh1
Where I've got the file nv_uboot-snow.kpart ? From here :
http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-bo...
- /dev/sdh2 = unknown = 16 MB. This partition has been created by
executing the following
script :
$ sudo ./scripts/sdcard.sh /dev/sdh
- /dev/sdh3 = ext2 BOOT.
Inside the partition /dev/sdh3 I have copied the following files and folders (taken from the hexdump0815 "chromebook_snow-armv7l-jammy.img.gz" file :
a) dtb-5.18.1-stb-cbe+ = directory b) extlinux = directory c) extra = directory
d) config.5.18.1-stb-cbe+ : file e) initrd.img-5.18.1-stb-cbe+ : file f) System.map-5.18.1-stb-cbe+ : file g) vmlinux.kpart-5.18.1-stb-cbe+ : file h) zImage-5.18.1-stb.cbe+ : file
Inside the directory "dtb-5.18.1-stb-cbe+" there are the following files :
a) exynos5250-snow.dtb b) exynos5250-snow-rev5.dtb c) exynos5250-spring.dtb
Inside the directory "extlinux",there is the following file :
a) extlinux.conf : that has the following content :
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
Inside the extra directory there are the following files :
a) kernel-chromebook_snow-legacy.tar.gz b) uboot.kpart.cbe-snow c) uboot.kpart.cbe-snow-alternative d) uboot.kpart.cbe-spring
- /dev/sdh4 : inside here I have copied all the files of the jammy
userland prepared by hexdump0818.
That's all. What I want to do is if and how can I chainload the "non-verified u-boot" that is installed on the partition /dev/sdh1 with grub or whatever mechanism it is able to boot the hexdump0815 jammy iso image.
As I repeat,the "non-verified u-boot" is produced by the script called "build.sh",that's stored inside the u-boot/scripts directory. And if what I want to do is impossible,can you explain to me how I can enable kvm on my chromebook arm,using the most recent kernel possible ? I already know that the support for kvm on arm 32 has been dropped on kernel 5.7,but for me to use a lower kernel than 5.7 is ok. I've been working on this project for a lot of months. I would like to see some progress. Thanks.
-- Mario.

Excuse me. The problem is not the kernel version that I'm running,but how to use the unverified u-boot created by virtual open systems to chainload the kernel of whatever used to boot one recent ISO image created by hexdump0815. Because it contains the code to put the chromebook in hypervisor mode. Without that special u-boot version,I can for sure install one ISO image of hexdump0815 (I've chosen jammy as an example,but hexdump0815 created some more updated isos),but KVM will not be enabled.
On Sat, Jul 1, 2023 at 2:34 PM Peter Robinson pbrobinson@gmail.com wrote:
On Sat, Jul 1, 2023 at 1:25 PM Mario Marietto marietto2008@gmail.com wrote:
Hello.
I would like to enable KVM virtualization on my old ARM Chromebook laptop,based on the Exynos5250 arm 32 bit cpu aka snow,model xe303c12.
Upstream Linux kernel dropped support for running virt on 32 bit hosts (you can still run a 32 bit guest on a 64 bit host) in the upstream linux kernel with the 5.7 release (May 31st, 2020) so you'll probably have to run a 5.4.x LTS kernel rather than 5.18.x (not sure why you chose that one) at the very least.
The first thing I did has been to dd the image below directly on the sd card :
https://github.com/hexdump0815/imagebuilder/releases/download/220619-01/chro...
and it worked like a charm,but kvm was disabled. So,I have started to
look
for a good documentation to understand how to enable kvm and I found
this :
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
I've followed all the instructions and it worked,but only with Ubuntu
13.04
and 14.04. More upgraded ubuntu versions give a lot of problems and they don't work.
So,I've thought about a fresh idea. What about to install the virtual
open
systems "non-verified u-boot" on the first partition like explained in
the
tutorial,and,instead of starting another u-boot after the original,can I chain grub with the kernel installed for example by the ubuntu jammy iso image created by "hexdump0815" ? To be honest I'm not sure if hexdump0815 used grub,but I will explain this later.
Anyway,I've got the idea by reading here :
https://unix.stackexchange.com/questions/599141/how-to-install-grub-bootload...
So,now,I'm going to explain what's the content of the partitions on my Frankenstein sd card.
- /dev/sdh1 = unknown = 16 MB. I've created this partition by doing :
$ sudo dd if=nv_uboot-snow.kpart of=/dev/sdh1
Where I've got the file nv_uboot-snow.kpart ? From here :
http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-bo...
- /dev/sdh2 = unknown = 16 MB. This partition has been created by
executing the following
script :
$ sudo ./scripts/sdcard.sh /dev/sdh
- /dev/sdh3 = ext2 BOOT.
Inside the partition /dev/sdh3 I have copied the following files and folders (taken from the hexdump0815 "chromebook_snow-armv7l-jammy.img.gz" file :
a) dtb-5.18.1-stb-cbe+ = directory b) extlinux = directory c) extra = directory
d) config.5.18.1-stb-cbe+ : file e) initrd.img-5.18.1-stb-cbe+ : file f) System.map-5.18.1-stb-cbe+ : file g) vmlinux.kpart-5.18.1-stb-cbe+ : file h) zImage-5.18.1-stb.cbe+ : file
Inside the directory "dtb-5.18.1-stb-cbe+" there are the following files
:
a) exynos5250-snow.dtb b) exynos5250-snow-rev5.dtb c) exynos5250-spring.dtb
Inside the directory "extlinux",there is the following file :
a) extlinux.conf : that has the following content :
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
Inside the extra directory there are the following files :
a) kernel-chromebook_snow-legacy.tar.gz b) uboot.kpart.cbe-snow c) uboot.kpart.cbe-snow-alternative d) uboot.kpart.cbe-spring
- /dev/sdh4 : inside here I have copied all the files of the jammy
userland prepared by hexdump0818.
That's all. What I want to do is if and how can I chainload the "non-verified u-boot" that is installed on the partition /dev/sdh1 with grub or whatever mechanism it is able to boot the hexdump0815 jammy iso image.
As I repeat,the "non-verified u-boot" is produced by the script called "build.sh",that's stored inside the u-boot/scripts directory. And if
what I
want to do is impossible,can you explain to me how I can enable kvm on my chromebook arm,using the most recent kernel possible ? I already know
that
the support for kvm on arm 32 has been dropped on kernel 5.7,but for me
to
use a lower kernel than 5.7 is ok. I've been working on this project for
a
lot of months. I would like to see some progress. Thanks.
-- Mario.

On Sat, Jul 1, 2023 at 1:40 PM Mario Marietto marietto2008@gmail.com wrote:
Excuse me. The problem is not the kernel version that I'm running,but how to use the unverified u-boot created by virtual open systems to chainload the kernel of whatever used to boot one recent ISO image created by hexdump0815. Because it contains the code to put the chromebook in hypervisor mode. Without that special u-boot version,I can for sure install one ISO image of hexdump0815 (I've chosen jammy as an example,but hexdump0815 created some more updated isos),but KVM will not be enabled.
You'll note I didn't comment on the U-Boot piece, but my point still remains, that KVM for a 32 bit Arm host was removed in the 5.7 kernel upstream, so even when you sort out the other problem you still won't have virt due to the kernel.
On Sat, Jul 1, 2023 at 2:34 PM Peter Robinson pbrobinson@gmail.com wrote:
On Sat, Jul 1, 2023 at 1:25 PM Mario Marietto marietto2008@gmail.com wrote:
Hello.
I would like to enable KVM virtualization on my old ARM Chromebook laptop,based on the Exynos5250 arm 32 bit cpu aka snow,model xe303c12.
Upstream Linux kernel dropped support for running virt on 32 bit hosts (you can still run a 32 bit guest on a 64 bit host) in the upstream linux kernel with the 5.7 release (May 31st, 2020) so you'll probably have to run a 5.4.x LTS kernel rather than 5.18.x (not sure why you chose that one) at the very least.
The first thing I did has been to dd the image below directly on the sd card :
https://github.com/hexdump0815/imagebuilder/releases/download/220619-01/chro...
and it worked like a charm,but kvm was disabled. So,I have started to look for a good documentation to understand how to enable kvm and I found this :
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
I've followed all the instructions and it worked,but only with Ubuntu 13.04 and 14.04. More upgraded ubuntu versions give a lot of problems and they don't work.
So,I've thought about a fresh idea. What about to install the virtual open systems "non-verified u-boot" on the first partition like explained in the tutorial,and,instead of starting another u-boot after the original,can I chain grub with the kernel installed for example by the ubuntu jammy iso image created by "hexdump0815" ? To be honest I'm not sure if hexdump0815 used grub,but I will explain this later.
Anyway,I've got the idea by reading here :
https://unix.stackexchange.com/questions/599141/how-to-install-grub-bootload... So,now,I'm going to explain what's the content of the partitions on my Frankenstein sd card.
- /dev/sdh1 = unknown = 16 MB. I've created this partition by doing :
$ sudo dd if=nv_uboot-snow.kpart of=/dev/sdh1
Where I've got the file nv_uboot-snow.kpart ? From here :
http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-bo...
- /dev/sdh2 = unknown = 16 MB. This partition has been created by
executing the following
script :
$ sudo ./scripts/sdcard.sh /dev/sdh
- /dev/sdh3 = ext2 BOOT.
Inside the partition /dev/sdh3 I have copied the following files and folders (taken from the hexdump0815 "chromebook_snow-armv7l-jammy.img.gz" file :
a) dtb-5.18.1-stb-cbe+ = directory b) extlinux = directory c) extra = directory
d) config.5.18.1-stb-cbe+ : file e) initrd.img-5.18.1-stb-cbe+ : file f) System.map-5.18.1-stb-cbe+ : file g) vmlinux.kpart-5.18.1-stb-cbe+ : file h) zImage-5.18.1-stb.cbe+ : file
Inside the directory "dtb-5.18.1-stb-cbe+" there are the following files :
a) exynos5250-snow.dtb b) exynos5250-snow-rev5.dtb c) exynos5250-spring.dtb
Inside the directory "extlinux",there is the following file :
a) extlinux.conf : that has the following content :
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
Inside the extra directory there are the following files :
a) kernel-chromebook_snow-legacy.tar.gz b) uboot.kpart.cbe-snow c) uboot.kpart.cbe-snow-alternative d) uboot.kpart.cbe-spring
- /dev/sdh4 : inside here I have copied all the files of the jammy
userland prepared by hexdump0818.
That's all. What I want to do is if and how can I chainload the "non-verified u-boot" that is installed on the partition /dev/sdh1 with grub or whatever mechanism it is able to boot the hexdump0815 jammy iso image.
As I repeat,the "non-verified u-boot" is produced by the script called "build.sh",that's stored inside the u-boot/scripts directory. And if what I want to do is impossible,can you explain to me how I can enable kvm on my chromebook arm,using the most recent kernel possible ? I already know that the support for kvm on arm 32 has been dropped on kernel 5.7,but for me to use a lower kernel than 5.7 is ok. I've been working on this project for a lot of months. I would like to see some progress. Thanks.
-- Mario.
-- Mario.

Some days ago I successfully compiled the kernel version. 5.4.244 with all the kvm flags enabled and the exynos 5250-snow.dtb file.
On Sat, Jul 1, 2023 at 2:46 PM Peter Robinson pbrobinson@gmail.com wrote:
On Sat, Jul 1, 2023 at 1:40 PM Mario Marietto marietto2008@gmail.com wrote:
Excuse me. The problem is not the kernel version that I'm running,but
how to use the unverified u-boot created by virtual open systems to chainload the kernel of whatever used to boot one recent ISO image created by hexdump0815. Because it contains the code to put the chromebook in hypervisor mode. Without that special u-boot version,I can for sure install one ISO image of hexdump0815 (I've chosen jammy as an example,but hexdump0815 created some more updated isos),but KVM will not be enabled.
You'll note I didn't comment on the U-Boot piece, but my point still remains, that KVM for a 32 bit Arm host was removed in the 5.7 kernel upstream, so even when you sort out the other problem you still won't have virt due to the kernel.
On Sat, Jul 1, 2023 at 2:34 PM Peter Robinson pbrobinson@gmail.com
wrote:
On Sat, Jul 1, 2023 at 1:25 PM Mario Marietto marietto2008@gmail.com
wrote:
Hello.
I would like to enable KVM virtualization on my old ARM Chromebook laptop,based on the Exynos5250 arm 32 bit cpu aka snow,model xe303c12.
Upstream Linux kernel dropped support for running virt on 32 bit hosts (you can still run a 32 bit guest on a 64 bit host) in the upstream linux kernel with the 5.7 release (May 31st, 2020) so you'll probably have to run a 5.4.x LTS kernel rather than 5.18.x (not sure why you chose that one) at the very least.
The first thing I did has been to dd the image below directly on the
sd
card :
https://github.com/hexdump0815/imagebuilder/releases/download/220619-01/chro...
and it worked like a charm,but kvm was disabled. So,I have started to
look
for a good documentation to understand how to enable kvm and I found
this :
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
I've followed all the instructions and it worked,but only with Ubuntu
13.04
and 14.04. More upgraded ubuntu versions give a lot of problems and
they
don't work.
So,I've thought about a fresh idea. What about to install the virtual
open
systems "non-verified u-boot" on the first partition like explained
in the
tutorial,and,instead of starting another u-boot after the
original,can I
chain grub with the kernel installed for example by the ubuntu jammy
iso
image created by "hexdump0815" ? To be honest I'm not sure if
hexdump0815
used grub,but I will explain this later.
Anyway,I've got the idea by reading here :
https://unix.stackexchange.com/questions/599141/how-to-install-grub-bootload...
So,now,I'm going to explain what's the content of the partitions on my Frankenstein sd card.
- /dev/sdh1 = unknown = 16 MB. I've created this partition by doing :
$ sudo dd if=nv_uboot-snow.kpart of=/dev/sdh1
Where I've got the file nv_uboot-snow.kpart ? From here :
http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-bo...
- /dev/sdh2 = unknown = 16 MB. This partition has been created by
executing the following
script :
$ sudo ./scripts/sdcard.sh /dev/sdh
- /dev/sdh3 = ext2 BOOT.
Inside the partition /dev/sdh3 I have copied the following files and folders (taken from the hexdump0815 "chromebook_snow-armv7l-jammy.img.gz" file :
a) dtb-5.18.1-stb-cbe+ = directory b) extlinux = directory c) extra = directory
d) config.5.18.1-stb-cbe+ : file e) initrd.img-5.18.1-stb-cbe+ : file f) System.map-5.18.1-stb-cbe+ : file g) vmlinux.kpart-5.18.1-stb-cbe+ : file h) zImage-5.18.1-stb.cbe+ : file
Inside the directory "dtb-5.18.1-stb-cbe+" there are the following
files :
a) exynos5250-snow.dtb b) exynos5250-snow-rev5.dtb c) exynos5250-spring.dtb
Inside the directory "extlinux",there is the following file :
a) extlinux.conf : that has the following content :
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
Inside the extra directory there are the following files :
a) kernel-chromebook_snow-legacy.tar.gz b) uboot.kpart.cbe-snow c) uboot.kpart.cbe-snow-alternative d) uboot.kpart.cbe-spring
- /dev/sdh4 : inside here I have copied all the files of the jammy
userland prepared by hexdump0818.
That's all. What I want to do is if and how can I chainload the "non-verified u-boot" that is installed on the partition /dev/sdh1 with grub or whatever mechanism it is able to boot the hexdump0815 jammy iso image.
As I repeat,the "non-verified u-boot" is produced by the script called "build.sh",that's stored inside the u-boot/scripts directory. And if
what I
want to do is impossible,can you explain to me how I can enable kvm
on my
chromebook arm,using the most recent kernel possible ? I already know
that
the support for kvm on arm 32 has been dropped on kernel 5.7,but for
me to
use a lower kernel than 5.7 is ok. I've been working on this project
for a
lot of months. I would like to see some progress. Thanks.
-- Mario.
-- Mario.

ok. Can we come back to the main problem,please ? Is there a method to do what I want ? Is there some kind of technique ? Very thanks.
On Sat, Jul 1, 2023 at 2:57 PM Mario Marietto marietto2008@gmail.com wrote:
Some days ago I successfully compiled the kernel version. 5.4.244 with all the kvm flags enabled and the exynos 5250-snow.dtb file.
On Sat, Jul 1, 2023 at 2:46 PM Peter Robinson pbrobinson@gmail.com wrote:
On Sat, Jul 1, 2023 at 1:40 PM Mario Marietto marietto2008@gmail.com wrote:
Excuse me. The problem is not the kernel version that I'm running,but
how to use the unverified u-boot created by virtual open systems to chainload the kernel of whatever used to boot one recent ISO image created by hexdump0815. Because it contains the code to put the chromebook in hypervisor mode. Without that special u-boot version,I can for sure install one ISO image of hexdump0815 (I've chosen jammy as an example,but hexdump0815 created some more updated isos),but KVM will not be enabled.
You'll note I didn't comment on the U-Boot piece, but my point still remains, that KVM for a 32 bit Arm host was removed in the 5.7 kernel upstream, so even when you sort out the other problem you still won't have virt due to the kernel.
On Sat, Jul 1, 2023 at 2:34 PM Peter Robinson pbrobinson@gmail.com
wrote:
On Sat, Jul 1, 2023 at 1:25 PM Mario Marietto marietto2008@gmail.com
wrote:
Hello.
I would like to enable KVM virtualization on my old ARM Chromebook laptop,based on the Exynos5250 arm 32 bit cpu aka snow,model
xe303c12.
Upstream Linux kernel dropped support for running virt on 32 bit hosts (you can still run a 32 bit guest on a 64 bit host) in the upstream linux kernel with the 5.7 release (May 31st, 2020) so you'll probably have to run a 5.4.x LTS kernel rather than 5.18.x (not sure why you chose that one) at the very least.
The first thing I did has been to dd the image below directly on the
sd
card :
https://github.com/hexdump0815/imagebuilder/releases/download/220619-01/chro...
and it worked like a charm,but kvm was disabled. So,I have started
to look
for a good documentation to understand how to enable kvm and I found
this :
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
I've followed all the instructions and it worked,but only with
Ubuntu 13.04
and 14.04. More upgraded ubuntu versions give a lot of problems and
they
don't work.
So,I've thought about a fresh idea. What about to install the
virtual open
systems "non-verified u-boot" on the first partition like explained
in the
tutorial,and,instead of starting another u-boot after the
original,can I
chain grub with the kernel installed for example by the ubuntu jammy
iso
image created by "hexdump0815" ? To be honest I'm not sure if
hexdump0815
used grub,but I will explain this later.
Anyway,I've got the idea by reading here :
https://unix.stackexchange.com/questions/599141/how-to-install-grub-bootload...
So,now,I'm going to explain what's the content of the partitions on
my
Frankenstein sd card.
- /dev/sdh1 = unknown = 16 MB. I've created this partition by doing
:
$ sudo dd if=nv_uboot-snow.kpart of=/dev/sdh1
Where I've got the file nv_uboot-snow.kpart ? From here :
http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-bo...
- /dev/sdh2 = unknown = 16 MB. This partition has been created by
executing the following
script :
$ sudo ./scripts/sdcard.sh /dev/sdh
- /dev/sdh3 = ext2 BOOT.
Inside the partition /dev/sdh3 I have copied the following files and folders (taken from the hexdump0815 "chromebook_snow-armv7l-jammy.img.gz" file :
a) dtb-5.18.1-stb-cbe+ = directory b) extlinux = directory c) extra = directory
d) config.5.18.1-stb-cbe+ : file e) initrd.img-5.18.1-stb-cbe+ : file f) System.map-5.18.1-stb-cbe+ : file g) vmlinux.kpart-5.18.1-stb-cbe+ : file h) zImage-5.18.1-stb.cbe+ : file
Inside the directory "dtb-5.18.1-stb-cbe+" there are the following
files :
a) exynos5250-snow.dtb b) exynos5250-snow-rev5.dtb c) exynos5250-spring.dtb
Inside the directory "extlinux",there is the following file :
a) extlinux.conf : that has the following content :
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
Inside the extra directory there are the following files :
a) kernel-chromebook_snow-legacy.tar.gz b) uboot.kpart.cbe-snow c) uboot.kpart.cbe-snow-alternative d) uboot.kpart.cbe-spring
- /dev/sdh4 : inside here I have copied all the files of the jammy
userland prepared by hexdump0818.
That's all. What I want to do is if and how can I chainload the "non-verified u-boot" that is installed on the partition /dev/sdh1 with grub or whatever mechanism it is able to boot the hexdump0815 jammy iso image.
As I repeat,the "non-verified u-boot" is produced by the script
called
"build.sh",that's stored inside the u-boot/scripts directory. And if
what I
want to do is impossible,can you explain to me how I can enable kvm
on my
chromebook arm,using the most recent kernel possible ? I already
know that
the support for kvm on arm 32 has been dropped on kernel 5.7,but for
me to
use a lower kernel than 5.7 is ok. I've been working on this project
for a
lot of months. I would like to see some progress. Thanks.
-- Mario.
-- Mario.
-- Mario.

Hello.
I've been able to understand what was the X variable,the component that allows the hexdump0815 ubuntu iso images to boot correctly : it is syslinux. So,now I know what I should do : to try to chainload the u-boot installed on the first partition with syslinux,installed on the 4 partition I think,I don't know. I would like to understand if this task can be accomplished or not.
On Sat, Jul 1, 2023 at 3:25 PM Mario Marietto marietto2008@gmail.com wrote:
ok. Can we come back to the main problem,please ? Is there a method to do what I want ? Is there some kind of technique ? Very thanks.
On Sat, Jul 1, 2023 at 2:57 PM Mario Marietto marietto2008@gmail.com wrote:
Some days ago I successfully compiled the kernel version. 5.4.244 with all the kvm flags enabled and the exynos 5250-snow.dtb file.
On Sat, Jul 1, 2023 at 2:46 PM Peter Robinson pbrobinson@gmail.com wrote:
On Sat, Jul 1, 2023 at 1:40 PM Mario Marietto marietto2008@gmail.com wrote:
Excuse me. The problem is not the kernel version that I'm running,but
how to use the unverified u-boot created by virtual open systems to chainload the kernel of whatever used to boot one recent ISO image created by hexdump0815. Because it contains the code to put the chromebook in hypervisor mode. Without that special u-boot version,I can for sure install one ISO image of hexdump0815 (I've chosen jammy as an example,but hexdump0815 created some more updated isos),but KVM will not be enabled.
You'll note I didn't comment on the U-Boot piece, but my point still remains, that KVM for a 32 bit Arm host was removed in the 5.7 kernel upstream, so even when you sort out the other problem you still won't have virt due to the kernel.
On Sat, Jul 1, 2023 at 2:34 PM Peter Robinson pbrobinson@gmail.com
wrote:
On Sat, Jul 1, 2023 at 1:25 PM Mario Marietto marietto2008@gmail.com
wrote:
Hello.
I would like to enable KVM virtualization on my old ARM Chromebook laptop,based on the Exynos5250 arm 32 bit cpu aka snow,model
xe303c12.
Upstream Linux kernel dropped support for running virt on 32 bit hosts (you can still run a 32 bit guest on a 64 bit host) in the upstream linux kernel with the 5.7 release (May 31st, 2020) so you'll probably have to run a 5.4.x LTS kernel rather than 5.18.x (not sure why you chose that one) at the very least.
The first thing I did has been to dd the image below directly on
the sd
card :
https://github.com/hexdump0815/imagebuilder/releases/download/220619-01/chro...
and it worked like a charm,but kvm was disabled. So,I have started
to look
for a good documentation to understand how to enable kvm and I
found this :
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
I've followed all the instructions and it worked,but only with
Ubuntu 13.04
and 14.04. More upgraded ubuntu versions give a lot of problems and
they
don't work.
So,I've thought about a fresh idea. What about to install the
virtual open
systems "non-verified u-boot" on the first partition like explained
in the
tutorial,and,instead of starting another u-boot after the
original,can I
chain grub with the kernel installed for example by the ubuntu
jammy iso
image created by "hexdump0815" ? To be honest I'm not sure if
hexdump0815
used grub,but I will explain this later.
Anyway,I've got the idea by reading here :
https://unix.stackexchange.com/questions/599141/how-to-install-grub-bootload...
So,now,I'm going to explain what's the content of the partitions on
my
Frankenstein sd card.
- /dev/sdh1 = unknown = 16 MB. I've created this partition by
doing :
$ sudo dd if=nv_uboot-snow.kpart of=/dev/sdh1
Where I've got the file nv_uboot-snow.kpart ? From here :
http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-bo...
- /dev/sdh2 = unknown = 16 MB. This partition has been created by
executing the following
script :
$ sudo ./scripts/sdcard.sh /dev/sdh
- /dev/sdh3 = ext2 BOOT.
Inside the partition /dev/sdh3 I have copied the following files and folders (taken from the hexdump0815 "chromebook_snow-armv7l-jammy.img.gz" file :
a) dtb-5.18.1-stb-cbe+ = directory b) extlinux = directory c) extra = directory
d) config.5.18.1-stb-cbe+ : file e) initrd.img-5.18.1-stb-cbe+ : file f) System.map-5.18.1-stb-cbe+ : file g) vmlinux.kpart-5.18.1-stb-cbe+ : file h) zImage-5.18.1-stb.cbe+ : file
Inside the directory "dtb-5.18.1-stb-cbe+" there are the following
files :
a) exynos5250-snow.dtb b) exynos5250-snow-rev5.dtb c) exynos5250-spring.dtb
Inside the directory "extlinux",there is the following file :
a) extlinux.conf : that has the following content :
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
Inside the extra directory there are the following files :
a) kernel-chromebook_snow-legacy.tar.gz b) uboot.kpart.cbe-snow c) uboot.kpart.cbe-snow-alternative d) uboot.kpart.cbe-spring
- /dev/sdh4 : inside here I have copied all the files of the jammy
userland prepared by hexdump0818.
That's all. What I want to do is if and how can I chainload the "non-verified u-boot" that is installed on the partition /dev/sdh1 with grub or whatever mechanism it is able to boot the hexdump0815 jammy iso image.
As I repeat,the "non-verified u-boot" is produced by the script
called
"build.sh",that's stored inside the u-boot/scripts directory. And
if what I
want to do is impossible,can you explain to me how I can enable kvm
on my
chromebook arm,using the most recent kernel possible ? I already
know that
the support for kvm on arm 32 has been dropped on kernel 5.7,but
for me to
use a lower kernel than 5.7 is ok. I've been working on this
project for a
lot of months. I would like to see some progress. Thanks.
-- Mario.
-- Mario.
-- Mario.
-- Mario.
participants (2)
-
Mario Marietto
-
Peter Robinson