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

feat: Check returnvalues for drivers (#807)

parent 955f8a08
Loading
Loading
Loading
Loading
+14 −15
Original line number Diff line number Diff line
@@ -1651,9 +1651,8 @@ addFolder() {
  info "$msg" && html "$msg"

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

  ! cp -Lr "$folder/." "$dest" && return 1
  mkdir -p "$dest" || return 1
  cp -Lr "$folder/." "$dest" || return 1

  local file
  file=$(find "$dest" -maxdepth 1 -type f -iname install.bat | head -n 1)
@@ -1715,21 +1714,21 @@ prepareInstall() {
    error "Failed to locate required storage drivers!" && return 1
  fi

  cp -L "$drivers/viostor/$driver/$arch/viostor.sys" "$target"
  cp -L "$drivers/viostor/$driver/$arch/viostor.sys" "$target" || return 1

  mkdir -p "$dir/\$OEM\$/\$1/Drivers/viostor"
  cp -L "$drivers/viostor/$driver/$arch/viostor.cat" "$dir/\$OEM\$/\$1/Drivers/viostor"
  cp -L "$drivers/viostor/$driver/$arch/viostor.inf" "$dir/\$OEM\$/\$1/Drivers/viostor"
  cp -L "$drivers/viostor/$driver/$arch/viostor.sys" "$dir/\$OEM\$/\$1/Drivers/viostor"
  mkdir -p "$dir/\$OEM\$/\$1/Drivers/viostor" || return 1
  cp -L "$drivers/viostor/$driver/$arch/viostor.cat" "$dir/\$OEM\$/\$1/Drivers/viostor" || return 1
  cp -L "$drivers/viostor/$driver/$arch/viostor.inf" "$dir/\$OEM\$/\$1/Drivers/viostor" || return 1
  cp -L "$drivers/viostor/$driver/$arch/viostor.sys" "$dir/\$OEM\$/\$1/Drivers/viostor" || return 1

  if [ ! -f "$drivers/NetKVM/$driver/$arch/netkvm.sys" ]; then
    error "Failed to locate required network drivers!" && return 1
  fi

  mkdir -p "$dir/\$OEM\$/\$1/Drivers/NetKVM"
  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.cat" "$dir/\$OEM\$/\$1/Drivers/NetKVM"
  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.inf" "$dir/\$OEM\$/\$1/Drivers/NetKVM"
  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.sys" "$dir/\$OEM\$/\$1/Drivers/NetKVM"
  mkdir -p "$dir/\$OEM\$/\$1/Drivers/NetKVM" || return 1
  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.cat" "$dir/\$OEM\$/\$1/Drivers/NetKVM" || return 1
  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.inf" "$dir/\$OEM\$/\$1/Drivers/NetKVM" || return 1
  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.sys" "$dir/\$OEM\$/\$1/Drivers/NetKVM" || return 1

  if [ ! -f "$target/TXTSETUP.SIF" ]; then
    error "The file TXTSETUP.SIF could not be found!" && return 1
@@ -1747,9 +1746,9 @@ prepareInstall() {
    error "Failed to locate required SATA drivers!" && return 1
  fi

  mkdir -p "$dir/\$OEM\$/\$1/Drivers/sata"
  cp -Lr "$drivers/sata/xp/$arch/." "$dir/\$OEM\$/\$1/Drivers/sata"
  cp -Lr "$drivers/sata/xp/$arch/." "$target"
  mkdir -p "$dir/\$OEM\$/\$1/Drivers/sata" || return 1
  cp -Lr "$drivers/sata/xp/$arch/." "$dir/\$OEM\$/\$1/Drivers/sata" || return 1
  cp -Lr "$drivers/sata/xp/$arch/." "$target" || return 1

  sed -i '/^\[SCSI.Load\]/s/$/\niaStor=iaStor.sys,4/' "$target/TXTSETUP.SIF"
  sed -i '/^\[FileFlags\]/s/$/\niaStor.sys = 16/' "$target/TXTSETUP.SIF"
+21 −21
Original line number Diff line number Diff line
@@ -704,9 +704,9 @@ addDriver() {
  esac

  local dest="$path/$target/$driver"
  mkdir -p "$dest"
  mkdir -p "$dest" || return 1
  cp -Lr "$path/$driver/$folder/." "$dest" || return 1

  cp -Lr "$path/$driver/$folder/." "$dest"
  return 0
}

@@ -731,33 +731,33 @@ addDrivers() {

  local target="\$WinPEDriver\$"
  local dest="$drivers/$target"
  mkdir -p "$dest"
  mkdir -p "$dest" || return 1

  wimlib-imagex update "$file" "$index" --command "delete --force --recursive /$target" >/dev/null || true

  addDriver "$version" "$drivers" "$target" "qxl"
  addDriver "$version" "$drivers" "$target" "viofs"
  addDriver "$version" "$drivers" "$target" "sriov"
  addDriver "$version" "$drivers" "$target" "smbus"
  addDriver "$version" "$drivers" "$target" "qxldod"
  addDriver "$version" "$drivers" "$target" "viorng"
  addDriver "$version" "$drivers" "$target" "viostor"
  addDriver "$version" "$drivers" "$target" "viomem"
  addDriver "$version" "$drivers" "$target" "NetKVM"
  addDriver "$version" "$drivers" "$target" "Balloon"
  addDriver "$version" "$drivers" "$target" "vioscsi"
  addDriver "$version" "$drivers" "$target" "pvpanic"
  addDriver "$version" "$drivers" "$target" "vioinput"
  addDriver "$version" "$drivers" "$target" "viogpudo"
  addDriver "$version" "$drivers" "$target" "vioserial"
  addDriver "$version" "$drivers" "$target" "qemupciserial"
  addDriver "$version" "$drivers" "$target" "qxl" || return 1
  addDriver "$version" "$drivers" "$target" "viofs" || return 1
  addDriver "$version" "$drivers" "$target" "sriov" || return 1
  addDriver "$version" "$drivers" "$target" "smbus" || return 1
  addDriver "$version" "$drivers" "$target" "qxldod" || return 1
  addDriver "$version" "$drivers" "$target" "viorng" || return 1
  addDriver "$version" "$drivers" "$target" "viostor" || return 1
  addDriver "$version" "$drivers" "$target" "viomem" || return 1
  addDriver "$version" "$drivers" "$target" "NetKVM" || return 1
  addDriver "$version" "$drivers" "$target" "Balloon" || return 1
  addDriver "$version" "$drivers" "$target" "vioscsi" || return 1
  addDriver "$version" "$drivers" "$target" "pvpanic" || return 1
  addDriver "$version" "$drivers" "$target" "vioinput" || return 1
  addDriver "$version" "$drivers" "$target" "viogpudo" || return 1
  addDriver "$version" "$drivers" "$target" "vioserial" || return 1
  addDriver "$version" "$drivers" "$target" "qemupciserial" || return 1

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