mirror of
https://github.com/dockur/windows.git
synced 2026-08-24 23:58:58 +01:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e1d0eac2d | |||
| 2a25cede86 | |||
| f31e9addd6 | |||
| 874c5d5fa3 | |||
| 3c50cdd981 | |||
| ed83980b1d | |||
| 91b7e8a9c1 | |||
| 4e57031200 |
+4
-7
@@ -1,13 +1,12 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1.19
|
||||||
|
|
||||||
ARG VERSION_ARG="latest"
|
ARG VERSION_ARG="latest"
|
||||||
FROM scratch AS build-amd64
|
FROM scratch AS build-amd64
|
||||||
|
|
||||||
COPY --from=qemux/qemu:7.48 / /
|
COPY --from=qemux/qemu:7.49 --exclude=usr/bin/qemu-system-x86_64 / /
|
||||||
|
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
|
|
||||||
ARG VERSION_UDF="1.2.0"
|
|
||||||
ARG VERSION_WSDD="1.27"
|
ARG VERSION_WSDD="1.27"
|
||||||
ARG VERSION_VIRTIO="1.9.60"
|
ARG VERSION_VIRTIO="1.9.60"
|
||||||
ARG VERSION_BLINTER="1.0.112"
|
ARG VERSION_BLINTER="1.0.112"
|
||||||
@@ -39,16 +38,14 @@ RUN <<EOF
|
|||||||
wget "https://github.com/gershnik/wsdd-native/releases/download/v${VERSION_WSDD}/wsddn_${VERSION_WSDD}_${TARGETARCH}.deb" -O /tmp/wsddn.deb -q --timeout=10
|
wget "https://github.com/gershnik/wsdd-native/releases/download/v${VERSION_WSDD}/wsddn_${VERSION_WSDD}_${TARGETARCH}.deb" -O /tmp/wsddn.deb -q --timeout=10
|
||||||
dpkg -i /tmp/wsddn.deb
|
dpkg -i /tmp/wsddn.deb
|
||||||
|
|
||||||
# Install UDFread package
|
|
||||||
wget "https://github.com/qemus/udfread/releases/download/v${VERSION_UDF}/udfread_${VERSION_UDF}_${TARGETARCH}.deb" -O /tmp/udfread.deb -q --timeout=10
|
|
||||||
dpkg -i /tmp/udfread.deb
|
|
||||||
|
|
||||||
apt-get clean
|
apt-get clean
|
||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
COPY --chmod=755 ./src /run/
|
COPY --chmod=755 ./src /run/
|
||||||
COPY --chmod=755 ./assets /run/assets
|
COPY --chmod=755 ./assets /run/assets
|
||||||
|
COPY --from=qemux/udfread:1.2.0 /udfread /usr/bin/
|
||||||
|
COPY --from=qemux/qemu-helios:1.0.0 /usr/bin/qemu-system-x86_64 /usr/bin/
|
||||||
|
|
||||||
ADD --chmod=664 https://github.com/qemus/virtiso-whql/releases/download/v${VERSION_VIRTIO}-0/virtio-win-${VERSION_VIRTIO}.tar.xz /var/drivers.txz
|
ADD --chmod=664 https://github.com/qemus/virtiso-whql/releases/download/v${VERSION_VIRTIO}-0/virtio-win-${VERSION_VIRTIO}.tar.xz /var/drivers.txz
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -33,6 +33,7 @@ An empty default means the variable is unset and its value is determined automat
|
|||||||
| `VMX` | `N` | Exposes Intel VMX virtualization extensions to the guest. |
|
| `VMX` | `N` | Exposes Intel VMX virtualization extensions to the guest. |
|
||||||
| `HV` | `Y` | Enables Hyper-V enlightenments for Windows guests. |
|
| `HV` | `Y` | Enables Hyper-V enlightenments for Windows guests. |
|
||||||
| `RAM_SIZE` | `4G` | Amount of RAM assigned to Windows, such as `8G`, `half`, or `max`. |
|
| `RAM_SIZE` | `4G` | Amount of RAM assigned to Windows, such as `8G`, `half`, or `max`. |
|
||||||
|
| `RAM_BACKEND` | | Guest RAM backing mechanism, set `memfd` for memfd-backed memory. |
|
||||||
| `RAM_CHECK` | `Y` | Checks whether enough host memory is available before starting Windows. |
|
| `RAM_CHECK` | `Y` | Checks whether enough host memory is available before starting Windows. |
|
||||||
|
|
||||||
## 💾 Storage
|
## 💾 Storage
|
||||||
@@ -113,8 +114,8 @@ An empty default means the variable is unset and its value is determined automat
|
|||||||
| `PCI_BUS` | `pcie.0` | Overrides the PCI bus used for attached devices. |
|
| `PCI_BUS` | `pcie.0` | Overrides the PCI bus used for attached devices. |
|
||||||
| `RNG` | `Y` | Adds the Virtio RNG device to the machine. |
|
| `RNG` | `Y` | Adds the Virtio RNG device to the machine. |
|
||||||
| `UUID` | | UUID assigned to Windows. |
|
| `UUID` | | UUID assigned to Windows. |
|
||||||
| `HPET` | `off` | HPET timer setting. |
|
| `HPET` | `N` | HPET timer setting. |
|
||||||
| `VMPORT` | `off` | VMware port setting. |
|
| `VMPORT` | `N` | VMware port setting. |
|
||||||
| `MOUSE` | `usb-tablet` | Pointing device used by the machine. |
|
| `MOUSE` | `usb-tablet` | Pointing device used by the machine. |
|
||||||
| `SOUND` | `intel-hda` | Audio device used when `AUDIO=Y`. |
|
| `SOUND` | `intel-hda` | Audio device used when `AUDIO=Y`. |
|
||||||
| `SM_BIOS` | | Additional arguments passed to QEMU’s `-smbios` option. |
|
| `SM_BIOS` | | Additional arguments passed to QEMU’s `-smbios` option. |
|
||||||
|
|||||||
@@ -31,6 +31,9 @@ setMachine() {
|
|||||||
"winnt4" )
|
"winnt4" )
|
||||||
writeState "vga" "cirrus" || return 1 ;;
|
writeState "vga" "cirrus" || return 1 ;;
|
||||||
|
|
||||||
|
"win2k"* | "winxp"* | "win2003"* )
|
||||||
|
writeState "vga" "vmware" || return 1 ;;
|
||||||
|
|
||||||
*) writeState "vga" "std" || return 1 ;;
|
*) writeState "vga" "std" || return 1 ;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|||||||
+46
-2
@@ -46,9 +46,14 @@ SIFInstall() {
|
|||||||
|
|
||||||
"2k" )
|
"2k" )
|
||||||
# Windows 2000 keeps its existing storage/network path, but still needs
|
# Windows 2000 keeps its existing storage/network path, but still needs
|
||||||
# the QBochs display package staged for Plug and Play setup.
|
# its display driver packages staged for Plug and Play setup.
|
||||||
extractDrivers "$drivers" || return 1
|
extractDrivers "$drivers" || return 1
|
||||||
|
|
||||||
|
if ! addVMSVGADriver "$dir" "$driver" "$arch" "$drivers"; then
|
||||||
|
rm -rf "$drivers" || :
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! addDisplayDriver "$dir" "$driver" "$arch" "$drivers"; then
|
if ! addDisplayDriver "$dir" "$driver" "$arch" "$drivers"; then
|
||||||
rm -rf "$drivers" || :
|
rm -rf "$drivers" || :
|
||||||
return 1
|
return 1
|
||||||
@@ -183,6 +188,7 @@ addLegacyDrivers() {
|
|||||||
copyStorageDriver "$dir" "$target" "$driver" "$arch" "$drivers" || return 1
|
copyStorageDriver "$dir" "$target" "$driver" "$arch" "$drivers" || return 1
|
||||||
addNetworkDriver "$dir" "$driver" "$arch" "$drivers" || return 1
|
addNetworkDriver "$dir" "$driver" "$arch" "$drivers" || return 1
|
||||||
addQXLDriver "$dir" "$driver" "$arch" "$drivers" || return 1
|
addQXLDriver "$dir" "$driver" "$arch" "$drivers" || return 1
|
||||||
|
addVMSVGADriver "$dir" "$driver" "$arch" "$drivers" || return 1
|
||||||
addDisplayDriver "$dir" "$driver" "$arch" "$drivers" || return 1
|
addDisplayDriver "$dir" "$driver" "$arch" "$drivers" || return 1
|
||||||
disableGenericDisplay "$target" "$driver" "$arch" "$drivers" || return 1
|
disableGenericDisplay "$target" "$driver" "$arch" "$drivers" || return 1
|
||||||
addBalloonDriver "$dir" "$driver" "$arch" "$drivers" || return 1
|
addBalloonDriver "$dir" "$driver" "$arch" "$drivers" || return 1
|
||||||
@@ -287,6 +293,44 @@ addQXLDriver() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addVMSVGADriver() {
|
||||||
|
|
||||||
|
local dir="$1"
|
||||||
|
local driver="$2"
|
||||||
|
local arch="$3"
|
||||||
|
local drivers="$4"
|
||||||
|
|
||||||
|
local vmsvga_arch="$arch"
|
||||||
|
[[ "${vmsvga_arch,,}" == "amd64" ]] && vmsvga_arch="x64"
|
||||||
|
|
||||||
|
local source="$drivers/vmsvga/$driver/$vmsvga_arch"
|
||||||
|
local destination="$dir/\$OEM\$/\$1/Drivers/VMSVGA"
|
||||||
|
|
||||||
|
if [ ! -d "$source" ]; then
|
||||||
|
error "Failed to locate required VMware SVGA display driver directory: $source"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local files="vmx_svgaver.dll vmx_svga.cat vmx_mode.dll vmx_svga.sys vmwogl32.dll vmx_fb.dll vmx_svga.inf"
|
||||||
|
[[ "$vmsvga_arch" == "x64" ]] && files+=" vmwogl64.dll"
|
||||||
|
|
||||||
|
local file
|
||||||
|
|
||||||
|
for file in $files; do
|
||||||
|
|
||||||
|
if [ ! -f "$source/$file" ]; then
|
||||||
|
error "Failed to locate required VMware SVGA display driver file: $file"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
mkdir -p "$destination" || return 1
|
||||||
|
cp -Lr "$source/." "$destination" || return 1
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
addDisplayDriver() {
|
addDisplayDriver() {
|
||||||
|
|
||||||
local dir="$1"
|
local dir="$1"
|
||||||
@@ -771,7 +815,7 @@ writeSIF() {
|
|||||||
' WaitForReboot="No"' \
|
' WaitForReboot="No"' \
|
||||||
' DriverSigningPolicy="Ignore"' \
|
' DriverSigningPolicy="Ignore"' \
|
||||||
' NonDriverSigningPolicy="Ignore"' \
|
' NonDriverSigningPolicy="Ignore"' \
|
||||||
' OemPnPDriversPath="Drivers\viostor;Drivers\NetKVM;Drivers\sata;Drivers\QXL;Drivers\QBochs;Drivers\Balloon"' \
|
' OemPnPDriversPath="Drivers\viostor;Drivers\NetKVM;Drivers\sata;Drivers\QXL;Drivers\VMSVGA;Drivers\QBochs;Drivers\Balloon"' \
|
||||||
' NoWaitAfterTextMode=1' \
|
' NoWaitAfterTextMode=1' \
|
||||||
' NoWaitAfterGUIMode=1' \
|
' NoWaitAfterGUIMode=1' \
|
||||||
' FileSystem=ConvertNTFS' \
|
' FileSystem=ConvertNTFS' \
|
||||||
|
|||||||
Reference in New Issue
Block a user