1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 05:27:45 +00:00

Meta: Update CLion and WSL configuration documentations

This commit updates CLionConfiguration.md and NotesOnWSL.md so that
they comply with new build system. In addition to that, the WSL doc
is updated to include instructions to run qemu (and serenity) natively
on Windows, without needing an X-window server.
This commit is contained in:
Devashish 2020-05-17 19:26:46 +05:30 committed by Andreas Kling
parent 6060c7444b
commit e4f7080bbd
3 changed files with 199 additions and 12 deletions

128
Meta/CLion/run.sh Normal file
View file

@ -0,0 +1,128 @@
#!/bin/sh
# shellcheck disable=SC2086 # FIXME: fix these globing warnings
set -e
#SERENITY_PACKET_LOGGING_ARG="-object filter-dump,id=hue,netdev=breh,file=e1000.pcap"
[ -e /dev/kvm ] && [ -r /dev/kvm ] && [ -w /dev/kvm ] && SERENITY_KVM_ARG="-enable-kvm"
[ -z "$SERENITY_BOCHS_BIN" ] && SERENITY_BOCHS_BIN="bochs"
# set this to point to qemu installation on windows
[ -z "$SERENITY_QEMU_BIN" ] && SERENITY_QEMU_BIN="/mnt/c/Program Files/qemu/qemu-system-i386.exe"
[ -z "$SERENITY_KERNEL_CMDLINE" ] && SERENITY_KERNEL_CMDLINE="hello"
[ -z "$SERENITY_RAM_SIZE" ] && SERENITY_RAM_SIZE=256M
[ -z "$SERENITY_COMMON_QEMU_ARGS" ] && SERENITY_COMMON_QEMU_ARGS="
$SERENITY_EXTRA_QEMU_ARGS
-s -m $SERENITY_RAM_SIZE
-cpu max
-d cpu_reset,guest_errors
-smp 2
-device VGA,vgamem_mb=64
-hda _disk_image
-device ich9-ahci
-debugcon stdio
-soundhw pcspk
-soundhw sb16
"
[ -z "$SERENITY_COMMON_QEMU_Q35_ARGS" ] && SERENITY_COMMON_QEMU_Q35_ARGS="
$SERENITY_EXTRA_QEMU_ARGS
-s -m $SERENITY_RAM_SIZE
-cpu max
-machine q35
-d cpu_reset,guest_errors
-smp 2
-device VGA,vgamem_mb=64
-device piix3-ide
-drive file=_disk_image,id=disk,if=none
-device ide-hd,bus=ide.6,drive=disk,unit=0
-debugcon stdio
-soundhw pcspk
-soundhw sb16
"
# set this to the Build directory in serenity
SERENITY_BUILD="/mnt/c/Users/Ragnarok/serenity-project/serenity/Build"
cd "$SERENITY_BUILD" || exit
make install
make image
export SDL_VIDEO_X11_DGAMOUSE=0
if [ "$1" = "b" ]; then
# ./run b: bochs
$SERENITY_BOCHS_BIN -q -f .bochsrc
elif [ "$1" = "qn" ]; then
# ./run qn: qemu without network
"$SERENITY_QEMU_BIN" \
$SERENITY_COMMON_QEMU_ARGS \
-device e1000 \
-kernel Kernel/Kernel \
-append "${SERENITY_KERNEL_CMDLINE}"
elif [ "$1" = "qtap" ]; then
# ./run qtap: qemu with tap
sudo "$SERENITY_QEMU_BIN" \
$SERENITY_COMMON_QEMU_ARGS \
$SERENITY_KVM_ARG \
$SERENITY_PACKET_LOGGING_ARG \
-netdev tap,ifname=tap0,id=br0 \
-device e1000,netdev=br0 \
-kernel Kernel/Kernel \
-append "${SERENITY_KERNEL_CMDLINE}"
elif [ "$1" = "qgrub" ]; then
# ./run qgrub: qemu with grub
"$SERENITY_QEMU_BIN" \
$SERENITY_COMMON_QEMU_ARGS \
$SERENITY_KVM_ARG \
$SERENITY_PACKET_LOGGING_ARG \
-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 \
-device e1000,netdev=breh
elif [ "$1" = "q35_cmd" ]; then
SERENITY_KERNEL_CMDLINE=""
# FIXME: Someone who knows sh syntax better, please help:
for _ in $(seq 2 $#); do
shift
SERENITY_KERNEL_CMDLINE="$SERENITY_KERNEL_CMDLINE $1"
done
echo "Starting SerenityOS, Commandline: ${SERENITY_KERNEL_CMDLINE}"
# ./run: qemu with SerenityOS with custom commandline
"$SERENITY_QEMU_BIN" \
$SERENITY_COMMON_QEMU_Q35_ARGS \
$SERENITY_KVM_ARG \
-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 \
-device e1000,netdev=breh \
-kernel Kernel/Kernel \
-append "${SERENITY_KERNEL_CMDLINE}"
elif [ "$1" = "qcmd" ]; then
SERENITY_KERNEL_CMDLINE=""
# FIXME: Someone who knows sh syntax better, please help:
for _ in $(seq 2 $#); do
shift
SERENITY_KERNEL_CMDLINE="$SERENITY_KERNEL_CMDLINE $1"
done
echo "Starting SerenityOS, Commandline: ${SERENITY_KERNEL_CMDLINE}"
# ./run: qemu with SerenityOS with custom commandline
"$SERENITY_QEMU_BIN" \
$SERENITY_COMMON_QEMU_ARGS \
$SERENITY_KVM_ARG \
-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 \
-device e1000,netdev=breh \
-kernel Kernel/Kernel \
-append "${SERENITY_KERNEL_CMDLINE}"
else
# ./run: qemu with user networking
"$SERENITY_QEMU_BIN" \
$SERENITY_COMMON_QEMU_ARGS \
$SERENITY_KVM_ARG \
$SERENITY_PACKET_LOGGING_ARG \
-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 \
-kernel Kernel/Kernel \
-append "${SERENITY_KERNEL_CMDLINE}"
fi