summaryrefslogtreecommitdiff
path: root/Meta/run.sh
AgeCommit message (Collapse)Author
2022-02-07Meta: Fix "Meta/serenity.sh run x86_64 Clang" on M1 Macsserenityosrocks
QEMU crashes on M1 Macs when using `--accel hvf` option. To solve this, detect the host's architecture and only add the `--accel hvf` parameter if we are running on a "x86_64" machine. This will allow "arm64" machines like M1 Macs to work correctly.
2022-02-06Meta: Don't override SERENITY_QEMU_DISPLAY_DEVICE if it is already setAndrew Pietila
2022-01-28Meta: Set correct boot drive when running with SERENITY_NVME_ENABLEIdan Horowitz
2022-01-20Userland: Add horizontal mouse scroll supportDmitry Petrov
2022-01-09Meta: Make "Meta/serenity.sh run aarch64" work on macOSserenityosrocks
2022-01-07Meta: Remove explicit IDE attached drive from q35 setupLiav A
Use $SERENITY_BOOT_DRIVE to determine it for us.
2022-01-01Meta: Rename SERINITY_NVME_ENABLE variable to SERENITY_NVME_ENABLETom
2022-01-01Meta: Enable attaching NVMe storage devices to qemuPankaj Raghav
Add an option to enable NVMe storage device as the boot drive. To enable NVMe support, run the following: $ SERENITY_NVME_ENABLE=1 Meta/serenity.sh run i686 root=/dev/nvme0n1
2021-12-26Meta: Don't override SERENITY_KVM_SUPPORT if it is already setKelvium
I've seen how @awesomekling changes the script to disable KVM, so that's a useful thing to have. An example how to use it: SERENITY_KVM_SUPPORT='0' ./Meta/serenity.sh run x86_64 My first commit btw :^)
2021-12-12Meta: Conditionally run QEMU with QMPNathan Ell
QMP is currently used with UNIX sockets, which can't be created on Windows hosts. Let's just not start QMP if using Windows QEMU.
2021-12-11Meta: Run QEMU with QMP socketAndreas Kling
This allows external connections to the QEMU monitor via QMP.
2021-11-23Meta: Increase PulseAudio timer period to 2msJelle Raaijmakers
This seems to prevent crackling audio when starting up Qemu whenever there is audio already playing.
2021-11-23Meta: Use 1ms timer period for Qemu Pulse Audio backendJelle Raaijmakers
The default seems to be 10ms and can result in a lot of crackling noises in the output. A value of 1ms works well on my machine.
2021-11-23Meta: Use AC97 device in Qemu by defaultJelle Raaijmakers
2021-10-25Kernel: Separate framebuffers from bootmodeBen Wiederhake
Bootmode used to control framebuffers, panic behavior, and SystemServer. This patch factors framebuffer control into a separate flag. Note that the combination 'bootmode=self-test fbdev=on' leads to unexpected behavior, which can only be fixed in a later commit.
2021-09-26Meta: Pass `-serial stdio` to qemu on aarch64Nico Weber
With this, `Meta/serenity.sh run aarch64` produces some output on the terminal :^)
2021-09-19Meta: Bump default VM memory size to 1 GiBAndreas Kling
2021-09-06Meta: Unbreak `serenity.sh run aarch64` after 918f7cb4a88Nico Weber
2021-09-04Meta: Force legacy xAPIC when using 8 cores or lessTom
This is merely so that we exercise the legacy xAPIC code when we don't really need x2APIC.
2021-09-04Meta: Add q35grub option in run.shLiav A
This option is similar to the qgrub option, but instead of starting a QEMU PIIX4 machine, it starts a QEMU Q35 machine, booting a grub image disk within it.
2021-08-28Meta: Don't pass net -device flags in aarch64 buils in run.shNico Weber
2021-08-28Meta: Introduce SERENITY_MACHINE variable in run.shNico Weber
Set it to all the `-m`, `-display`, `-device` flags for Intel, and to just "-M raspi3" for aarch64 builds.
2021-08-28Meta: Disable spice in aarch64 buils in run.shNico Weber
2021-08-28Meta: Run qemu-system-aarch64 in aarch64 builds in run.shNico Weber
2021-08-28Meta: Disable kvm for aarch64 in run.shNico Weber
2021-08-27Meta: Add System32 to the PATH so that reg.exe is always foundkleines Filmröllchen
On my machine (c), /mnt/c/Windows/System32 is not on the PATH by default. This causes reg.exe to fail, which is responsible for detecting the presence of QEMU. By putting this path on the PATH on WSL, it will always work regardless of the specific PATH configuration, and QEMU is always detected.
2021-08-09Meta: Add SERENITY_CPUS environment variable to control number of CPUsTom
2021-08-08Meta: Don't use x86_64 QEMU for the i686 kernelGunnar Beutner
This seemed like a good idea at the time to avoid an unnecessary dependency on qemu-system-i386. However this makes debugging the kernel with GDB more difficult because GDB assumes that the QEMU architectures matches the kernel architecture.
2021-08-07Meta: Remove legacy hardware components from Q35 machineLiav A
As this is a test machine I use personally to test "modern" hardware setups, it feels quite comfortable to not care too much about VGA with this type of machine. Also, we don't actively use the IDE controller on this machine type, so let's just remove it :^)
2021-08-07Meta: Add run-local.shsin-ack
This allows one to set their desired parameters for run.sh without the need to set them in every terminal session or add it to the user account shell files. If a run-local.sh file exists at the repository root and is executable, it will be sourced. The file can contain any variables that are expected to be set in run.sh.
2021-08-04Meta: Detect nested KVM support for WSL2 and use that when availableGunnar Beutner
This allows running QEMU inside WSL2 for hosts which have nested KVM and WSLg support (e.g. Windows 11). Running QEMU inside the WSL2 VM is slightly slower than running QEMU on Windows, probably because of how WSLg handles screen updates.
2021-08-04Meta: Automatically enable WHPX when possibleGunnar Beutner
2021-08-04Meta: Auto-detect where QEMU is installed on WindowsGunnar Beutner
2021-08-03Meta: Make the Q35 machine more realisticLiav A
Although it is nice to test the system without too many devices, in reality bare metal hardware is far more complex than the default skeleon that QEMU provides. As a preparation of supporting more devices, we need to ensure we are capable of at least booting on complex hardware setups without easily-observable problems. Later on, this can be the foundations of testing new drivers :^)
2021-08-03Meta: Prefer to use the 64-bit QEMU binary if that's availableGunnar Beutner
Some users might not have qemu-system-i386 installed.
2021-08-03Meta: Prefer to use -machine pcspk-audiodev for QEMU >=5.1Gunnar Beutner
This gets rid of the following warning message from QEMU on startup: qemu-system-i386: warning: '-soundhw pcspk' is deprecated, please set a backend using '-machine pcspk-audiodev=<name>' instead Fixes #4093.
2021-08-02Meta: Improve WSL detection for the run.sh scriptGunnar Beutner
For users who use a custom kernel with WSL our previous method of detecting WSL doesn't work. This new check instead detects WSL by checking if the wslpath utility is available.
2021-08-02Meta: Explicitly specify the disk format in the QEMU optionsx-yl
Otherwise we're getting this warning: WARNING: Image format was not specified for '_disk_image' and probing guessed raw. Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted. Specify the 'raw' format explicitly to remove the restrictions.
2021-08-02Meta: Fix compatibility with QEMU 5.xGunnar Beutner
QEMU 5 doesn't support -machine pcspk-audiodev so we need to fall back to using -soundhw for that.
2021-07-30Meta: Make audiodev detection more robustGunnar Beutner
This fixes audio on Windows as well as Linux systems which don't have SDL. Fixes #8903.
2021-07-27Meta: Set -audiodev explictlyx-yl
Unfortunately seems like QEMU tries to use SPICE for audio so we need to explicitly set -audiodev to use either SDL or coreaudio (depending on platorm)
2021-07-26Meta: Don't reboot on triple-fault in CI modeAli Mohammad Pur
Instead, just make QEMU quit immediately.
2021-07-24Meta/run.sh: Allow for overriding of QEMU ethernet device typeThomas Wagenveld
You can set the SERENITY_ETHERNET_DEVICE_TYPE environment variable to pick another device type (i.e. ne2k_pci). Defaults to e1000 as before.
2021-07-20Meta: Add a new qextlinux target for the run.sh scriptGunnar Beutner
This allows testing the extlinux image with QEMU.
2021-07-18Meta: Remove unused bootloader_test targetGunnar Beutner
Due to other changes this is now just a copy of the q35 target.
2021-07-18Kernel: Introduce basic pre-kernel environmentGunnar Beutner
This implements a simple bootloader that is capable of loading ELF64 kernel images. It does this by using QEMU/GRUB to load the kernel image from disk and pass it to our bootloader as a Multiboot module. The bootloader then parses the ELF image and sets it up appropriately. The kernel's entry point is a C++ function with architecture-native code. Co-authored-by: Liav A <liavalb@gmail.com>
2021-07-14Meta: Fix SPICE detection in run.shSam Atkins
The previous fix did not work for me, but this does. :^) Credit goes to @X-yl for actually figuring it out.
2021-07-14Meta: Don't use SPICE if QEMU doesn't support itx-yl
I do seem to have a tendency for breaking everyone's builds :/
2021-07-14Meta: Change QEMU options in run.sh to use SPICEx-yl
If QEMU has the qemu_vdagent chardev (should be present in QEMU 6.1) then we use that as the SPICE client. If qemu_vdagent is not present, no SPICE client will be launched by default because it makes the display a bit choppy. Set SERENITY_SPICE to override the default behavior and use your default SPICE client.
2021-07-13Meta: Remove options of explicit command line runners in run scriptLiav A
Let's remove the qcmd and q35_cmd options and instead have a simple "q35" run option. Specifiying the kernel command line was a neat trick I personally used for many debug sessions, but it seems better to stick to setting it internally in the kernel or modifying the shell SERENITY_KERNEL_CMDLINE environment variable to do this.