Unverified Commit 5bd88a5c authored by Kroese's avatar Kroese Committed by GitHub
Browse files

fix: Workaround VirtIO display driver bug (#790)

parent a2208ace
Loading
Loading
Loading
Loading
+17 −9
Original line number Diff line number Diff line
@@ -701,9 +701,6 @@ addDriver() {
    "winvista"* )
      [[ "${driver,,}" == "viorng" ]] && return 0
      ;;
    "win11x64"* | "win2025"* )
      [[ "${driver,,}" == "viogpudo" ]] && return 0
      ;;
  esac

  local dest="$path/$target/$driver"
@@ -714,9 +711,10 @@ addDriver() {

addDrivers() {

  local file="$1"
  local index="$2"
  local version="$3"
  local src="$1"
  local file="$2"
  local index="$3"
  local version="$4"

  local msg="Adding drivers to image..."
  info "$msg" && html "$msg"
@@ -751,6 +749,16 @@ addDrivers() {
  addDriver "$version" "$drivers" "$target" "vioserial"
  addDriver "$version" "$drivers" "$target" "qemupciserial"

  case "${version,,}" in
    "win11x64"* | "win2025"* )
      # Workaround Virtio GPU driver bug
      local dst="$src/\$OEM\$/\$\$/Drivers"
      mkdir -p "$dst"
      ! cp -a "$dest/." "$dst" && return 1
      rm -rf "$dest/viogpudo"
      ;;
  esac

  if ! wimlib-imagex update "$file" "$index" --command "add $dest /$target" >/dev/null; then
    return 1
  fi
@@ -772,10 +780,10 @@ addFolder() {
  local msg="Adding OEM folder to image..."
  info "$msg" && html "$msg"

  local dest="$src/\$OEM\$/\$1/"
  local dest="$src/\$OEM\$/\$1/OEM"
  mkdir -p "$dest"

  ! cp -r "$folder" "$dest" && return 1
  ! cp -a "$folder/." "$dest" && return 1

  local file
  file=$(find "$dest" -maxdepth 1 -type f -iname install.bat | head -n 1)
@@ -824,7 +832,7 @@ updateImage() {
    index="2"
  fi

  if ! addDrivers "$wim" "$index" "$DETECTED"; then
  if ! addDrivers "$src" "$wim" "$index" "$DETECTED"; then
    error "Failed to add drivers to image!" && return 1
  fi