oh sorry I'm missing the DESTDIR parameter : $ make -DNO_MODULES KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7 DESTDIR=/build buildkernel
On Tue, Nov 28, 2023 at 11:41 AM Mario Marietto <[email protected]> wrote: > Hello. > > to try to compile the correct freebsd kernel that's recognized by xen > using the Elliott Michell code, are the commands below the correct ones ? > > $ truncate -s 100G xenvm.img > $ mdconfig -f xenvm.img -u 0 > $ newfs /dev/md0 > $ mount /dev/md0 /mnt > $ git clone https://gitlab.com/ehem/freebsd-src.git > $ cd freebsd-src > > $ make -DNO_MODULES KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7 > buildkernel > > $ echo "/dev/xbd0 / ufs rw 1 > 1" > /mnt/etc/fstab > > $ nano /build/etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm on > secure") > $ umount /build > $ mdconfig -d -u 0 > > Do you see errors ? some missing ? very thanks. > > > On Tue, Nov 28, 2023 at 3:28 AM Stefano Stabellini <[email protected]> > wrote: > >> On Mon, 27 Nov 2023, Chuck Zmudzinski wrote: >> > On 11/27/2023 10:22 AM, Chuck Zmudzinski wrote: >> > > On 11/27/2023 7:45 AM, Mario Marietto wrote: >> > >> @Chuck Zmudzinski <mailto:[email protected]> : Stay tuned. They >> want to help us. The xen developers are great. Very good support for us. >> I'm sure that you can give a good contribution to understand what's our >> problem and how to implement a fix with the help of all those good guys. >> > >> >> > >> On Mon, Nov 27, 2023 at 11:56 AM Roger Pau Monné < >> [email protected] <mailto:[email protected]>> wrote: >> > >> >> > >> On Mon, Nov 27, 2023 at 10:28:13AM +0000, Henry Wang wrote: >> > >> > +(xen-devel and Arm maintainers, including Julien) >> > >> > >> > >> > > On Nov 27, 2023, at 18:03, Mario Marietto < >> [email protected] <mailto:[email protected]>> >> > >> > > wrote: >> > >> > > >> > >> > > Hello. We have just virtualized Debian 12 on our arm (32 >> bit) >> > >> > > Chromebook model xe303c12 . As host / dom0 we have chosen >> Devuan >> > >> > > 5,and for guest / domU,Debian 12. It works great. But our >> goal is >> > >> > > different. We want to virtualize FreeBSD as domU. Can we >> have a >> > >> > > working Xen PV network driver for a FreeBSD arm guest ?. I >> found >> > >> > > that Julien Grall has ported the Xen drivers to FreeBSD on >> arm. I >> > >> > > would like to know if Julien's work was accepted upstream by >> > >> > > FreeBSD, in which case FreeBSD as a Xen guest on arm should >> work >> > >> > > if we enable the Xen PV drivers in the FreeBSD on arm >> kernel. If >> > >> > > Julien's work was not accepted upstream by FreeBSD, we will >> have >> > >> > > to find his patches and apply them ourselves to the FreeBSD >> on arm >> > >> > > kernel. >> > >> >> > >> I've added Elliot on Cc as he is working on upstreaming the >> patches to >> > >> FreeBSD. He will be able to provide a better update than myself. >> > >> >> > >> Regards, Roger. >> > > >> > > I have been collaborating with Mario, and I can explain what we have >> done so far : >> > > >> > > We are using Julien's patch set against an old development version of >> FreeBSD 11 >> > > from 2014-12-03 : >> > > >> > > >> https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=shortlog;h=refs/heads/xen-arm-v2.2 >> > > >> > > We successfully built the XENVIRT kernel and FreeBSD world, and >> created the >> > > FreeBSD rootfs according to Julien's instructions here : >> > > >> > > >> https://lists.freebsd.org/pipermail/freebsd-xen/2014-November/002202.html >> > > >> > > There were some adjustments to the instructions : >> > > >> > > To build the kernel, we used : >> > > >> > > $ sudo make TARGET_ARCH=armv6 KERNCONF=XENVIRT buildkernel >> > > >> > > instead of >> > > >> > > $ sudo make TARGET_ARCH=armv6 KERNCONF=XENHVM buildkernel >> > > >> > > The FreeBSD 'kernel' file is in ELF format and did not work, and we >> spent >> > > some time trying to convert it to the zImage format without realizing >> the >> > > build of the FreeBSD kernel creates the 'kernel.bin' file in the >> zImage format. >> > > So when booting with the 'kernel.bin' file instead, it actually boots >> : >> > > >> > > user@devuan-bunsen ~ % sudo xl create freebsd.cfg >> > > Parsing config from freebsd.cfg >> > > user@devuan-bunsen ~ % sudo xl li >> > > Name ID Mem VCPUs State >> Time(s) >> > > Domain-0 0 768 2 >> r----- 1439.4 >> > > freebsd 1 1152 1 >> r----- 3.0 >> > > user@devuan-bunsen ~ % >> > > >> > > However, the guest is still not working correctly : >> > > >> > > 1. Attaching the console with the -c option at creation or with >> > > 'xl console freebsd' results in no output to the console. >> > > >> > > 2. The timestamp on the virtual disk image file shows that the >> filesystem >> > > was at best mounted read-only, if it was mounted at all by the >> guest >> > > FreeBSD kernel. >> > > >> > > 3. The 'xl shutdown freebsd' command does not work, it just hangs. To >> stop >> > > the guest, you need to do 'xl destroy freebsd'. >> > > >> > > However, I think we can get the console to work and the rootfs to >> mount because I >> > > just realized I forgot to do the steps from Julien's instructions of >> editing the >> > > /etc/fstab and /etc/ttys files in the FreeBSD rootfs : >> > > >> > > $ echo "/dev/xbd0 / ufs rw 1 1" > >> /mnt/etc/fstab >> > > $ vi /mnt/etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm >> on secure") >> > > >> > > I will add those and see if the console and disk are working. >> > >> > Unfortunately, adding xc0 to /etc/ttys and /dev/xbd0 as the root device >> in >> > /etc/fstab did not make the console or disk work. Still no output on the >> > xen console from the guest kernel, and the timestamp on the rootfs image >> > file did not change so it did not mount read-write. >> > >> > We could use some advice for troubleshooting this. Now, we are blind >> because >> > we are not getting any xen console output But I am pleased we were able >> to >> > demonstrate that Julien's old patch set for FreeBSD 11 allows us to boot >> > FreeBSD 11 on a modern version of Xen on arm - we are using the Debian >> > stable Xen 4.17 packages. >> >> You can use the DEBUG hypercalls to check how far we got into the >> booting process: >> https://wiki.xenproject.org/wiki/Xen_ARM_DEBUG_hypercalls >> >> For instance add the following to FreeBSD code: >> >> asm volatile("hvc 0xfffd"); >> >> > > -- > Mario. > -- Mario.
