Compare commits

..

9 Commits
v5.17 ... v5.18

Author SHA1 Message Date
Kroese
675aa5e122 docs: Readme (#595) 2024-01-23 21:49:18 +01:00
Kroese
2a62d4e938 feat: Display console arguments (#594) 2024-01-23 19:32:15 +01:00
Kroese
9cbb51cc86 feat: Display QEMU version (#593) 2024-01-23 19:29:07 +01:00
Kroese
7790f81d15 fix: Trap exit code (#592) 2024-01-23 18:46:47 +01:00
Kroese
fdbff4879b fix: Incorrect path (#591) 2024-01-23 03:06:29 +01:00
Kroese
739e679a66 feat: Check for SHM (#590) 2024-01-23 03:04:47 +01:00
Kroese
0dea507d85 feat: Shorter messages (#588) 2024-01-23 00:15:11 +01:00
Kroese
4f524c47d8 docs: Readme (#587) 2024-01-22 03:24:00 +01:00
Kroese
0c74201eb4 feat: CPU flags (#586) 2024-01-21 20:52:53 +01:00
7 changed files with 39 additions and 27 deletions

View File

@@ -47,7 +47,7 @@ services:
Via `docker run`
```bash
docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 60 vdsm/virtual-dsm
docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 vdsm/virtual-dsm
```
## FAQ
@@ -99,7 +99,7 @@ docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-ti
Please note that this may reduce the write performance of the disk.
* ### How do I add multiple disks?
* ### How do I add multiple disks?
To create additional disks, modify your compose file like this:
@@ -114,7 +114,7 @@ docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-ti
* ### How do I pass-through a disk?
It is possible to pass-through disk devices directly by adding them to your compose file in this way:
It is possible to pass-through disk devices directly by adding them to your compose file in this way:
```yaml
environment:

View File

@@ -3,8 +3,8 @@ set -Eeuo pipefail
DEF_OPTS="-nodefaults -boot strict=on"
RAM_OPTS=$(echo "-m $RAM_SIZE" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g')
CPU_OPTS="-cpu $CPU_MODEL -smp $CPU_CORES,sockets=1,dies=1,cores=$CPU_CORES,threads=1"
MAC_OPTS="-machine type=q35,usb=off,dump-guest-core=off,hpet=off${KVM_OPTS}"
CPU_OPTS="-cpu $CPU_FLAGS -smp $CPU_CORES,sockets=1,dies=1,cores=$CPU_CORES,threads=1"
MAC_OPTS="-machine type=q35,usb=off,vmport=off,dump-guest-core=off,hpet=off${KVM_OPTS}"
DEV_OPTS="-device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x4"
DEV_OPTS="$DEV_OPTS -object rng-random,id=objrng0,filename=/dev/urandom"
DEV_OPTS="$DEV_OPTS -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,addr=0x1c"

View File

@@ -112,8 +112,8 @@ createDisk() {
fi
fi
MSG="Creating a $DISK_TYPE $DISK_DESC image in $DISK_FMT format with a size of $DISK_SPACE..."
info "$MSG" && html "$MSG"
html "Creating a $DISK_DESC image..."
info "Creating a $DISK_TYPE $DISK_DESC image in $DISK_FMT format with a size of $DISK_SPACE..."
local FAIL="Could not create a $DISK_TYPE $DISK_FMT $DISK_DESC image of $DISK_SPACE ($DISK_FILE)"
@@ -266,8 +266,8 @@ convertDisk() {
fi
fi
MSG="Converting $DISK_DESC to $DST_FMT, please wait until completed..."
info "$MSG" && html "$MSG"
html "Converting $DISK_DESC to $DST_FMT..."
info "Converting $DISK_DESC to $DST_FMT, please wait until completed..."
local CONV_FLAGS="-p"
local DISK_PARAM="$DISK_ALLOC"
@@ -306,8 +306,8 @@ convertDisk() {
fi
fi
MSG="Conversion of $DISK_DESC to $DST_FMT completed succesfully!"
info "$MSG" && html "$MSG"
html "Conversion of $DISK_DESC completed..."
info "Conversion of $DISK_DESC to $DST_FMT completed succesfully!"
return 0
}

View File

@@ -18,11 +18,13 @@ cd /run
trap - ERR
info "Booting $APP using $VERS..."
[[ "$DEBUG" == [Yy1]* ]] && echo "Arguments: $ARGS" && echo
if [[ "$CONSOLE" == [Yy]* ]]; then
exec qemu-system-x86_64 ${ARGS:+ $ARGS}
fi
[[ "$DEBUG" == [Yy1]* ]] && info "$VERS" && echo "Arguments: $ARGS" && echo
{ qemu-system-x86_64 ${ARGS:+ $ARGS} >"$QEMU_OUT" 2>"$QEMU_LOG"; rc=$?; } || :
(( rc != 0 )) && error "$(<"$QEMU_LOG")" && exit 15

View File

@@ -98,7 +98,6 @@ terminal() {
_graceful_shutdown() {
local cnt=0
local code=$?
local pid url response
@@ -144,6 +143,8 @@ _graceful_shutdown() {
fi
local cnt=0
while [ "$cnt" -lt "$QEMU_TIMEOUT" ]; do
! isAlive "$pid" && break

View File

@@ -5,8 +5,8 @@ set -Eeuo pipefail
: "${KVM:="Y"}"
: "${HOST_CPU:=""}"
: "${CPU_FLAGS:=""}"
: "${CPU_MODEL:="host"}"
: "${CPU_FEATURES:="+ssse3,+sse4.1,+sse4.2"}"
[ "$ARCH" != "amd64" ] && KVM="N"
@@ -37,6 +37,7 @@ fi
if [[ "$KVM" != [Nn]* ]]; then
CPU_FEATURES="kvm=on"
KVM_OPTS=",accel=kvm -enable-kvm"
if ! grep -qE '^flags.* (sse4_2)' /proc/cpuinfo; then
@@ -48,15 +49,23 @@ if [[ "$KVM" != [Nn]* ]]; then
else
KVM_OPTS=""
CPU_FEATURES="+ssse3,+sse4.1,+sse4.2"
if [[ "${CPU_MODEL,,}" == "host"* ]]; then
if [[ "$CPU_MODEL" == "host"* ]]; then
if [[ "$ARCH" == "amd64" ]]; then
CPU_MODEL="max,$CPU_FEATURES"
CPU_MODEL="max"
else
CPU_MODEL="qemu64,$CPU_FEATURES"
CPU_MODEL="qemu64"
fi
fi
fi
fi
if [ -z "$CPU_FLAGS" ]; then
CPU_FLAGS="$CPU_MODEL,$CPU_FEATURES"
else
CPU_FLAGS="$CPU_MODEL,$CPU_FEATURES,$CPU_FLAGS"
fi
if [ -z "$HOST_CPU" ]; then

View File

@@ -29,7 +29,7 @@ echo
# Helper variables
STORAGE="/storage"
INFO="/dev/shm/msg.html"
INFO="/run/shm/msg.html"
PAGE="/run/shm/index.html"
TEMPLATE="/var/www/index.html"
FOOTER1="$APP for Docker v$(</run/version)"
@@ -40,20 +40,20 @@ MINOR=$(uname -r | cut -d '.' -f2)
ARCH=$(dpkg --print-architecture)
VERS=$(qemu-system-x86_64 --version | head -n 1 | cut -d '(' -f 1)
# Check system
if [ ! -d "/dev/shm" ]; then
error "Directory /dev/shm not found!" && exit 14
else
[ ! -d "/run/shm" ] && ln -s /dev/shm /run/shm
fi
# Check folder
if [ ! -d "$STORAGE" ]; then
error "Storage folder ($STORAGE) not found!" && exit 13
fi
if [ ! -d "/run/shm" ]; then
if [ -d "/dev/shm" ]; then
ln -s /dev/shm /run/shm
else
error "Folder /dev/shm not found!" && exit 14
fi
fi
# Cleanup files
rm -f /run/shm/qemu.*
rm -f /run/shm/dsm.url