Mario Marietto
2023-Jul-01 19:07 UTC
[syslinux] How to chainload u-boot installed on the first partition with syslinux installed on another partition.
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.
Adam Goldman
2023-Jul-03 22:22 UTC
[syslinux] How to chainload u-boot installed on the first partition with syslinux installed on another partition.
On Sat, Jul 01, 2023 at 09:07:51PM +0200, Mario Marietto via Syslinux wrote:> 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.[...]> Now,let's come back to the main question : can I chain u-boot with syslinux?No. Syslinux doesn't run on ARM. -- Adam