[syslinux] How to chainload u-boot installed on the first partition with syslinux installed on another partition.

Mario Marietto marietto2008 at gmail.com
Sat Jul 1 12:07:51 PDT 2023


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/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 SYSLINUX installed for example by the ubuntu jammy iso
image created by "hexdump0815" ?

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 file called extlinux.conf that
has the following content inside :

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 SYSLINUX installed on the
2 partition of the sd card by the ISO image created by hexdump0815.


The closer images that fit my need are the following :

230220-01 - debian bookworm image for the snow chromebook - samsung
xe303c12
<https://github.com/hexdump0815/imagebuilder/releases/tag/230220-01>

   - see:
   https://github.com/hexdump0815/imagebuilder/tree/main/systems/chromebook_snow
   - kernel version used: v6.1.11 lts

This image has kernel 6.1.11 and it's not good because kvm has been
disabled for arm 32 on kernel 5.7.

and :

220619-01 - debian bullseye and ubuntu jammy images for the snow chromebook
- samsung xe303c12
<https://github.com/hexdump0815/imagebuilder/releases/tag/220619-01>

   - see:
   https://github.com/hexdump0815/imagebuilder/tree/main/systems/chromebook_snow
   - kernel version used: v5.18.1
   - multi generation lru extra kernel patches integrated for better
   performance under memory pressure
   - some initial spring support is there, but there is still a lot of work
   required to make it really work

And this image is also not good,because it uses a kernel lower than 5.4.

In any case,no problem,because I've already been able to recompile kernel
5.4.244 and I have enabled all the kvm flags succesfully. So,what I will do
when one of those images will boot,will be to recompile the kernel 5.4.244.

Now,let's come back to the main question : can I chain u-boot with syslinux
?
How ? thanks.

-- 
Mario.


More information about the Syslinux mailing list