feat: Centralize image driver staging (#2045)

This commit is contained in:
Kroese
2026-08-04 14:12:29 +02:00
committed by GitHub
parent 379867370a
commit 16c4ee0552
+40 -27
View File
@@ -1208,6 +1208,40 @@ addDriver() {
return 0 return 0
} }
selectDrivers() {
local version="$1"
local drivers="$2"
local target="$3"
local driver_list=(
qxl
viofs
sriov
smbus
qxldod
viorng
viostor
viomem
NetKVM
Balloon
vioscsi
pvpanic
vioinput
viogpudo
vioserial
qemupciserial
)
local driver
for driver in "${driver_list[@]}"; do
addDriver "$version" "$drivers" "$target" "$driver" || return 1
done
return 0
}
addDrivers() { addDrivers() {
local src="$1" local src="$1"
@@ -1219,8 +1253,8 @@ addDrivers() {
local drivers="$tmp/drivers" local drivers="$tmp/drivers"
rm -rf "$drivers" rm -rf "$drivers" || return 1
mkdir -p "$drivers" mkdir -p "$drivers" || return 1
if enabled "$log"; then if enabled "$log"; then
local msg="Adding drivers to image..." local msg="Adding drivers to image..."
@@ -1248,33 +1282,12 @@ addDrivers() {
return 1 return 1
fi fi
wimlib-imagex update "$file" "$index" --command "delete --force --recursive /$target" >/dev/null || true wimlib-imagex update "$file" "$index" \
--command "delete --force --recursive /$target" >/dev/null || true
fi fi
local driver selectDrivers "$version" "$drivers" "$target" || return 1
local driver_list=(
qxl
viofs
sriov
smbus
qxldod
viorng
viostor
viomem
NetKVM
Balloon
vioscsi
pvpanic
vioinput
viogpudo
vioserial
qemupciserial
)
for driver in "${driver_list[@]}"; do
addDriver "$version" "$drivers" "$target" "$driver" || return 1
done
local dst="$src/\$OEM\$/\$\$/Drivers" local dst="$src/\$OEM\$/\$\$/Drivers"
mkdir -p "$dst" || return 1 mkdir -p "$dst" || return 1
@@ -1283,7 +1296,7 @@ addDrivers() {
# Install the VirtIO display driver explicitly from SetupComplete.cmd so it # Install the VirtIO display driver explicitly from SetupComplete.cmd so it
# cannot disrupt Windows Setup by loading through the WinPE driver path. # cannot disrupt Windows Setup by loading through the WinPE driver path.
if ! isLegacy "$version"; then if ! isLegacy "$version"; then
rm -rf "$dest/viogpudo" rm -rf "$dest/viogpudo" || return 1
fi fi
if [ -n "$file" ]; then if [ -n "$file" ]; then