My apologies for the mistake I made on the experiment n. 2 ; I have used my
X86 System,but I should have used the Arm chromebook :)
Anyway :

root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen#
./start-freebsd

Parsing config from freebsd.cfg

xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found:
Invalid kernel (used the kernel.bin produced by the Elliott Mitchell code
patched by the zImage patch by Julien)
libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 3:cannot
(re-)build domain: -3
libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
3:Non-existent domain
libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 3:Unable
to destroy guest
libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 3:Destruction
of domain failed
freebsd is an invalid domain identifier (rc=-6)

root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen#
./start-freebsd

Parsing config from freebsd.cfg
xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not
capable of booting inside a HVM container: Invalid kernel (used the kernel
produced by the Elliott Mitchell code patched by the zImage patch by Julien)
libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 4:cannot
(re-)build domain: -3
libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
4:Non-existant domain
libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 4:Unable
to destroy guest
libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 4:Destruction
of domain failed
freebsd is an invalid domain identifier (rc=-6)

On Mon, Dec 11, 2023 at 9:57 PM Mario Marietto <[email protected]>
wrote:

> Experiment n. 2 :
> Below I have applied the zImage patch of Julien to the Elliott Mitchell
> code :
>
>
> https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=commit;h=12a7cb346b88c6d3f52a20b98f361dc62797fbcd
>
> and I've used the kernel generated by the Elliott MItchell code :
>
> root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen #
> ./start-freebsd
>
> xencall: error: Could not obtain handle on privileged command interface
> /dev/xen/privcmd: No such file or directory
> libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
> such file or directory
> cannot init xl context
> xencall: error: Could not obtain handle on privileged command interface
> /dev/xen/privcmd: No such file or directory
> libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
> such file or directory
> cannot init xl context
>
> Here I have used the kernel.bin :
>
> # ./start-freebsd
>
> xencall: error: Could not obtain handle on privileged command interface
> /dev/xen/privcmd: No such file or directory
> libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
> such file or directory
> cannot init xl context
> xencall: error: Could not obtain handle on privileged command interface
> /dev/xen/privcmd: No such file or directory
> libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
> such file or directory
> cannot init xl context
>
> (same error)
>
> Anyway I think that I made some progress...
>
>
> This is the freebsd.cfg file :
>
>
> kernel="/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel.bin"
>
> memory=64
> name="freebsd"
> vcpus=1
> autoballon="off"
> #disk=[ 'phy:/dev/loop0,xvda,w' ]
> disk=[ 'phy:/dev/md0s2a,xvda,w' ]
>
>
> And this is the start-freebsd.sh script that I've used :
>
>
> mdconfig -a -t vnode -f FreeBSD-13.2-RELEASE-armv7.img -u 0
> xl create freebsd.cfg
> xl console freebsd
>
>
>
>
>
>
> On Mon, Dec 11, 2023 at 7:41 PM Chuck Zmudzinski <[email protected]>
> wrote:
>
>> On 12/11/2023 12:59 PM, Mario Marietto wrote:
>> > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel
>> # file
>> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
>> >
>> > ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamically
>> linked, interpreter /red/herring,
>> BuildID[sha1]=5e6982c9cb67d9c94571b76419142a8c495388d0, for FreeBSD 13.2,
>> not stripped
>> >
>> > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel
>> # file
>> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin
>> >
>> > kernel.bin: data
>>
>> This needs to be :
>>
>> kernel.bin: Linux kernel ARM boot executable zImage (little-endian)
>>
>> >
>> > It does not boot from the kernel.bin file.
>>
>> I suggest not trying to direct boot a kernel in Xen on arm unless the
>> file command reports the kernel image is a Linux kernel ARM boot executable
>> zImage (little endian).
>>
>> Did you try applying Julien's patch (link is in my earlier message) to
>> add zImage support to FreeBSD? Maybe after applying the patch the
>> kernel.bin file will be in the correct zImage format.
>>
>> The patch I linked in the earlier
>>
>> >
>> >
>> > On Mon, Dec 11, 2023 at 6:23 PM Chuck Zmudzinski <[email protected]
>> <mailto:[email protected]>> wrote:
>> >
>> >     On 12/11/2023 9:02 AM, Mario Marietto wrote:
>> >     > Hello.
>> >     >
>> >     > Finally I tried to recompile the FreeBSD kernel using the
>> @Elliott Mitchell <mailto:[email protected] <mailto:
>> ehem%[email protected]>> code because I want to boot FreeBSD as domU
>> with Xen installed on my Arm 32 bit Chromebook. Unfortunately it didn't
>> work at all. Maybe I've missed something / I haven't understood well what
>> to do. Please give me some suggestions.
>> >     >
>> >     > Basically this is what I did :
>> >     >
>> >     > $ created a vm called FreeBSD-13.2-RELEASE-armv7.img with qemu /
>> kvm / libvirt / virt-manager
>> >     >
>> >     > $ within the vm : mkdir /build-xen
>> >     >
>> >     > $ cd /usr
>> >     >
>> >     > $ git clone https://gitlab.com/ehem/freebsd-src.git
>> >     >
>> >     > $ cd freebsd-src
>> >     >
>> >     > $ make KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7 buildkernel
>> >     >
>> >     > $ make KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7
>> DESTDIR=/build-xen installkernel
>> >     >
>> >     > $ echo "/dev/xbd0 / ufs rw 1 1" > /mnt/etc/fstab
>> >     >
>> >     > $ nano /etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm
>> on secure")
>> >     >
>> >     > $ renamed the directories dtb to dtb_ and kernel to kernel_ that
>> are inside the /boot dir of the vm
>> >     >
>> >     > $ copied the directory dtb and kernel from the directory
>> /build-xen to the directory /boot inside the vm
>> >     >
>> >     > $ shut down the vm
>> >     >
>> >     > $ copied the directory /build-xen outside of the vm using this
>> method (in this case I used Linux installed on the Host OS,because the
>> kernel that I'm using on the Chromebook has the kernel parameter related to
>> the ufs2 fs set to off) :
>> >     >
>> >     > on my X64 workstation :
>> >     >
>> >     > # modprobe ufs
>> >     >
>> >     > # sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.img
>> >     >
>> >     > # ls /dev/loop0*
>> >     >
>> >     > /dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop0p5
>> >     >
>> >     > # mount -t ufs -o ufstype=ufs2 /dev/loop0p5 ./FreeBSD-xen
>> >     >
>> >     > then :
>> >     >
>> >     > # nano freebsd.cfg
>> >     >
>> >     >
>> kernel="/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel"
>> >     > memory=64
>> >     > name="freebsd"
>> >     > vcpus=1
>> >     > autoballon="off"
>> >     > disk=[ 'phy:/dev/loop0,xvda,w' ]
>> >     > # nano start-freebsd
>> >     > losetup -fP FreeBSD-13.2-RELEASE-armv7.img
>> >     > xl create freebsd.cfg
>> >     > xl console freebsd
>> >     >
>> >     > # ./start-freebsd
>> >     >
>> >     > Parsing config from freebsd.cfg
>> >     > xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image
>> not capable of booting inside a HV
>> >     > M container: Invalid kernel
>> >
>> >     It is detecting the kernel as an elf binary. IIUC, Xen on arm
>> guests should have zImage kernels, not elf.
>> >
>> >     > libxl: error: libxl_dom.c:571:libxl__build_dom:
>> xc_dom_parse_image failed
>> >     > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
>> 1:cannot (re-)build domain: -3
>> >     > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
>> 1:Non-existent domain
>> >     > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
>> 1:Unable to destroy guest
>> >     > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
>> 1:Destruction of domain failed
>> >     > freebsd is an invalid domain identifier (rc=-6)
>> >     >
>> >     > I have also tried with kernel.bin :
>> >     >
>> >     > # nano freebsd.cfg
>> >     >
>> >     >
>> kernel="/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin"
>> >     > memory=64
>> >     > name="freebsd"
>> >     > vcpus=1
>> >     > autoballon="off"
>> >     > disk=[ 'phy:/dev/loop0,xvda,w' ]
>> >     >
>> >     > # ./start-freebsd
>> >     >
>> >     > Parsing config from freebsd.cfg
>> >     > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no
>> loader found: Invalid kernel
>> >     > libxl: error: libxl_dom.c:571:libxl__build_dom:
>> xc_dom_parse_image failed
>> >     > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
>> 2:cannot (re-)build domain: -3
>> >     > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
>> 2:Non-existent domain
>> >     > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
>> 2:Unable to destroy guest
>> >     > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
>> 2:Destruction of domain failed
>> >     > freebsd is an invalid domain identifier (rc=-6)
>> >     >
>> >     > --
>> >     > Mario.
>> >
>> >     I would be interested to see the output of :
>> >
>> >     $ file
>> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
>> >
>> >     and
>> >
>> >     $ file
>> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin
>> >
>> >     I have been trying out Julien's old patch set from 2014, and in
>> there was this patch :
>> >
>> >     > arm: Add zImage support
>> >     >
>> >     > Currently Xen on ARM is only supported zImage for guest kernel.
>> Adding support
>> >     > for ARM ELF in the toolstack looks a bit complicate for ARM
>> (though there is
>> >     > an x86 support).
>> >
>> >     Link to Julien's 2014 patch to provide zImage support for FreeBSD :
>> >
>> >
>> https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=commit;h=12a7cb346b88c6d3f52a20b98f361dc62797fbcd
>> <
>> https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=commit;h=12a7cb346b88c6d3f52a20b98f361dc62797fbcd
>> >
>> >
>> >     When using Julien's patches, from 'file' I find that the kernel
>> file is in
>> >     the elf format, and the kernel.bin file is in the zImage format, so
>> I have
>> >     been trying to boot the kernel.bin file.
>> >
>> >
>> >
>> > --
>> > Mario.
>>
>>
>
> --
> Mario.
>


-- 
Mario.

Reply via email to