SerenityOS source code packages bundle with automated build script.
Final product is NVMe disk image.
SerenityOS is graphical Unix-like operating system for desktop computers.
WWW: https://github.com/SerenityOS/serenity
SerenityOS autonomous automated build in ULFS 0.2 - https://www.youtube.com/watch?v=Cs9bVywAonY
Runing #SerenityOS in ULFS 0.2 after autobuild via QEMU & SPICE - https://www.youtube.com/watch?v=sesvve5XeRU
Autobuild
serenityos-d1226f0b15906d12c4b4aad0e061c1fd02c30467-autobuild-2024-01-30.tar.gz [ MD5-checksum ]
Disk images
serenity-2024-01-30.img.gz [ MD5-checksum ]
grub.iso [ MD5-checksum ]
Run build script:
time ./build
SerenityOS VM is intended to run localy. Also it's possible to use VNC & SPICE to run SerenityOS VM remotely.
By default, SerenityOS VM is launched using direct kernel booting. It's possible to use GRUB rescue cd to avoid using additional files.
System is booted to grub recovery CD. Then user type few GRUB commands to boot SerenityOS from NVMe disk image:
root=hd0
multiboot /boot/Prekernel root=nvme0:1:0
module /boot/Kernel
boot
To get remote connection with sound support run:
qemu -device i82801b11-bridge,id=bridge4 \
-device nvme,serial=deadbeef,drive=disk,bus=bridge4,logical_block_size=4096,physical_block_size=4096 \
-device virtio-serial,max_ports=2 \
-device virtconsole,chardev=stdout \
-device isa-debugcon,chardev=stdout \
-device virtio-rng-pci \
-device pci-bridge,chassis_nr=1,id=bridge1 \
-device i82801b11-bridge,bus=bridge1,id=bridge2 \
-device sdhci-pci,bus=bridge2 \
-device i82801b11-bridge,id=bridge3 \
-device sdhci-pci,bus=bridge3 \
-device ich9-ahci,bus=bridge3 \
-gdb tcp:127.0.0.1:1234 \
-qmp unix:qmp-sock,server,nowait \
-name SerenityOS \
-d guest_errors \
-m 1G \
-accel kvm \
-cpu qemu64 \
-smp 2 \
-usb \
-vga none \
-spice port=5901,disable-ticketing=on \
-device qxl-vga \
-netdev user,id=breh,hostfwd=tcp:127.0.0.1:8888-10.0.2.15:8888,hostfwd=tcp:127.0.0.1:8823-10.0.2.15:23,hostfwd=tcp:127.0.0.1:8000-10.0.2.15:8000,hostfwd=tcp:127.0.0.1:2222-10.0.2.15:22 \
-device e1000,netdev=breh,bus=bridge1 \
-drive file=serenity-2024-01-30.img,format=raw,index=0,media=disk,if=none,id=disk \
-chardev stdio,id=stdout,mux=on \
-device AC97,id=snd0 \
-cdrom grub.iso -boot d
To get remote connection without sound support run:
qemu -device i82801b11-bridge,id=bridge4 \
-device nvme,serial=deadbeef,drive=disk,bus=bridge4,logical_block_size=4096,physical_block_size=4096 \
-device virtio-serial,max_ports=2 \
-device virtconsole,chardev=stdout \
-device isa-debugcon,chardev=stdout \
-device virtio-rng-pci \
-device pci-bridge,chassis_nr=1,id=bridge1 \
-device i82801b11-bridge,bus=bridge1,id=bridge2 \
-device sdhci-pci,bus=bridge2 \
-device i82801b11-bridge,id=bridge3 \
-device sdhci-pci,bus=bridge3 \
-device ich9-ahci,bus=bridge3 \
-gdb tcp:127.0.0.1:1234 \
-qmp unix:qmp-sock,server,nowait \
-name SerenityOS \
-d guest_errors \
-m 1G \
-accel kvm \
-cpu qemu64 \
-smp 2 \
-usb \
-vga none \
-display vnc=:1 \
-device VGA,vgamem_mb=64 \
-netdev user,id=breh,hostfwd=tcp:127.0.0.1:8888-10.0.2.15:8888,hostfwd=tcp:127.0.0.1:8823-10.0.2.15:23,hostfwd=tcp:127.0.0.1:8000-10.0.2.15:8000,hostfwd=tcp:127.0.0.1:2222-10.0.2.15:22 \
-device e1000,netdev=breh,bus=bridge1 \
-drive file=serenity.img,format=raw,index=0,media=disk,if=none,id=disk \
-chardev stdio,id=stdout,mux=on \
-cdrom grub.iso -boot d
Connect by VNC-client to port 5901. You can use spicy or remote-viewer:
spicy --uri=spice://192.168.1.125:5901
remote-viewer spice://192.168.1.125:5901
Where 192.168.1.125 is remote server IP-adddress.
Connect by VNC-client to port 5901. You can use vncviewer:
vncviewer 192.168.1.125:5901
Where 192.168.1.125 is remote server IP-adddress.