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

Mario Marietto marietto2008 at gmail.com
Sat Jul 1 20:12:31 CEST 2023


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 at 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 at 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 at gmail.com>
>> wrote:
>>
>>> On Sat, Jul 1, 2023 at 1:40 PM Mario Marietto <marietto2008 at 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 at gmail.com>
>>> wrote:
>>> >>
>>> >> On Sat, Jul 1, 2023 at 1:25 PM Mario Marietto <marietto2008 at 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/chromebook_snow-armv7l-jammy.img.gz
>>> >> >
>>> >> > 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-bootloader-as-second-stage-bootloader
>>> >> > 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-boot-snow.kpart
>>> >> >
>>> >> > 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.
>>> >> >
>>> >> > --
>>> >> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>>
>>
>>
>> --
>> Mario.
>>
>
>
> --
> Mario.
>


-- 
Mario.


More information about the U-Boot mailing list