...
Code Block |
---|
diff --git a/xen/arch/arm/configs/arm64_defconfig b/xen/arch/arm/configs/arm64_defconfig index e69de29bb2d1..38ca05a8b416 100644 --- a/xen/arch/arm/configs/arm64_defconfig +++ b/xen/arch/arm/configs/arm64_defconfig @@ -0,0 +1,3 @@ +CONFIG_IOREQ_SERVER=y +CONFIG_EXPERT=y |
Build as:
Code Block |
---|
$ ./configure --libdir=/usr/lib --build=x86_64-unknown-linux-gnu --host=aarch64-linux-gnu \ --disable-docs --disable-golang --disable-ocamltools \ --with-system-qemu=/root/qemu/build/i386-softmmu/qemu-system-i386 $ make -j9 debball CROSS_COMPILE=aarch64-linux-gnu- XEN_TARGET_ARCH=arm64 |
...
Debian qcow2
source: https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-arm64.qcow2
Code Block |
---|
$ qemu-system-aarch64 -machine virt,virtualization=on -cpu cortex-a57 -serial mon:stdio \
-device virtio-net-pci,netdev=net0 -netdev user,id=net0,hostfwd=tcp::8022-:22 \
-drive file=/home/debian-bullseye-arm64.qcow2,index=0,id=hd0,if=none,format=qcow2 \
-device virtio-scsi-pci -device scsi-hd,drive=hd0 \
-display none -m 8192 -smp 8 -kernel /home/xen/xen \
-append "dom0_mem=5G,max:5G dom0_max_vcpus=7 loglvl=all guest_loglvl=all" \
-device guest-loader,addr=0x46000000,kernel=/home/Image,bootargs="root=/dev/sda2 console=hvc0 earlyprintk=xen" \
-device ds1338,address=0x20 |
...
This is required to control the device on Dom0 from the guest instead of the host.
Code Block |
---|
$ echo ds1338 0x20 > /sys/bus/i2c/devices/i2c-0/new_device $ echo 0-0020 > /sys/bus/i2c/devices/0-0020/driver/unbind |
...
First start the I2C backend.
Code Block |
---|
$ vhost-device-i2c -s /root/i2c.sock -c 1 -l `90c0000.i2c:32` |
...
The guest kernel should have Virtio related config options enabled, along with i2c-virtio
driver.
Code Block |
---|
$ xl create -c domu.conf |
The guest should boot now. Once the guest is up, you can create the I2C based RTC device and use it.
Following will create /dev/rtc0
in the guest, which you can configure with the standard hwclock
utility.
Code Block |
---|
$ echo ds1338 0x20 > /sys/bus/i2c/devices/i2c-0/new_device |
...