summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorProsperousPotato <ProsperousPotato@users.noreply.github.com>2026-03-23 18:53:05 +0000
committerProsperousPotato <ProsperousPotato@users.noreply.github.com>2026-03-23 18:53:05 +0000
commit4cb66fdb60847e82e37b971de6955240ddb02215 (patch)
treeb821af1847c453822cb1781b9e7323dbf48fc5fd
parent164e013298d5a196aeafd7b06dc29bb1246ae042 (diff)
update portage dirHEADmaster
-rw-r--r--make.conf8
-rw-r--r--package.accept_keywords/testing29
-rw-r--r--package.license2
-rw-r--r--package.mask/audio4
-rw-r--r--package.mask/base1
-rw-r--r--package.mask/mangohud1
-rw-r--r--package.use/cups1
-rw-r--r--package.use/dnsmasq1
-rw-r--r--package.use/gui2
-rw-r--r--package.use/libvirt2
-rw-r--r--package.use/mpv2
-rw-r--r--package.use/neomutt1
-rw-r--r--package.use/profile_change6
-rw-r--r--package.use/qemu2
-rw-r--r--package.use/scim2
-rw-r--r--package.use/smartmontools1
-rw-r--r--package.use/transmission1
-rw-r--r--package.use/udev2
-rw-r--r--package.use/xlibre4
-rw-r--r--package.use/zlib1
-rw-r--r--patches/app-emulation/qemu-10.2.0/avoid-detection.patch1586
-rw-r--r--profile/package.provided2
-rw-r--r--savedconfig/media-gfx/nsxiv-34222
-rw-r--r--savedconfig/sys-kernel/linux-firmware-2026022113
24 files changed, 1864 insertions, 32 deletions
diff --git a/make.conf b/make.conf
index 364314b..647acb5 100644
--- a/make.conf
+++ b/make.conf
@@ -4,7 +4,7 @@ CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
LDFLAGS="-Wl,-O3 -Wl,--as-needed -Wl,-z,pack-relative-relocs ${COMMON_FLAGS}"
-RUSTFLAGS="${RUSTFLAGS} -C target-cpu=native"
+RUSTFLAGS="${RUSTFLAGS} -C target-cpu=native -C opt-level=3 -C debuginfo=0 -C prefer-dynamic=yes"
USE="X minimal ssl xinerama qemu alsa opengl graphite harfbuzz lzma zstd threads vaapi hwloc jpegxl vulkan lto fbcon dri vpx x264 x265 openh264 sasl caps opencl ffmpeg caps \
@@ -15,7 +15,7 @@ USE="X minimal ssl xinerama qemu alsa opengl graphite harfbuzz lzma zstd threads
-speech -vnc -xemacs -ibm -3dfx -cjk -xnest -jack -smartcard -policykit -gstreamer -consolekit -kerberos -ldap -wayland -webkit -webengine -kde -gnome -xfce -pulseaudio \
-bluetooth -vlc -networkmanager -udisks -systemd -pam -elogind -dbus -accessibility -libnotify -startup-notification -pipewire -automount -trash-panel-plugin -pcre -gvfs \
-dbusmenu -qt -gtk -qt5 -qt6 -gpm -initramfs -introspection -tiff -telemetry -gnome-shell -proprietary-codecs -vala -gmp-autoupdate -wxwidgets -nvidia -emboss -bindist \
- -deno -discord -dhcp -soc -udev -qdbus -screencast -assistant -debuginfod"
+ -deno -discord -dhcp -soc -udev -qdbus -screencast -assistant -debuginfod -test -ipv6 -icu"
FEATURES="parallel-install parallel-fetch usersync"
@@ -37,9 +37,5 @@ ABI_X86="64 32"
LC_MESSAGES=C.UTF-8
-# GENTOO_MIRRORS="https://mirror.bytemark.co.uk/gentoo/ \
- # https://mirrors.gethosted.online/gentoo/ \
- # https://www.mirrorservice.org/sites/distfiles.gentoo.org/"
-
CPU_FLAGS_X86="aes avx avx2 bmi1 bmi2 f16c fma3 mmx mmxext pclmul popcnt rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3"
MICROCODE_SIGNATURES="-s 0x000306f2"
diff --git a/package.accept_keywords/testing b/package.accept_keywords/testing
index 0374882..fbe25f9 100644
--- a/package.accept_keywords/testing
+++ b/package.accept_keywords/testing
@@ -1,14 +1,15 @@
-app-shells/zoxide ~amd64
-sys-kernel/linux-firmware ~amd64
-<=sys-kernel/gentoo-sources-6.18.5 ~amd64
-x11-libs/gtk+ ~amd64
-media-gfx/nsxiv ~amd64
-dev-util/rocm-smi ~amd64
-net-libs/nodejs ~amd64
-dev-cpp/simdutf ~amd64
-dev-libs/simdjson ~amd64
-net-libs/nghttp2 ~amd64
-dev-util/rustup ~amd64
-app-mobilephone/scrcpy ~amd64
-www-client/glide-browser-bin ~amd64
-www-client/icecat ~amd64
+app-shells/zoxide
+sys-kernel/linux-firmware
+sys-kernel/gentoo-sources
+x11-libs/gtk+
+media-gfx/nsxiv
+dev-util/rocm-smi
+net-libs/nodejs
+dev-cpp/simdutf
+dev-libs/simdjson
+net-libs/nghttp2
+app-mobilephone/scrcpy
+www-client/glide-browser-bin
+www-client/icecat
+dev-vcs/gitui
+app-misc/onefetch
diff --git a/package.license b/package.license
index c7f0126..4f0818d 100644
--- a/package.license
+++ b/package.license
@@ -1,5 +1,3 @@
sys-firmware/intel-microcode intel-ucode
sys-kernel/linux-firmware linux-fw-redistributable
games-util/steam-launcher ValveSteamLicense
-games-emulation/ppsspp JSON
-app-arch/unrar unRAR
diff --git a/package.mask/audio b/package.mask/audio
new file mode 100644
index 0000000..2e34f25
--- /dev/null
+++ b/package.mask/audio
@@ -0,0 +1,4 @@
+media-sound/pulseaudio-daemon
+media-video/pipewire
+media-sound/jack
+media-sound/jack2
diff --git a/package.mask/base b/package.mask/base
index dcc6745..d7d13f6 100644
--- a/package.mask/base
+++ b/package.mask/base
@@ -1 +1,2 @@
sys-apps/elogind
+dev-lang/rust-bin
diff --git a/package.mask/mangohud b/package.mask/mangohud
deleted file mode 100644
index 27f95c4..0000000
--- a/package.mask/mangohud
+++ /dev/null
@@ -1 +0,0 @@
-games-util/mangohud::parona-overlay
diff --git a/package.use/cups b/package.use/cups
new file mode 100644
index 0000000..5fb271f
--- /dev/null
+++ b/package.use/cups
@@ -0,0 +1 @@
+net-print/cups -X -acl
diff --git a/package.use/dnsmasq b/package.use/dnsmasq
new file mode 100644
index 0000000..3f6b9ec
--- /dev/null
+++ b/package.use/dnsmasq
@@ -0,0 +1 @@
+net-dns/dnsmasq dhcp script ipv6
diff --git a/package.use/gui b/package.use/gui
index fbcaba4..1f04f2a 100644
--- a/package.use/gui
+++ b/package.use/gui
@@ -1 +1 @@
-media-libs/openal -gui
+media-libs/openal -gui sdl
diff --git a/package.use/libvirt b/package.use/libvirt
new file mode 100644
index 0000000..1821328
--- /dev/null
+++ b/package.use/libvirt
@@ -0,0 +1,2 @@
+sys-apps/iproute2 -minimal
+net-libs/gnutls pkcs11 tools
diff --git a/package.use/mpv b/package.use/mpv
index b7f67ab..fa39eb6 100644
--- a/package.use/mpv
+++ b/package.use/mpv
@@ -1 +1 @@
-media-video/mpv bluray sixel gamepad
+media-video/mpv bluray gamepad openal dvd xv jpeg
diff --git a/package.use/neomutt b/package.use/neomutt
new file mode 100644
index 0000000..8d07fb6
--- /dev/null
+++ b/package.use/neomutt
@@ -0,0 +1 @@
+mail-client/neomutt -notmuch
diff --git a/package.use/profile_change b/package.use/profile_change
new file mode 100644
index 0000000..1fdba7c
--- /dev/null
+++ b/package.use/profile_change
@@ -0,0 +1,6 @@
+app-arch/unzip natspec
+x11-libs/libXfont2 truetype
+media-gfx/imagemagick jpeg webp
+media-gfx/nsxiv exif
+media-video/ffmpeg dvd svg sdl xvid
+app-text/xmlto text
diff --git a/package.use/qemu b/package.use/qemu
index bb93cb6..cfe4dd4 100644
--- a/package.use/qemu
+++ b/package.use/qemu
@@ -1,2 +1,2 @@
-app-emulation/qemu vhost-net alsa ncurses numa sdl virgl spice usbredir nfs io-uring
+app-emulation/qemu vhost-net alsa ncurses numa sdl virgl spice usbredir nfs io-uring usb
media-libs/virglrenderer venus
diff --git a/package.use/scim b/package.use/scim
deleted file mode 100644
index 0c9ec3e..0000000
--- a/package.use/scim
+++ /dev/null
@@ -1,2 +0,0 @@
-app-office/sc-im X lua ods plots xls xlsx
-sys-libs/zlib minizip
diff --git a/package.use/smartmontools b/package.use/smartmontools
new file mode 100644
index 0000000..dd11b92
--- /dev/null
+++ b/package.use/smartmontools
@@ -0,0 +1 @@
+sys-apps/smartmontools -daemon -update-drivedb -caps
diff --git a/package.use/transmission b/package.use/transmission
new file mode 100644
index 0000000..7203d31
--- /dev/null
+++ b/package.use/transmission
@@ -0,0 +1 @@
+net-p2p/transmission cli
diff --git a/package.use/udev b/package.use/udev
index 4309842..c091330 100644
--- a/package.use/udev
+++ b/package.use/udev
@@ -1,6 +1,4 @@
dev-libs/libusb udev
-x11-base/xlibre-server udev
-x11-base/xorg-server udev
sys-apps/systemd-utils udev
dev-qt/qtgui udev
dev-qt/qtbase:6 udev
diff --git a/package.use/xlibre b/package.use/xlibre
index 65febad..9bb7cb2 100644
--- a/package.use/xlibre
+++ b/package.use/xlibre
@@ -1,2 +1,2 @@
-x11-base/xlibre-server -minimal xvfb
-x11-base/xorg-server::xlibre -minimal xvfb
+x11-base/xlibre-server -minimal xvfb udev
+x11-base/xorg-server::xlibre -minimal xvfb udev
diff --git a/package.use/zlib b/package.use/zlib
new file mode 100644
index 0000000..b934da8
--- /dev/null
+++ b/package.use/zlib
@@ -0,0 +1 @@
+sys-libs/zlib minizip
diff --git a/patches/app-emulation/qemu-10.2.0/avoid-detection.patch b/patches/app-emulation/qemu-10.2.0/avoid-detection.patch
new file mode 100644
index 0000000..4e595f6
--- /dev/null
+++ b/patches/app-emulation/qemu-10.2.0/avoid-detection.patch
@@ -0,0 +1,1586 @@
+diff --git a/block/vvfat.c b/block/vvfat.c
+index e334b9feb..209549b52 100644
+--- a/block/vvfat.c
++++ b/block/vvfat.c
+@@ -1176,7 +1176,7 @@ static int vvfat_open(BlockDriverState *bs, QDict *options, int flags,
+ }
+ memcpy(s->volume_label, label, label_length);
+ } else {
+- memcpy(s->volume_label, "QEMU VVFAT", 10);
++ memcpy(s->volume_label, "ASUS VVFAT", 10);
+ }
+
+ if (floppy) {
+diff --git a/chardev/msmouse.c b/chardev/msmouse.c
+index 1a55755d3..239887c30 100644
+--- a/chardev/msmouse.c
++++ b/chardev/msmouse.c
+@@ -172,7 +172,7 @@ static int msmouse_chr_write(struct Chardev *s, const uint8_t *buf, int len)
+ }
+
+ static const QemuInputHandler msmouse_handler = {
+- .name = "QEMU Microsoft Mouse",
++ .name = "ASUS Microsoft Mouse",
+ .mask = INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_REL,
+ .event = msmouse_input_event,
+ .sync = msmouse_input_sync,
+diff --git a/chardev/wctablet.c b/chardev/wctablet.c
+index 0dc6ef08f..cc1d23a49 100644
+--- a/chardev/wctablet.c
++++ b/chardev/wctablet.c
+@@ -179,7 +179,7 @@ static void wctablet_input_sync(DeviceState *dev)
+ }
+
+ static const QemuInputHandler wctablet_handler = {
+- .name = "QEMU Wacom Pen Tablet",
++ .name = "ASUS Wacom Pen Tablet",
+ .mask = INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_ABS,
+ .event = wctablet_input_event,
+ .sync = wctablet_input_sync,
+diff --git a/contrib/vhost-user-gpu/vhost-user-gpu.c b/contrib/vhost-user-gpu/vhost-user-gpu.c
+index bb41758e3..9f778f3ad 100644
+--- a/contrib/vhost-user-gpu/vhost-user-gpu.c
++++ b/contrib/vhost-user-gpu/vhost-user-gpu.c
+@@ -1254,7 +1254,7 @@ main(int argc, char *argv[])
+ QTAILQ_INIT(&g.reslist);
+ QTAILQ_INIT(&g.fenceq);
+
+- context = g_option_context_new("QEMU vhost-user-gpu");
++ context = g_option_context_new("ASUS vhost-user-gpu");
+ g_option_context_add_main_entries(context, entries, NULL);
+ if (!g_option_context_parse(context, &argc, &argv, &error)) {
+ g_printerr("Option parsing failed: %s\n", error->message);
+diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
+index 2d5826a8f..ea796850a 100644
+--- a/hw/acpi/aml-build.c
++++ b/hw/acpi/aml-build.c
+@@ -1722,11 +1722,11 @@ void acpi_table_begin(AcpiTable *desc, GArray *array)
+ build_append_int_noprefix(array, 0, 4); /* Length */
+ build_append_int_noprefix(array, desc->rev, 1); /* Revision */
+ build_append_int_noprefix(array, 0, 1); /* Checksum */
+- build_append_padded_str(array, desc->oem_id, 6, '\0'); /* OEMID */
++ build_append_padded_str(array, ACPI_BUILD_APPNAME6, 6, '\0'); /* OEMID */ //desc->oem_id
+ /* OEM Table ID */
+- build_append_padded_str(array, desc->oem_table_id, 8, '\0');
++ build_append_padded_str(array, ACPI_BUILD_APPNAME8, 8, '\0'); //desc->oem_table_id
+ build_append_int_noprefix(array, 1, 4); /* OEM Revision */
+- g_array_append_vals(array, ACPI_BUILD_APPNAME8, 4); /* Creator ID */
++ g_array_append_vals(array, "PTL ", 4); /* Creator ID */
+ build_append_int_noprefix(array, 1, 4); /* Creator Revision */
+ }
+
+diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c
+index 2205500a8..d9b7eb376 100644
+--- a/hw/arm/sbsa-ref.c
++++ b/hw/arm/sbsa-ref.c
+@@ -898,7 +898,7 @@ static void sbsa_ref_class_init(ObjectClass *oc, const void *data)
+ };
+
+ mc->init = sbsa_ref_init;
+- mc->desc = "QEMU 'SBSA Reference' ARM Virtual Machine";
++ mc->desc = "ASUS 'SBSA Reference' ARM Real Machine";
+ mc->default_cpu_type = ARM_CPU_TYPE_NAME("neoverse-n2");
+ mc->valid_cpu_types = valid_cpu_types;
+ mc->max_cpus = 512;
+diff --git a/hw/arm/virt.c b/hw/arm/virt.c
+index 25fb2bab5..6acf729e8 100644
+--- a/hw/arm/virt.c
++++ b/hw/arm/virt.c
+@@ -118,7 +118,7 @@ static void arm_virt_compat_set(MachineClass *mc)
+ MachineClass *mc = MACHINE_CLASS(oc); \
+ arm_virt_compat_set(mc); \
+ MACHINE_VER_SYM(options, virt, __VA_ARGS__)(mc); \
+- mc->desc = "QEMU " MACHINE_VER_STR(__VA_ARGS__) " ARM Virtual Machine"; \
++ mc->desc = "ASUS " MACHINE_VER_STR(__VA_ARGS__) " ARM Real Machine"; \
+ MACHINE_VER_DEPRECATION(__VA_ARGS__); \
+ if (latest) { \
+ mc->alias = "virt"; \
+@@ -1797,13 +1797,13 @@ static void virt_build_smbios(VirtMachineState *vms)
+ uint8_t *smbios_tables, *smbios_anchor;
+ size_t smbios_tables_len, smbios_anchor_len;
+ struct smbios_phys_mem_area mem_array;
+- const char *product = "QEMU Virtual Machine";
++ const char *product = "ASUS Real Machine";
+
+ if (kvm_enabled()) {
+- product = "KVM Virtual Machine";
++ product = "ASUS Real Machine";
+ }
+
+- smbios_set_defaults("QEMU", product, mc->name);
++ smbios_set_defaults("ASUS", product, mc->name);
+
+ /* build the array of physical mem area from base_memmap */
+ mem_array.address = vms->memmap[VIRT_MEM].base;
+diff --git a/hw/audio/hda-codec.c b/hw/audio/hda-codec.c
+index e90c9de04..841db1ded 100644
+--- a/hw/audio/hda-codec.c
++++ b/hw/audio/hda-codec.c
+@@ -118,7 +118,7 @@ static void hda_codec_parse_fmt(uint32_t format, struct audsettings *as)
+
+ /* some defines */
+
+-#define QEMU_HDA_ID_VENDOR 0x1af4
++#define QEMU_HDA_ID_VENDOR 0x8086
+ #define QEMU_HDA_PCM_FORMATS (AC_SUPPCM_BITS_16 | \
+ 0x1fc /* 16 -> 96 kHz */)
+ #define QEMU_HDA_AMP_NONE (0)
+diff --git a/hw/char/escc.c b/hw/char/escc.c
+index afe4ca483..08dd6b21b 100644
+--- a/hw/char/escc.c
++++ b/hw/char/escc.c
+@@ -1037,7 +1037,7 @@ static void sunmouse_sync(DeviceState *dev)
+ }
+
+ static const QemuInputHandler sunmouse_handler = {
+- .name = "QEMU Sun Mouse",
++ .name = "ASUS Sun Mouse",
+ .mask = INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_REL,
+ .event = sunmouse_handle_event,
+ .sync = sunmouse_sync,
+diff --git a/hw/display/edid-generate.c b/hw/display/edid-generate.c
+index 2cb819675..945716504 100644
+--- a/hw/display/edid-generate.c
++++ b/hw/display/edid-generate.c
+@@ -394,10 +394,10 @@ void qemu_edid_generate(uint8_t *edid, size_t size,
+ /* =============== set defaults =============== */
+
+ if (!info->vendor || strlen(info->vendor) != 3) {
+- info->vendor = "RHT";
++ info->vendor = "DEL";
+ }
+ if (!info->name) {
+- info->name = "QEMU Monitor";
++ info->name = "DEL Monitor";
+ }
+ if (!info->prefx) {
+ info->prefx = 1280;
+@@ -449,7 +449,7 @@ void qemu_edid_generate(uint8_t *edid, size_t size,
+ uint16_t vendor_id = ((((info->vendor[0] - '@') & 0x1f) << 10) |
+ (((info->vendor[1] - '@') & 0x1f) << 5) |
+ (((info->vendor[2] - '@') & 0x1f) << 0));
+- uint16_t model_nr = 0x1234;
++ uint16_t model_nr = 0xA05F;
+ uint32_t serial_nr = info->serial ? atoi(info->serial) : 0;
+ stw_be_p(edid + 8, vendor_id);
+ stw_le_p(edid + 10, model_nr);
+diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
+index 9446a9f86..9c4b87c3f 100644
+--- a/hw/i386/acpi-build.c
++++ b/hw/i386/acpi-build.c
+@@ -2087,6 +2087,14 @@ void acpi_build(AcpiBuildTables *tables, MachineState *machine)
+ g_array_append_vals(tables_blob, u, len);
+ }
+
++ /* Disable BGRT (UEFI Logo)*/
++ acpi_add_table(table_offsets, tables_blob);
++ AcpiTable table = { .sig = "BGRT", .rev = 1,
++ .oem_id = x86ms->oem_id, .oem_table_id = x86ms->oem_table_id };
++ acpi_table_begin(&table, tables_blob);
++ build_append_int_noprefix(tables_blob,0x00000000,4);
++ acpi_table_end(tables->linker, &table);
++
+ /* RSDT is pointed to by RSDP */
+ rsdt = tables_blob->len;
+ build_rsdt(tables_blob, tables->linker, table_offsets,
+diff --git a/hw/i386/fw_cfg.c b/hw/i386/fw_cfg.c
+index 5c0bcd5f8..23f2b42c0 100644
+--- a/hw/i386/fw_cfg.c
++++ b/hw/i386/fw_cfg.c
+@@ -75,7 +75,7 @@ void fw_cfg_build_smbios(PCMachineState *pcms, FWCfgState *fw_cfg,
+
+ if (pcmc->smbios_defaults) {
+ /* These values are guest ABI, do not change */
+- smbios_set_defaults("QEMU", mc->desc, mc->name);
++ smbios_set_defaults("ASUS", "M4A88TD-M", mc->name);
+ }
+
+ /* tell smbios about cpuid version and features */
+@@ -228,7 +228,7 @@ void fw_cfg_add_acpi_dsdt(Aml *scope, FWCfgState *fw_cfg)
+ Aml *dev = aml_device("FWCF");
+ Aml *crs = aml_resource_template();
+
+- aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002")));
++ aml_append(dev, aml_name_decl("_HID", aml_string("ASUS0002")));
+
+ /* device present, functioning, decoding, not shown in UI */
+ aml_append(dev, aml_name_decl("_STA", aml_int(0xB)));
+diff --git a/hw/i386/pc.c b/hw/i386/pc.c
+index f8b919cb6..ba4b617ac 100644
+--- a/hw/i386/pc.c
++++ b/hw/i386/pc.c
+@@ -77,9 +77,9 @@
+ * depending on QEMU versions up to QEMU 2.4.
+ */
+ #define PC_CPU_MODEL_IDS(v) \
+- { "qemu32-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },\
+- { "qemu64-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },\
+- { "athlon-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },
++ { "qemu32-" TYPE_X86_CPU, "model-id", "ASUS Real CPU version " v, },\
++ { "qemu64-" TYPE_X86_CPU, "model-id", "ASUS Real CPU version " v, },\
++ { "athlon-" TYPE_X86_CPU, "model-id", "ASUS Real CPU version " v, },
+
+ GlobalProperty pc_compat_10_1[] = {
+ { "mch", "extended-tseg-mbytes", "16" },
+diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c
+index a42b74852..662b239e8 100644
+--- a/hw/ide/atapi.c
++++ b/hw/ide/atapi.c
+@@ -798,8 +798,8 @@ static void cmd_inquiry(IDEState *s, uint8_t *buf)
+ buf[5] = 0; /* reserved */
+ buf[6] = 0; /* reserved */
+ buf[7] = 0; /* reserved */
+- padstr8(buf + 8, 8, "QEMU");
+- padstr8(buf + 16, 16, "QEMU DVD-ROM");
++ padstr8(buf + 8, 8, "ASUS");
++ padstr8(buf + 16, 16, "ASUS DVD-ROM");
+ padstr8(buf + 32, 4, s->version);
+ idx = 36;
+ }
+diff --git a/hw/ide/core.c b/hw/ide/core.c
+index 8c380abf7..dbd84ee97 100644
+--- a/hw/ide/core.c
++++ b/hw/ide/core.c
+@@ -2639,20 +2639,20 @@ int ide_init_drive(IDEState *s, IDEDevice *dev, IDEDriveKind kind, Error **errp)
+ pstrcpy(s->drive_serial_str, sizeof(s->drive_serial_str), dev->serial);
+ } else {
+ snprintf(s->drive_serial_str, sizeof(s->drive_serial_str),
+- "QM%05d", s->drive_serial);
++ "ASUS%05d", s->drive_serial);
+ }
+ if (dev->model) {
+ pstrcpy(s->drive_model_str, sizeof(s->drive_model_str), dev->model);
+ } else {
+ switch (kind) {
+ case IDE_CD:
+- strcpy(s->drive_model_str, "QEMU DVD-ROM");
++ strcpy(s->drive_model_str, "ASUS DVD-ROM");
+ break;
+ case IDE_CFATA:
+- strcpy(s->drive_model_str, "QEMU MICRODRIVE");
++ strcpy(s->drive_model_str, "ASUS MICRODRIVE");
+ break;
+ default:
+- strcpy(s->drive_model_str, "QEMU HARDDISK");
++ strcpy(s->drive_model_str, "ASUS HARDDISK");
+ break;
+ }
+ }
+diff --git a/hw/input/adb-kbd.c b/hw/input/adb-kbd.c
+index 507557dee..a514a393d 100644
+--- a/hw/input/adb-kbd.c
++++ b/hw/input/adb-kbd.c
+@@ -356,7 +356,7 @@ static void adb_kbd_reset(DeviceState *dev)
+ }
+
+ static const QemuInputHandler adb_keyboard_handler = {
+- .name = "QEMU ADB Keyboard",
++ .name = "ASUS ADB Keyboard",
+ .mask = INPUT_EVENT_MASK_KEY,
+ .event = adb_keyboard_event,
+ };
+diff --git a/hw/input/adb-mouse.c b/hw/input/adb-mouse.c
+index 373ef3f95..7adbd44f3 100644
+--- a/hw/input/adb-mouse.c
++++ b/hw/input/adb-mouse.c
+@@ -94,7 +94,7 @@ static void adb_mouse_handle_event(DeviceState *dev, QemuConsole *src,
+ }
+
+ static const QemuInputHandler adb_mouse_handler = {
+- .name = "QEMU ADB Mouse",
++ .name = "ASUS ADB Mouse",
+ .mask = INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_REL,
+ .event = adb_mouse_handle_event,
+ /*
+diff --git a/hw/input/hid.c b/hw/input/hid.c
+index de24cd0ef..8a7239e41 100644
+--- a/hw/input/hid.c
++++ b/hw/input/hid.c
+@@ -512,20 +512,20 @@ void hid_free(HIDState *hs)
+ }
+
+ static const QemuInputHandler hid_keyboard_handler = {
+- .name = "QEMU HID Keyboard",
++ .name = "ASUS HID Keyboard",
+ .mask = INPUT_EVENT_MASK_KEY,
+ .event = hid_keyboard_event,
+ };
+
+ static const QemuInputHandler hid_mouse_handler = {
+- .name = "QEMU HID Mouse",
++ .name = "ASUS HID Mouse",
+ .mask = INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_REL,
+ .event = hid_pointer_event,
+ .sync = hid_pointer_sync,
+ };
+
+ static const QemuInputHandler hid_tablet_handler = {
+- .name = "QEMU HID Tablet",
++ .name = "ASUS HID Tablet",
+ .mask = INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_ABS,
+ .event = hid_pointer_event,
+ .sync = hid_pointer_sync,
+diff --git a/hw/input/ps2.c b/hw/input/ps2.c
+index 7f7b1fce2..de981c7e7 100644
+--- a/hw/input/ps2.c
++++ b/hw/input/ps2.c
+@@ -1232,7 +1232,7 @@ static const VMStateDescription vmstate_ps2_mouse = {
+ };
+
+ static const QemuInputHandler ps2_keyboard_handler = {
+- .name = "QEMU PS/2 Keyboard",
++ .name = "ASUS PS/2 Keyboard",
+ .mask = INPUT_EVENT_MASK_KEY,
+ .event = ps2_keyboard_event,
+ };
+@@ -1243,7 +1243,7 @@ static void ps2_kbd_realize(DeviceState *dev, Error **errp)
+ }
+
+ static const QemuInputHandler ps2_mouse_handler = {
+- .name = "QEMU PS/2 Mouse",
++ .name = "ASUS PS/2 Mouse",
+ .mask = INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_REL,
+ .event = ps2_mouse_event,
+ .sync = ps2_mouse_sync,
+diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c
+index d986c3c16..67265d3dc 100644
+--- a/hw/input/virtio-input-hid.c
++++ b/hw/input/virtio-input-hid.c
+@@ -16,10 +16,10 @@
+
+ #include "standard-headers/linux/input.h"
+
+-#define VIRTIO_ID_NAME_KEYBOARD "QEMU Virtio Keyboard"
+-#define VIRTIO_ID_NAME_MOUSE "QEMU Virtio Mouse"
+-#define VIRTIO_ID_NAME_TABLET "QEMU Virtio Tablet"
+-#define VIRTIO_ID_NAME_MULTITOUCH "QEMU Virtio MultiTouch"
++#define VIRTIO_ID_NAME_KEYBOARD "ASUS Virtio Keyboard"
++#define VIRTIO_ID_NAME_MOUSE "ASUS Virtio Mouse"
++#define VIRTIO_ID_NAME_TABLET "ASUS Virtio Tablet"
++#define VIRTIO_ID_NAME_MULTITOUCH "ASUS Virtio MultiTouch"
+
+ /* ----------------------------------------------------------------- */
+
+diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c
+index 49434ad18..ee58c4da0 100644
+--- a/hw/loongarch/virt.c
++++ b/hw/loongarch/virt.c
+@@ -155,17 +155,17 @@ static void virt_build_smbios(LoongArchVirtMachineState *lvms)
+ MachineClass *mc = MACHINE_GET_CLASS(lvms);
+ uint8_t *smbios_tables, *smbios_anchor;
+ size_t smbios_tables_len, smbios_anchor_len;
+- const char *product = "QEMU Virtual Machine";
++ const char *product = "ASUS Real Machine";
+
+ if (!lvms->fw_cfg) {
+ return;
+ }
+
+ if (kvm_enabled()) {
+- product = "KVM Virtual Machine";
++ product = "ASUS Real Machine";
+ }
+
+- smbios_set_defaults("QEMU", product, mc->name);
++ smbios_set_defaults("ASUS", product, mc->name);
+
+ smbios_get_tables(ms, SMBIOS_ENTRY_POINT_TYPE_64,
+ NULL, 0,
+diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
+index 3f65d9155..ae1a8c3f2 100644
+--- a/hw/m68k/virt.c
++++ b/hw/m68k/virt.c
+@@ -313,7 +313,7 @@ static void virt_init(MachineState *machine)
+ static void virt_machine_class_init(ObjectClass *oc, const void *data)
+ {
+ MachineClass *mc = MACHINE_CLASS(oc);
+- mc->desc = "QEMU M68K Virtual Machine";
++ mc->desc = "ASUS M68K Real Machine";
+ mc->init = virt_init;
+ mc->default_cpu_type = M68K_CPU_TYPE_NAME("m68040");
+ mc->max_cpus = 1;
+@@ -343,7 +343,7 @@ type_init(virt_machine_register_types)
+ { \
+ MachineClass *mc = MACHINE_CLASS(oc); \
+ MACHINE_VER_SYM(options, virt, __VA_ARGS__)(mc); \
+- mc->desc = "QEMU " MACHINE_VER_STR(__VA_ARGS__) " M68K Virtual Machine"; \
++ mc->desc = "ASUS " MACHINE_VER_STR(__VA_ARGS__) " M68K Real Machine"; \
+ MACHINE_VER_DEPRECATION(__VA_ARGS__); \
+ if (latest) { \
+ mc->alias = "virt"; \
+diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
+index cc4593cd4..71f3bd092 100644
+--- a/hw/nvme/ctrl.c
++++ b/hw/nvme/ctrl.c
+@@ -9094,7 +9094,7 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *pci_dev)
+
+ id->vid = cpu_to_le16(pci_get_word(pci_conf + PCI_VENDOR_ID));
+ id->ssvid = cpu_to_le16(pci_get_word(pci_conf + PCI_SUBSYSTEM_VENDOR_ID));
+- strpadcpy((char *)id->mn, sizeof(id->mn), "QEMU NVMe Ctrl", ' ');
++ strpadcpy((char *)id->mn, sizeof(id->mn), "ASUS NVMe Ctrl", ' ');
+ strpadcpy((char *)id->fr, sizeof(id->fr), QEMU_VERSION, ' ');
+ strpadcpy((char *)id->sn, sizeof(id->sn), n->params.serial, ' ');
+
+diff --git a/hw/nvram/fw_cfg-acpi.c b/hw/nvram/fw_cfg-acpi.c
+index 2e6ef89b9..65f6f7773 100644
+--- a/hw/nvram/fw_cfg-acpi.c
++++ b/hw/nvram/fw_cfg-acpi.c
+@@ -11,7 +11,7 @@
+ void fw_cfg_acpi_dsdt_add(Aml *scope, const MemMapEntry *fw_cfg_memmap)
+ {
+ Aml *dev = aml_device("FWCF");
+- aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002")));
++ aml_append(dev, aml_name_decl("_HID", aml_string("ASUS0002")));
+ /* device present, functioning, decoding, not shown in UI */
+ aml_append(dev, aml_name_decl("_STA", aml_int(0xB)));
+ aml_append(dev, aml_name_decl("_CCA", aml_int(1)));
+diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
+index aa2405049..e0c380423 100644
+--- a/hw/nvram/fw_cfg.c
++++ b/hw/nvram/fw_cfg.c
+@@ -56,7 +56,7 @@
+ #define FW_CFG_DMA_CTL_SELECT 0x08
+ #define FW_CFG_DMA_CTL_WRITE 0x10
+
+-#define FW_CFG_DMA_SIGNATURE 0x51454d5520434647ULL /* "QEMU CFG" */
++#define FW_CFG_DMA_SIGNATURE 0x4153532520444647ULL /* "QEMU CFG" */
+
+ struct FWCfgEntry {
+ uint32_t len;
+diff --git a/hw/pci-host/gpex.c b/hw/pci-host/gpex.c
+index b806a2286..bc1c92d5c 100644
+--- a/hw/pci-host/gpex.c
++++ b/hw/pci-host/gpex.c
+@@ -243,7 +243,7 @@ static void gpex_root_class_init(ObjectClass *klass, const void *data)
+ DeviceClass *dc = DEVICE_CLASS(klass);
+
+ set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
+- dc->desc = "QEMU generic PCIe host bridge";
++ dc->desc = "ASUS generic PCIe host bridge";
+ dc->vmsd = &vmstate_gpex_root;
+ k->vendor_id = PCI_VENDOR_ID_REDHAT;
+ k->device_id = PCI_DEVICE_ID_REDHAT_PCIE_HOST;
+diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c
+index 4f1d659e7..83e728ad6 100644
+--- a/hw/ppc/e500plat.c
++++ b/hw/ppc/e500plat.c
+@@ -22,7 +22,7 @@
+
+ static void e500plat_fixup_devtree(void *fdt)
+ {
+- const char model[] = "QEMU ppce500";
++ const char model[] = "ASUS ppce500";
+ const char compatible[] = "fsl,qemu-e500";
+
+ qemu_fdt_setprop(fdt, "/", "model", model, sizeof(model));
+diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
+index 17909206c..978032ab6 100644
+--- a/hw/riscv/virt.c
++++ b/hw/riscv/virt.c
+@@ -1396,13 +1396,13 @@ static void virt_build_smbios(RISCVVirtState *s)
+ uint8_t *smbios_tables, *smbios_anchor;
+ size_t smbios_tables_len, smbios_anchor_len;
+ struct smbios_phys_mem_area mem_array;
+- const char *product = "QEMU Virtual Machine";
++ const char *product = "ASUS Real Machine";
+
+ if (kvm_enabled()) {
+- product = "KVM Virtual Machine";
++ product = "ASUS Real Machine";
+ }
+
+- smbios_set_defaults("QEMU", product, mc->name);
++ smbios_set_defaults("ASUS", product, mc->name);
+
+ if (riscv_is_32bit(&s->soc[0])) {
+ smbios_set_default_processor_family(0x200);
+diff --git a/hw/scsi/mptconfig.c b/hw/scsi/mptconfig.c
+index 19d01f39f..e59c1b62c 100644
+--- a/hw/scsi/mptconfig.c
++++ b/hw/scsi/mptconfig.c
+@@ -189,12 +189,12 @@ static
+ size_t mptsas_config_manufacturing_0(MPTSASState *s, uint8_t **data, int address)
+ {
+ return MPTSAS_CONFIG_PACK(0, MPI_CONFIG_PAGETYPE_MANUFACTURING, 0x00,
+- "s16s8s16s16s16",
+- "QEMU MPT Fusion",
++ "s11s4s51s41s91",
++ "ASUS MPT Fusion",
+ "2.5",
+- "QEMU MPT Fusion",
+- "QEMU",
+- "0000111122223333");
++ "ASUS MPT Fusion",
++ "ASUS",
++ "1145143919810000");
+ }
+
+ static
+diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c
+index b9b115dee..a4c0c4a85 100644
+--- a/hw/scsi/scsi-bus.c
++++ b/hw/scsi/scsi-bus.c
+@@ -698,8 +698,8 @@ static bool scsi_target_emulate_inquiry(SCSITargetReq *r)
+ r->buf[3] = 2 | 0x10; /* HiSup, response data format */
+ r->buf[4] = r->len - 5; /* Additional Length = (Len - 1) - 4 */
+ r->buf[7] = 0x10 | (r->req.bus->info->tcq ? 0x02 : 0); /* Sync, TCQ. */
+- memcpy(&r->buf[8], "QEMU ", 8);
+- memcpy(&r->buf[16], "QEMU TARGET ", 16);
++ memcpy(&r->buf[8], "ASUS ", 8);
++ memcpy(&r->buf[16], "ASUS TARGET ", 16);
+ pstrcpy((char *) &r->buf[32], 4, qemu_hw_version());
+ }
+ return true;
+diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
+index b4782c624..78cfccbb4 100644
+--- a/hw/scsi/scsi-disk.c
++++ b/hw/scsi/scsi-disk.c
+@@ -2544,7 +2544,7 @@ static void scsi_realize(SCSIDevice *dev, Error **errp)
+ s->version = g_strdup(qemu_hw_version());
+ }
+ if (!s->vendor) {
+- s->vendor = g_strdup("QEMU");
++ s->vendor = g_strdup("ASUS");
+ }
+ if (s->serial && strlen(s->serial) > MAX_SERIAL_LEN) {
+ error_setg(errp, "The serial number can't be longer than %d characters",
+@@ -2608,7 +2608,7 @@ static void scsi_hd_realize(SCSIDevice *dev, Error **errp)
+ s->qdev.blocksize = s->qdev.conf.logical_block_size;
+ s->qdev.type = TYPE_DISK;
+ if (!s->product) {
+- s->product = g_strdup("QEMU HARDDISK");
++ s->product = g_strdup("ASUS HARDDISK");
+ }
+ scsi_realize(&s->qdev, errp);
+ }
+@@ -2635,7 +2635,7 @@ static void scsi_cd_realize(SCSIDevice *dev, Error **errp)
+ s->qdev.type = TYPE_ROM;
+ s->features |= 1 << SCSI_DISK_F_REMOVABLE;
+ if (!s->product) {
+- s->product = g_strdup("QEMU CD-ROM");
++ s->product = g_strdup("ASUS CD-ROM");
+ }
+ scsi_realize(&s->qdev, errp);
+ }
+diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
+index a6591319d..96367e708 100644
+--- a/hw/scsi/spapr_vscsi.c
++++ b/hw/scsi/spapr_vscsi.c
+@@ -721,8 +721,8 @@ static void vscsi_inquiry_no_target(VSCSIState *s, vscsi_req *req)
+ resp_data[3] = 0x02; /* Resp data format */
+ resp_data[4] = 36 - 5; /* Additional length */
+ resp_data[7] = 0x10; /* Sync transfers */
+- memcpy(&resp_data[16], "QEMU EMPTY ", 16);
+- memcpy(&resp_data[8], "QEMU ", 8);
++ memcpy(&resp_data[16], "ASUS EMPTY ", 16);
++ memcpy(&resp_data[8], "ASUS ", 8);
+
+ req->writing = 0;
+ vscsi_preprocess_desc(req);
+diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
+index 7558b2ad8..93849ba92 100644
+--- a/hw/smbios/smbios.c
++++ b/hw/smbios/smbios.c
+@@ -586,6 +586,7 @@ static void smbios_build_type_0_table(void)
+ if (smbios_type0.vm) {
+ t->bios_characteristics_extension_bytes[1] |= 0x10; /* |= VM */
+ }
++ t->bios_characteristics_extension_bytes[1] = 0x08; /* TCD/SVVP | VM */
+
+ if (smbios_type0.have_major_minor) {
+ t->system_bios_major_release = smbios_type0.major;
+diff --git a/hw/usb/dev-audio.c b/hw/usb/dev-audio.c
+index 8dd9d2659..8412c738e 100644
+--- a/hw/usb/dev-audio.c
++++ b/hw/usb/dev-audio.c
+@@ -73,8 +73,8 @@ enum usb_audio_strings {
+ };
+
+ static const USBDescStrings usb_audio_stringtable = {
+- [STRING_MANUFACTURER] = "QEMU",
+- [STRING_PRODUCT] = "QEMU USB Audio",
++ [STRING_MANUFACTURER] = "ASUS",
++ [STRING_PRODUCT] = "ASUS USB Audio",
+ [STRING_SERIALNUMBER] = "1",
+ [STRING_CONFIG] = "Audio Configuration",
+ [STRING_USBAUDIO_CONTROL] = "Audio Device",
+@@ -1004,7 +1004,7 @@ static void usb_audio_class_init(ObjectClass *klass, const void *data)
+ dc->vmsd = &vmstate_usb_audio;
+ device_class_set_props(dc, usb_audio_properties);
+ set_bit(DEVICE_CATEGORY_SOUND, dc->categories);
+- k->product_desc = "QEMU USB Audio Interface";
++ k->product_desc = "ASUS USB Audio Interface";
+ k->realize = usb_audio_realize;
+ k->handle_reset = usb_audio_handle_reset;
+ k->handle_control = usb_audio_handle_control;
+diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c
+index 96623aa32..8f01979ac 100644
+--- a/hw/usb/dev-hid.c
++++ b/hw/usb/dev-hid.c
+@@ -63,10 +63,10 @@ enum {
+ };
+
+ static const USBDescStrings desc_strings = {
+- [STR_MANUFACTURER] = "QEMU",
+- [STR_PRODUCT_MOUSE] = "QEMU USB Mouse",
+- [STR_PRODUCT_TABLET] = "QEMU USB Tablet",
+- [STR_PRODUCT_KEYBOARD] = "QEMU USB Keyboard",
++ [STR_MANUFACTURER] = "ASUS",
++ [STR_PRODUCT_MOUSE] = "ASUS USB Mouse",
++ [STR_PRODUCT_TABLET] = "ASUS USB Tablet",
++ [STR_PRODUCT_KEYBOARD] = "ASUS USB Keyboard",
+ [STR_SERIAL_COMPAT] = "42",
+ [STR_CONFIG_MOUSE] = "HID Mouse",
+ [STR_CONFIG_TABLET] = "HID Tablet",
+@@ -805,7 +805,7 @@ static void usb_tablet_class_initfn(ObjectClass *klass, const void *data)
+ USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
+
+ uc->realize = usb_tablet_realize;
+- uc->product_desc = "QEMU USB Tablet";
++ uc->product_desc = "ASUS USB Tablet";
+ dc->vmsd = &vmstate_usb_ptr;
+ device_class_set_props(dc, usb_tablet_properties);
+ set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
+@@ -827,7 +827,7 @@ static void usb_mouse_class_initfn(ObjectClass *klass, const void *data)
+ USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
+
+ uc->realize = usb_mouse_realize;
+- uc->product_desc = "QEMU USB Mouse";
++ uc->product_desc = "ASUS USB Mouse";
+ dc->vmsd = &vmstate_usb_ptr;
+ device_class_set_props(dc, usb_mouse_properties);
+ set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
+@@ -850,7 +850,7 @@ static void usb_keyboard_class_initfn(ObjectClass *klass, const void *data)
+ USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
+
+ uc->realize = usb_keyboard_realize;
+- uc->product_desc = "QEMU USB Keyboard";
++ uc->product_desc = "ASUS USB Keyboard";
+ dc->vmsd = &vmstate_usb_kbd;
+ device_class_set_props(dc, usb_keyboard_properties);
+ set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
+diff --git a/hw/usb/dev-hub.c b/hw/usb/dev-hub.c
+index a19350d9c..67812211b 100644
+--- a/hw/usb/dev-hub.c
++++ b/hw/usb/dev-hub.c
+@@ -104,9 +104,9 @@ enum {
+ };
+
+ static const USBDescStrings desc_strings = {
+- [STR_MANUFACTURER] = "QEMU",
+- [STR_PRODUCT] = "QEMU USB Hub",
+- [STR_SERIALNUMBER] = "314159",
++ [STR_MANUFACTURER] = "ASUS",
++ [STR_PRODUCT] = "ASUS USB Hub",
++ [STR_SERIALNUMBER] = "144514",
+ };
+
+ static const USBDescIface desc_iface_hub = {
+diff --git a/hw/usb/dev-network.c b/hw/usb/dev-network.c
+index 1df245418..a6fae69c7 100644
+--- a/hw/usb/dev-network.c
++++ b/hw/usb/dev-network.c
+@@ -99,15 +99,15 @@ enum usbstring_idx {
+ #define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */
+
+ static const USBDescStrings usb_net_stringtable = {
+- [STRING_MANUFACTURER] = "QEMU",
+- [STRING_PRODUCT] = "RNDIS/QEMU USB Network Device",
+- [STRING_ETHADDR] = "400102030405",
+- [STRING_DATA] = "QEMU USB Net Data Interface",
+- [STRING_CONTROL] = "QEMU USB Net Control Interface",
+- [STRING_RNDIS_CONTROL] = "QEMU USB Net RNDIS Control Interface",
+- [STRING_CDC] = "QEMU USB Net CDC",
+- [STRING_SUBSET] = "QEMU USB Net Subset",
+- [STRING_RNDIS] = "QEMU USB Net RNDIS",
++ [STRING_MANUFACTURER] = "ASUS",
++ [STRING_PRODUCT] = "RNDIS/ASUS USB Network Device",
++ [STRING_ETHADDR] = "400144514405",
++ [STRING_DATA] = "ASUS USB Net Data Interface",
++ [STRING_CONTROL] = "ASUS USB Net Control Interface",
++ [STRING_RNDIS_CONTROL] = "ASUS USB Net RNDIS Control Interface",
++ [STRING_CDC] = "ASUS USB Net CDC",
++ [STRING_SUBSET] = "ASUS USB Net Subset",
++ [STRING_RNDIS] = "ASUS USB Net RNDIS",
+ [STRING_SERIALNUMBER] = "1",
+ };
+
+@@ -717,7 +717,7 @@ static int ndis_query(USBNetState *s, uint32_t oid,
+
+ /* mandatory */
+ case OID_GEN_VENDOR_DESCRIPTION:
+- pstrcpy((char *)outbuf, outlen, "QEMU USB RNDIS Net");
++ pstrcpy((char *)outbuf, outlen, "ASUS USB RNDIS Net");
+ return strlen((char *)outbuf) + 1;
+
+ case OID_GEN_VENDOR_DRIVER_VERSION:
+@@ -1417,7 +1417,7 @@ static void usb_net_class_initfn(ObjectClass *klass, const void *data)
+ USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
+
+ uc->realize = usb_net_realize;
+- uc->product_desc = "QEMU USB Network Interface";
++ uc->product_desc = "ASUS USB Network Interface";
+ uc->usb_desc = &desc_net;
+ uc->handle_reset = usb_net_handle_reset;
+ uc->handle_control = usb_net_handle_control;
+diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c
+index 2eb52b2e0..faacfe6cf 100644
+--- a/hw/usb/dev-serial.c
++++ b/hw/usb/dev-serial.c
+@@ -119,10 +119,10 @@ enum {
+ };
+
+ static const USBDescStrings desc_strings = {
+- [STR_MANUFACTURER] = "QEMU",
+- [STR_PRODUCT_SERIAL] = "QEMU USB SERIAL",
+- [STR_PRODUCT_BRAILLE] = "QEMU USB BAUM BRAILLE",
+- [STR_SERIALNUMBER] = "1",
++ [STR_MANUFACTURER] = "ASUS",
++ [STR_PRODUCT_SERIAL] = "ASUS USB SERIAL",
++ [STR_PRODUCT_BRAILLE] = "ASUS USB BAUM BRAILLE",
++ [STR_SERIALNUMBER] = "39344484",
+ };
+
+ static const USBDescIface desc_iface0 = {
+@@ -663,7 +663,7 @@ static void usb_serial_class_initfn(ObjectClass *klass, const void *data)
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
+
+- uc->product_desc = "QEMU USB Serial";
++ uc->product_desc = "ASUS USB Serial";
+ uc->usb_desc = &desc_serial;
+ device_class_set_props(dc, serial_properties);
+ }
+diff --git a/hw/usb/dev-smartcard-reader.c b/hw/usb/dev-smartcard-reader.c
+index 6ce7154fe..c3ca4139c 100644
+--- a/hw/usb/dev-smartcard-reader.c
++++ b/hw/usb/dev-smartcard-reader.c
+@@ -80,8 +80,8 @@ OBJECT_DECLARE_SIMPLE_TYPE(USBCCIDState, USB_CCID_DEV)
+ #define CCID_CONTROL_GET_CLOCK_FREQUENCIES 0x2
+ #define CCID_CONTROL_GET_DATA_RATES 0x3
+
+-#define CCID_PRODUCT_DESCRIPTION "QEMU USB CCID"
+-#define CCID_VENDOR_DESCRIPTION "QEMU"
++#define CCID_PRODUCT_DESCRIPTION "ASUS USB CCID"
++#define CCID_VENDOR_DESCRIPTION "ASUS"
+ #define CCID_INTERFACE_NAME "CCID Interface"
+ #define CCID_SERIAL_NUMBER_STRING "1"
+ /*
+@@ -419,8 +419,8 @@ enum {
+ };
+
+ static const USBDescStrings desc_strings = {
+- [STR_MANUFACTURER] = "QEMU",
+- [STR_PRODUCT] = "QEMU USB CCID",
++ [STR_MANUFACTURER] = "ASUS",
++ [STR_PRODUCT] = "ASUS USB CCID",
+ [STR_SERIALNUMBER] = "1",
+ [STR_INTERFACE] = "CCID Interface",
+ };
+@@ -1440,7 +1440,7 @@ static void ccid_class_initfn(ObjectClass *klass, const void *data)
+ HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(klass);
+
+ uc->realize = ccid_realize;
+- uc->product_desc = "QEMU USB CCID";
++ uc->product_desc = "ASUS USB CCID";
+ uc->usb_desc = &desc_ccid;
+ uc->handle_reset = ccid_handle_reset;
+ uc->handle_control = ccid_handle_control;
+diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
+index b13fe345c..a526dc1db 100644
+--- a/hw/usb/dev-storage.c
++++ b/hw/usb/dev-storage.c
+@@ -47,8 +47,8 @@ enum {
+ };
+
+ static const USBDescStrings desc_strings = {
+- [STR_MANUFACTURER] = "QEMU",
+- [STR_PRODUCT] = "QEMU USB HARDDRIVE",
++ [STR_MANUFACTURER] = "ASUS",
++ [STR_PRODUCT] = "ASUS USB HARDDRIVE",
+ [STR_SERIALNUMBER] = "1",
+ [STR_CONFIG_FULL] = "Full speed config (usb 1.1)",
+ [STR_CONFIG_HIGH] = "High speed config (usb 2.0)",
+@@ -590,7 +590,7 @@ static void usb_msd_class_initfn_common(ObjectClass *klass, const void *data)
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
+
+- uc->product_desc = "QEMU USB MSD";
++ uc->product_desc = "ASUS USB MSD";
+ uc->usb_desc = &desc;
+ uc->cancel_packet = usb_msd_cancel_io;
+ uc->handle_attach = usb_desc_attach;
+diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c
+index 18ebe15d0..a90a25531 100644
+--- a/hw/usb/dev-uas.c
++++ b/hw/usb/dev-uas.c
+@@ -170,9 +170,9 @@ enum {
+ };
+
+ static const USBDescStrings desc_strings = {
+- [STR_MANUFACTURER] = "QEMU",
++ [STR_MANUFACTURER] = "ASUS",
+ [STR_PRODUCT] = "USB Attached SCSI HBA",
+- [STR_SERIALNUMBER] = "27842",
++ [STR_SERIALNUMBER] = "33111",
+ [STR_CONFIG_HIGH] = "High speed config (usb 2.0)",
+ [STR_CONFIG_SUPER] = "Super speed config (usb 3.0)",
+ };
+diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
+index f4b71a214..100413632 100644
+--- a/hw/usb/dev-wacom.c
++++ b/hw/usb/dev-wacom.c
+@@ -64,9 +64,9 @@ enum {
+ };
+
+ static const USBDescStrings desc_strings = {
+- [STR_MANUFACTURER] = "QEMU",
++ [STR_MANUFACTURER] = "ASUS",
+ [STR_PRODUCT] = "Wacom PenPartner",
+- [STR_SERIALNUMBER] = "1",
++ [STR_SERIALNUMBER] = "28843363",
+ };
+
+ static const uint8_t qemu_wacom_hid_report_descriptor[] = {
+@@ -231,7 +231,7 @@ static int usb_mouse_poll(USBWacomState *s, uint8_t *buf, int len)
+
+ if (!s->mouse_grabbed) {
+ s->eh_entry = qemu_add_mouse_event_handler(usb_mouse_event, s, 0,
+- "QEMU PenPartner tablet");
++ "ASUS PenPartner tablet");
+ qemu_activate_mouse_event_handler(s->eh_entry);
+ s->mouse_grabbed = 1;
+ }
+@@ -269,7 +269,7 @@ static int usb_wacom_poll(USBWacomState *s, uint8_t *buf, int len)
+
+ if (!s->mouse_grabbed) {
+ s->eh_entry = qemu_add_mouse_event_handler(usb_wacom_event, s, 1,
+- "QEMU PenPartner tablet");
++ "ASUS PenPartner tablet");
+ qemu_activate_mouse_event_handler(s->eh_entry);
+ s->mouse_grabbed = 1;
+ }
+@@ -425,7 +425,7 @@ static void usb_wacom_class_init(ObjectClass *klass, const void *data)
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
+
+- uc->product_desc = "QEMU PenPartner Tablet";
++ uc->product_desc = "ASUS PenPartner Tablet";
+ uc->usb_desc = &desc_wacom;
+ uc->realize = usb_wacom_realize;
+ uc->handle_reset = usb_wacom_handle_reset;
+@@ -433,7 +433,7 @@ static void usb_wacom_class_init(ObjectClass *klass, const void *data)
+ uc->handle_data = usb_wacom_handle_data;
+ uc->unrealize = usb_wacom_unrealize;
+ set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
+- dc->desc = "QEMU PenPartner Tablet";
++ dc->desc = "ASUS PenPartner Tablet";
+ dc->vmsd = &vmstate_usb_wacom;
+ }
+
+diff --git a/hw/usb/u2f-emulated.c b/hw/usb/u2f-emulated.c
+index ace5ecead..45c6c15de 100644
+--- a/hw/usb/u2f-emulated.c
++++ b/hw/usb/u2f-emulated.c
+@@ -385,7 +385,7 @@ static void u2f_emulated_class_init(ObjectClass *klass, const void *data)
+ kc->realize = u2f_emulated_realize;
+ kc->unrealize = u2f_emulated_unrealize;
+ kc->recv_from_guest = u2f_emulated_recv_from_guest;
+- dc->desc = "QEMU U2F emulated key";
++ dc->desc = "ASUS U2F emulated key";
+ device_class_set_props(dc, u2f_emulated_properties);
+ }
+
+diff --git a/hw/usb/u2f-passthru.c b/hw/usb/u2f-passthru.c
+index fa8d9cdda..fcb48713a 100644
+--- a/hw/usb/u2f-passthru.c
++++ b/hw/usb/u2f-passthru.c
+@@ -528,7 +528,7 @@ static void u2f_passthru_class_init(ObjectClass *klass, const void *data)
+ kc->realize = u2f_passthru_realize;
+ kc->unrealize = u2f_passthru_unrealize;
+ kc->recv_from_guest = u2f_passthru_recv_from_guest;
+- dc->desc = "QEMU U2F passthrough key";
++ dc->desc = "ASUS U2F passthrough key";
+ dc->vmsd = &u2f_passthru_vmstate;
+ device_class_set_props(dc, u2f_passthru_properties);
+ set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+diff --git a/hw/usb/u2f.c b/hw/usb/u2f.c
+index b051a999d..6bd3f1265 100644
+--- a/hw/usb/u2f.c
++++ b/hw/usb/u2f.c
+@@ -46,7 +46,7 @@ enum {
+ };
+
+ static const USBDescStrings desc_strings = {
+- [STR_MANUFACTURER] = "QEMU",
++ [STR_MANUFACTURER] = "ASUS",
+ [STR_PRODUCT] = "U2F USB key",
+ [STR_SERIALNUMBER] = "0",
+ [STR_CONFIG] = "U2F key config",
+@@ -322,7 +322,7 @@ static void u2f_key_class_init(ObjectClass *klass, const void *data)
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
+
+- uc->product_desc = "QEMU U2F USB key";
++ uc->product_desc = "ASUS U2F USB key";
+ uc->usb_desc = &desc_u2f_key;
+ uc->handle_reset = u2f_key_handle_reset;
+ uc->handle_control = u2f_key_handle_control;
+@@ -330,7 +330,7 @@ static void u2f_key_class_init(ObjectClass *klass, const void *data)
+ uc->handle_attach = usb_desc_attach;
+ uc->realize = u2f_key_realize;
+ uc->unrealize = u2f_key_unrealize;
+- dc->desc = "QEMU U2F key";
++ dc->desc = "ASUS U2F key";
+ dc->vmsd = &vmstate_u2f_key;
+ }
+
+diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h
+index f38e12971..19d949c5d 100644
+--- a/include/hw/acpi/aml-build.h
++++ b/include/hw/acpi/aml-build.h
+@@ -4,8 +4,8 @@
+ #include "hw/acpi/acpi-defs.h"
+ #include "hw/acpi/bios-linker-loader.h"
+
+-#define ACPI_BUILD_APPNAME6 "BOCHS "
+-#define ACPI_BUILD_APPNAME8 "BXPC "
++#define ACPI_BUILD_APPNAME6 "INTEL "
++#define ACPI_BUILD_APPNAME8 "PC8086 "
+
+ #define ACPI_BUILD_TABLE_FILE "etc/acpi/tables"
+ #define ACPI_BUILD_RSDP_FILE "etc/acpi/rsdp"
+diff --git a/include/standard-headers/linux/qemu_fw_cfg.h b/include/standard-headers/linux/qemu_fw_cfg.h
+index cb93f6678..c1a5be5a9 100644
+--- a/include/standard-headers/linux/qemu_fw_cfg.h
++++ b/include/standard-headers/linux/qemu_fw_cfg.h
+@@ -4,7 +4,7 @@
+
+ #include "standard-headers/linux/types.h"
+
+-#define FW_CFG_ACPI_DEVICE_ID "QEMU0002"
++#define FW_CFG_ACPI_DEVICE_ID "ASUS0002"
+
+ /* selector key values for "well-known" fw_cfg entries */
+ #define FW_CFG_SIGNATURE 0x00
+@@ -71,7 +71,7 @@ struct fw_cfg_file {
+ #define FW_CFG_DMA_CTL_SELECT 0x08
+ #define FW_CFG_DMA_CTL_WRITE 0x10
+
+-#define FW_CFG_DMA_SIGNATURE 0x51454d5520434647ULL /* "QEMU CFG" */
++#define FW_CFG_DMA_SIGNATURE 0x4153532520444647ULL /* "QEMU CFG" */
+
+ /* Control as first field allows for different structures selected by this
+ * field, which might be useful in the future
+diff --git a/migration/rdma.c b/migration/rdma.c
+index 337b41588..510932ffe 100644
+--- a/migration/rdma.c
++++ b/migration/rdma.c
+@@ -220,7 +220,7 @@ static const char *control_desc(unsigned int rdma_control)
+ [RDMA_CONTROL_NONE] = "NONE",
+ [RDMA_CONTROL_ERROR] = "ERROR",
+ [RDMA_CONTROL_READY] = "READY",
+- [RDMA_CONTROL_QEMU_FILE] = "QEMU FILE",
++ [RDMA_CONTROL_QEMU_FILE] = "ASUS FILE",
+ [RDMA_CONTROL_RAM_BLOCKS_REQUEST] = "RAM BLOCKS REQUEST",
+ [RDMA_CONTROL_RAM_BLOCKS_RESULT] = "RAM BLOCKS RESULT",
+ [RDMA_CONTROL_COMPRESS] = "COMPRESS",
+diff --git a/pc-bios/optionrom/optionrom.h b/pc-bios/optionrom/optionrom.h
+index 7bcdf0eeb..9838d20b9 100644
+--- a/pc-bios/optionrom/optionrom.h
++++ b/pc-bios/optionrom/optionrom.h
+@@ -43,7 +43,7 @@
+ #define FW_CFG_DMA_CTL_SELECT 0x08
+ #define FW_CFG_DMA_CTL_WRITE 0x10
+
+-#define FW_CFG_DMA_SIGNATURE 0x51454d5520434647ULL /* "QEMU CFG" */
++#define FW_CFG_DMA_SIGNATURE 0x4153532520444647ULL /* "QEMU CFG" */
+
+ #define BIOS_CFG_DMA_ADDR_HIGH 0x514
+ #define BIOS_CFG_DMA_ADDR_LOW 0x518
+@@ -227,4 +227,3 @@
+ _product:; \
+ .asciz BOOT_ROM_PRODUCT; \
+ OPTION_ROM_END
+-
+diff --git a/pc-bios/s390-ccw/virtio-scsi.h b/pc-bios/s390-ccw/virtio-scsi.h
+index c5612e16a..048cb93d3 100644
+--- a/pc-bios/s390-ccw/virtio-scsi.h
++++ b/pc-bios/s390-ccw/virtio-scsi.h
+@@ -25,7 +25,7 @@
+ #define VIRTIO_SCSI_S_OK 0x00
+ #define VIRTIO_SCSI_S_BAD_TARGET 0x03
+
+-#define QEMU_CDROM_SIGNATURE "QEMU CD-ROM "
++#define QEMU_CDROM_SIGNATURE "ASUS CD-ROM "
+
+ enum virtio_scsi_vq_id {
+ VR_CONTROL = 0,
+diff --git a/qapi/ui.json b/qapi/ui.json
+index e3da77632..96ce3720d 100644
+--- a/qapi/ui.json
++++ b/qapi/ui.json
+@@ -832,13 +832,13 @@
+ # -> { "execute": "query-mice" }
+ # <- { "return": [
+ # {
+-# "name":"QEMU Microsoft Mouse",
++# "name":"ASUS Microsoft Mouse",
+ # "index":0,
+ # "current":false,
+ # "absolute":false
+ # },
+ # {
+-# "name":"QEMU PS/2 Mouse",
++# "name":"ASUS PS/2 Mouse",
+ # "index":1,
+ # "current":true,
+ # "absolute":true
+diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs
+index 32b830872..c172431e5 100644
+--- a/qga/installer/qemu-ga.wxs
++++ b/qga/installer/qemu-ga.wxs
+@@ -1,4 +1,4 @@
+-<?xml version="1.0" encoding="UTF-8"?>
++<?xml version="1.0" encoding="UTF-8" ?>
+ <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <?if $(var.Arch) = "64"?>
+ <?define ArchLib=libgcc_s_seh-1.dll?>
+@@ -13,117 +13,277 @@
+ <?endif?>
+
+ <Product
+- Name="QEMU guest agent"
+- Id="*"
+- UpgradeCode="{EB6B8302-C06E-4BEC-ADAC-932C68A3A98D}"
+- Manufacturer="$(var.QEMU_GA_MANUFACTURER)"
+- Version="$(var.QEMU_GA_VERSION)"
+- Language="1033">
++ Name="QEMU guest agent"
++ Id="*"
++ UpgradeCode="{EB6B8302-C06E-4BEC-ADAC-932C68A3A98D}"
++ Manufacturer="$(var.QEMU_GA_MANUFACTURER)"
++ Version="$(var.QEMU_GA_VERSION)"
++ Language="1033"
++ >
+ <?if $(var.Arch) = 32 ?>
+- <Condition Message="Error: 32-bit version of Qemu GA can not be installed on 64-bit Windows.">NOT VersionNT64</Condition>
++ <Condition
++ Message="Error: 32-bit version of Qemu GA can not be installed on 64-bit Windows."
++ >NOT VersionNT64</Condition>
+ <?endif?>
+ <Package
+- Manufacturer="$(var.QEMU_GA_MANUFACTURER)"
+- InstallerVersion="200"
+- Languages="1033"
+- Compressed="yes"
+- InstallScope="perMachine"
+- />
++ Manufacturer="$(var.QEMU_GA_MANUFACTURER)"
++ InstallerVersion="200"
++ Languages="1033"
++ Compressed="yes"
++ InstallScope="perMachine"
++ />
+ <Media Id="1" Cabinet="qemu_ga.$(var.QEMU_GA_VERSION).cab" EmbedCab="yes" />
+ <Property Id="WHSLogo">1</Property>
+ <Property Id="ARPNOMODIFY" Value="yes" Secure="yes" />
+ <MajorUpgrade
+- DowngradeErrorMessage="Error: A newer version of QEMU guest agent is already installed."
+- />
++ DowngradeErrorMessage="Error: A newer version of QEMU guest agent is already installed."
++ />
+
+ <Directory Id="TARGETDIR" Name="SourceDir">
+ <Directory Id="$(var.GaProgramFilesFolder)" Name="QEMU Guest Agent">
+ <Directory Id="qemu_ga_directory" Name="Qemu-ga">
+ <Component Id="qemu_ga" Guid="{908B7199-DE2A-4DC6-A8D0-27A5AE444FEA}">
+- <File Id="qemu_ga.exe" Name="qemu-ga.exe" Source="$(var.BUILD_DIR)/qga/qemu-ga.exe" KeyPath="yes" DiskId="1"/>
++ <File
++ Id="qemu_ga.exe"
++ Name="qemu-ga.exe"
++ Source="$(var.BUILD_DIR)/qga/qemu-ga.exe"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ <ServiceInstall
+- Id="ServiceInstaller"
+- Type="ownProcess"
+- Vital="yes"
+- Name="QEMU-GA"
+- DisplayName="QEMU Guest Agent"
+- Description="QEMU Guest Agent"
+- Start="auto"
+- Account="LocalSystem"
+- ErrorControl="ignore"
+- Interactive="no"
+- Arguments="-d --retry-path"
+- >
++ Id="ServiceInstaller"
++ Type="ownProcess"
++ Vital="yes"
++ Name="QEMU-GA"
++ DisplayName="QEMU Guest Agent"
++ Description="QEMU Guest Agent"
++ Start="auto"
++ Account="LocalSystem"
++ ErrorControl="ignore"
++ Interactive="no"
++ Arguments="-d --retry-path"
++ >
+ </ServiceInstall>
+- <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="QEMU-GA" Wait="yes" />
++ <ServiceControl
++ Id="StartService"
++ Start="install"
++ Stop="both"
++ Remove="uninstall"
++ Name="QEMU-GA"
++ Wait="yes"
++ />
+ </Component>
+ <?ifdef var.InstallVss?>
+- <Component Id="libstdc++_6_lib" Guid="{55E737B5-9127-4A11-9FC3-A29367714574}">
+- <File Id="libstdc++-6.lib" Name="libstdc++-6.dll" Source="$(var.BIN_DIR)/libstdc++-6.dll" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="libstdc++_6_lib"
++ Guid="{55E737B5-9127-4A11-9FC3-A29367714574}"
++ >
++ <File
++ Id="libstdc++-6.lib"
++ Name="libstdc++-6.dll"
++ Source="$(var.BIN_DIR)/libstdc++-6.dll"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+- <Component Id="qga_vss_dll" Guid="{CB19C453-FABB-4BB1-ABAB-6B74F687BFBB}">
+- <File Id="qga_vss.dll" Name="qga-vss.dll" Source="$(var.BUILD_DIR)/qga/vss-win32/qga-vss.dll" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="qga_vss_dll"
++ Guid="{CB19C453-FABB-4BB1-ABAB-6B74F687BFBB}"
++ >
++ <File
++ Id="qga_vss.dll"
++ Name="qga-vss.dll"
++ Source="$(var.BUILD_DIR)/qga/vss-win32/qga-vss.dll"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+- <Component Id="qga_vss_tlb" Guid="{D8D584B1-59C2-4FB7-A91F-636FF7BFA66E}">
+- <File Id="qga_vss.tlb" Name="qga-vss.tlb" Source="$(var.BUILD_DIR)/qga/vss-win32/qga-vss.tlb" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="qga_vss_tlb"
++ Guid="{D8D584B1-59C2-4FB7-A91F-636FF7BFA66E}"
++ >
++ <File
++ Id="qga_vss.tlb"
++ Name="qga-vss.tlb"
++ Source="$(var.BUILD_DIR)/qga/vss-win32/qga-vss.tlb"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+ <?endif?>
+ <?if $(var.Arch) = "32"?>
+- <Component Id="gspawn-helper-console" Guid="{446185B3-87BE-43D2-96B8-0FEFD9E8696D}">
+- <File Id="gspawn-win32-helper-console.exe" Name="gspawn-win32-helper-console.exe" Source="$(var.BIN_DIR)/gspawn-win32-helper-console.exe" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="gspawn-helper-console"
++ Guid="{446185B3-87BE-43D2-96B8-0FEFD9E8696D}"
++ >
++ <File
++ Id="gspawn-win32-helper-console.exe"
++ Name="gspawn-win32-helper-console.exe"
++ Source="$(var.BIN_DIR)/gspawn-win32-helper-console.exe"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+- <Component Id="gspawn-helper" Guid="{CD67A5A3-2DB1-4DA1-A67A-8D71E797B466}">
+- <File Id="gspawn-win32-helper.exe" Name="gspawn-win32-helper.exe" Source="$(var.BIN_DIR)/gspawn-win32-helper-console.exe" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="gspawn-helper"
++ Guid="{CD67A5A3-2DB1-4DA1-A67A-8D71E797B466}"
++ >
++ <File
++ Id="gspawn-win32-helper.exe"
++ Name="gspawn-win32-helper.exe"
++ Source="$(var.BIN_DIR)/gspawn-win32-helper-console.exe"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+ <?endif?>
+ <?if $(var.Arch) = "64"?>
+- <Component Id="gspawn-helper-console" Guid="{9E615A9F-349A-4992-A5C2-C10BAD173660}">
+- <File Id="gspawn-win64-helper-console.exe" Name="gspawn-win64-helper-console.exe" Source="$(var.BIN_DIR)/gspawn-win64-helper-console.exe" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="gspawn-helper-console"
++ Guid="{9E615A9F-349A-4992-A5C2-C10BAD173660}"
++ >
++ <File
++ Id="gspawn-win64-helper-console.exe"
++ Name="gspawn-win64-helper-console.exe"
++ Source="$(var.BIN_DIR)/gspawn-win64-helper-console.exe"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+- <Component Id="gspawn-helper" Guid="{D201AD22-1846-4E4F-B6E1-C7A908ED2457}">
+- <File Id="gspawn-win64-helper.exe" Name="gspawn-win64-helper.exe" Source="$(var.BIN_DIR)/gspawn-win64-helper-console.exe" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="gspawn-helper"
++ Guid="{D201AD22-1846-4E4F-B6E1-C7A908ED2457}"
++ >
++ <File
++ Id="gspawn-win64-helper.exe"
++ Name="gspawn-win64-helper.exe"
++ Source="$(var.BIN_DIR)/gspawn-win64-helper-console.exe"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+ <?endif?>
+ <Component Id="iconv" Guid="{35EE3558-D34B-4F0A-B8BD-430FF0775246}">
+- <File Id="iconv.dll" Name="iconv.dll" Source="$(var.BIN_DIR)/iconv.dll" KeyPath="yes" DiskId="1"/>
++ <File
++ Id="iconv.dll"
++ Name="iconv.dll"
++ Source="$(var.BIN_DIR)/iconv.dll"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+- <Component Id="libgcc_arch_lib" Guid="{ADD4D07D-4515-4AB6-AF3E-C904961B4BB0}">
+- <File Id="libgcc_arch_lib" Name="$(var.ArchLib)" Source="$(var.BIN_DIR)/$(var.ArchLib)" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="libgcc_arch_lib"
++ Guid="{ADD4D07D-4515-4AB6-AF3E-C904961B4BB0}"
++ >
++ <File
++ Id="libgcc_arch_lib"
++ Name="$(var.ArchLib)"
++ Source="$(var.BIN_DIR)/$(var.ArchLib)"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+ <Component Id="libglib" Guid="{D31BFD83-2773-4B65-B45A-E0D2ADA58679}">
+- <File Id="libglib_2.0_0.dll" Name="libglib-2.0-0.dll" Source="$(var.BIN_DIR)/libglib-2.0-0.dll" KeyPath="yes" DiskId="1"/>
++ <File
++ Id="libglib_2.0_0.dll"
++ Name="libglib-2.0-0.dll"
++ Source="$(var.BIN_DIR)/libglib-2.0-0.dll"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+ <Component Id="libintl" Guid="{A641BC2D-A907-4A94-9149-F30ED430878F}">
+- <File Id="libintl_8.dll" Name="libintl-8.dll" Source="$(var.BIN_DIR)/libintl-8.dll" KeyPath="yes" DiskId="1"/>
++ <File
++ Id="libintl_8.dll"
++ Name="libintl-8.dll"
++ Source="$(var.BIN_DIR)/libintl-8.dll"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+ <Component Id="libssp" Guid="{7880087B-02B4-4EF6-A5D3-D18F8E3D90E1}">
+- <File Id="libssp_0.dll" Name="libssp-0.dll" Source="$(var.BIN_DIR)/libssp-0.dll" KeyPath="yes" DiskId="1"/>
++ <File
++ Id="libssp_0.dll"
++ Name="libssp-0.dll"
++ Source="$(var.BIN_DIR)/libssp-0.dll"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+- <Component Id="libwinpthread" Guid="{6C117C78-0F47-4B07-8F34-6BEE11643829}">
+- <File Id="libwinpthread_1.dll" Name="libwinpthread-1.dll" Source="$(var.BIN_DIR)/libwinpthread-1.dll" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="libwinpthread"
++ Guid="{6C117C78-0F47-4B07-8F34-6BEE11643829}"
++ >
++ <File
++ Id="libwinpthread_1.dll"
++ Name="libwinpthread-1.dll"
++ Source="$(var.BIN_DIR)/libwinpthread-1.dll"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+ <?if $(var.LIBPCRE) = "libpcre1"?>
+- <Component Id="libpcre" Guid="{7A86B45E-A009-489A-A849-CE3BACF03CD0}">
+- <File Id="libpcre_1.dll" Name="libpcre-1.dll" Source="$(var.BIN_DIR)/libpcre-1.dll" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="libpcre"
++ Guid="{7A86B45E-A009-489A-A849-CE3BACF03CD0}"
++ >
++ <File
++ Id="libpcre_1.dll"
++ Name="libpcre-1.dll"
++ Source="$(var.BIN_DIR)/libpcre-1.dll"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+ <?else?>
+- <Component Id="libpcre" Guid="{F92A3804-B59C-419D-8F29-99A30352C156}">
+- <File Id="libpcre2_8_0.dll" Name="libpcre2-8-0.dll" Source="$(var.BIN_DIR)/libpcre2-8-0.dll" KeyPath="yes" DiskId="1"/>
++ <Component
++ Id="libpcre"
++ Guid="{F92A3804-B59C-419D-8F29-99A30352C156}"
++ >
++ <File
++ Id="libpcre2_8_0.dll"
++ Name="libpcre2-8-0.dll"
++ Source="$(var.BIN_DIR)/libpcre2-8-0.dll"
++ KeyPath="yes"
++ DiskId="1"
++ />
+ </Component>
+ <?endif?>
+- <Component Id="registry_entries" Guid="{D075D109-51CA-11E3-9F8B-000C29858960}">
+- <RegistryKey Root="HKLM"
+- Key="Software\$(var.QEMU_GA_MANUFACTURER)\$(var.QEMU_GA_DISTRO)\Tools\QemuGA">
+- <RegistryValue Type="string" Name="ProductID" Value="fb0a0d66-c7fb-4e2e-a16b-c4a3bfe8d13b" />
+- <RegistryValue Type="string" Name="Version" Value="$(var.QEMU_GA_VERSION)" />
++ <Component
++ Id="registry_entries"
++ Guid="{D075D109-51CA-11E3-9F8B-000C29858960}"
++ >
++ <RegistryKey
++ Root="HKLM"
++ Key="Software\$(var.QEMU_GA_MANUFACTURER)\$(var.QEMU_GA_DISTRO)\Tools\QemuGA"
++ >
++ <RegistryValue
++ Type="string"
++ Name="ProductID"
++ Value="fb0a0d66-c7fb-4e2e-a16b-c4a3bfe8d13b"
++ />
++ <RegistryValue
++ Type="string"
++ Name="Version"
++ Value="$(var.QEMU_GA_VERSION)"
++ />
+ </RegistryKey>
+- <RegistryKey Root="HKLM"
+- Key="System\CurrentControlSet\Services\EventLog\Application\qemu-ga">
++ <RegistryKey
++ Root="HKLM"
++ Key="System\CurrentControlSet\Services\EventLog\Application\qemu-ga"
++ >
+ <RegistryValue Type="integer" Name="TypesSupported" Value="7" />
+- <RegistryValue Type="string" Name="EventMessageFile" Value="[qemu_ga_directory]qemu-ga.exe" />
++ <RegistryValue
++ Type="string"
++ Name="EventMessageFile"
++ Value="[qemu_ga_directory]qemu-ga.exe"
++ />
+ </RegistryKey>
+- <RegistryKey Root="HKLM"
+- Key="System\CurrentControlSet\Services\QEMU Guest Agent VSS Provider">
++ <RegistryKey
++ Root="HKLM"
++ Key="System\CurrentControlSet\Services\ASUS Guest Agent VSS Provider"
++ >
+ <RegistryValue Type="integer" Name="VssOption" Value="1" />
+ </RegistryKey>
+ </Component>
+@@ -131,33 +291,36 @@
+ </Directory>
+ </Directory>
+
+- <Property Id="rundll" Value="rundll32.exe"/>
+- <Property Id="REINSTALLMODE" Value="amus"/>
++ <Property Id="rundll" Value="rundll32.exe" />
++ <Property Id="REINSTALLMODE" Value="amus" />
+
+ <?ifdef var.InstallVss?>
+- <CustomAction Id="RegisterCom"
+- ExeCommand='"[qemu_ga_directory]qga-vss.dll",DLLCOMRegister'
+- Execute="deferred"
+- Property="rundll"
+- Impersonate="no"
+- Return="check"
+- >
++ <CustomAction
++ Id="RegisterCom"
++ ExeCommand='"[qemu_ga_directory]qga-vss.dll",DLLCOMRegister'
++ Execute="deferred"
++ Property="rundll"
++ Impersonate="no"
++ Return="check"
++ >
+ </CustomAction>
+- <CustomAction Id="UnRegisterCom"
+- ExeCommand='"[qemu_ga_directory]qga-vss.dll",DLLCOMUnregister'
+- Execute="deferred"
+- Property="rundll"
+- Impersonate="no"
+- Return="check"
+- >
++ <CustomAction
++ Id="UnRegisterCom"
++ ExeCommand='"[qemu_ga_directory]qga-vss.dll",DLLCOMUnregister'
++ Execute="deferred"
++ Property="rundll"
++ Impersonate="no"
++ Return="check"
++ >
+ </CustomAction>
+- <CustomAction Id="UnRegisterCom_Rollback"
+- ExeCommand='"[qemu_ga_directory]qga-vss.dll",DLLCOMUnregister'
+- Execute="rollback"
+- Property="rundll"
+- Impersonate="no"
+- Return="check"
+- >
++ <CustomAction
++ Id="UnRegisterCom_Rollback"
++ ExeCommand='"[qemu_ga_directory]qga-vss.dll",DLLCOMUnregister'
++ Execute="rollback"
++ Property="rundll"
++ Impersonate="no"
++ Return="check"
++ >
+ </CustomAction>
+ <?endif?>
+
+@@ -188,7 +351,10 @@
+
+ <!-- UnRegisterCom_Rollback (for install rollback): at 5849, right before RegisterCom (5850)-->
+ <!-- Runs only if the installation fails and rolls back-->
+- <Custom Action="UnRegisterCom_Rollback" Sequence="5849">NOT REMOVE</Custom>
++ <Custom
++ Action="UnRegisterCom_Rollback"
++ Sequence="5849"
++ >NOT REMOVE</Custom>
+
+ <!-- RegisterCom (for install): at 5850, right after InstallFiles (5849) (old: After="InstallServices")-->
+ <Custom Action="RegisterCom" Sequence="5850">NOT REMOVE</Custom>
+diff --git a/qga/vss-win32/vss-handles.h b/qga/vss-win32/vss-handles.h
+index 1a7d84212..bb10ad457 100644
+--- a/qga/vss-win32/vss-handles.h
++++ b/qga/vss-win32/vss-handles.h
+@@ -3,7 +3,7 @@
+
+ /* Constants for QGA VSS Provider */
+
+-#define QGA_PROVIDER_NAME "QEMU Guest Agent VSS Provider"
++#define QGA_PROVIDER_NAME "ASUS Guest Agent VSS Provider"
+ #define QGA_PROVIDER_LNAME L(QGA_PROVIDER_NAME)
+ #define QGA_PROVIDER_VERSION L(QEMU_VERSION)
+ #define QGA_PROVIDER_REGISTRY_ADDRESS "SYSTEM\\CurrentControlSet"\
+diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
+index 60c798113..da6d4c695 100644
+--- a/target/i386/kvm/kvm.c
++++ b/target/i386/kvm/kvm.c
+@@ -2249,7 +2249,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
+ abort();
+ #endif
+ } else if (cpu->expose_kvm) {
+- memcpy(signature, "KVMKVMKVM\0\0\0", 12);
++ memcpy(signature, "GenuineIntel", 12);
+ c = &cpuid_data.entries[cpuid_i++];
+ c->function = KVM_CPUID_SIGNATURE | kvm_base;
+ c->eax = KVM_CPUID_FEATURES | kvm_base;
+diff --git a/target/s390x/tcg/misc_helper.c b/target/s390x/tcg/misc_helper.c
+index 215b5b9d9..e454f4146 100644
+--- a/target/s390x/tcg/misc_helper.c
++++ b/target/s390x/tcg/misc_helper.c
+@@ -335,18 +335,18 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint64_t r0, uint64_t r1)
+ /* Basic Machine Configuration */
+ char type[5] = {};
+
+- ebcdic_put(sysib.sysib_111.manuf, "QEMU ", 16);
++ ebcdic_put(sysib.sysib_111.manuf, "ASUS ", 16);
+ /* same as machine type number in STORE CPU ID, but in EBCDIC */
+ snprintf(type, ARRAY_SIZE(type), "%X", cpu->model->def->type);
+ ebcdic_put(sysib.sysib_111.type, type, 4);
+ /* model number (not stored in STORE CPU ID for z/Architecture) */
+- ebcdic_put(sysib.sysib_111.model, "QEMU ", 16);
+- ebcdic_put(sysib.sysib_111.sequence, "QEMU ", 16);
+- ebcdic_put(sysib.sysib_111.plant, "QEMU", 4);
++ ebcdic_put(sysib.sysib_111.model, "ASUS ", 16);
++ ebcdic_put(sysib.sysib_111.sequence, "ASUS ", 16);
++ ebcdic_put(sysib.sysib_111.plant, "ASUS", 4);
+ } else if ((sel1 == 2) && (sel2 == 1)) {
+ /* Basic Machine CPU */
+- ebcdic_put(sysib.sysib_121.sequence, "QEMUQEMUQEMUQEMU", 16);
+- ebcdic_put(sysib.sysib_121.plant, "QEMU", 4);
++ ebcdic_put(sysib.sysib_121.sequence, "ASUSASUSASUSASUS", 16);
++ ebcdic_put(sysib.sysib_121.plant, "ASUS", 4);
+ sysib.sysib_121.cpu_addr = cpu_to_be16(env->core_id);
+ } else if ((sel1 == 2) && (sel2 == 2)) {
+ /* Basic Machine CPUs */
+@@ -361,8 +361,8 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint64_t r0, uint64_t r1)
+ case STSI_R0_FC_LEVEL_2:
+ if ((sel1 == 2) && (sel2 == 1)) {
+ /* LPAR CPU */
+- ebcdic_put(sysib.sysib_221.sequence, "QEMUQEMUQEMUQEMU", 16);
+- ebcdic_put(sysib.sysib_221.plant, "QEMU", 4);
++ ebcdic_put(sysib.sysib_221.sequence, "ASUSASUSASUSASUS", 16);
++ ebcdic_put(sysib.sysib_221.plant, "ASUS", 4);
+ sysib.sysib_221.cpu_addr = cpu_to_be16(env->core_id);
+ } else if ((sel1 == 2) && (sel2 == 2)) {
+ /* LPAR CPUs */
+@@ -370,7 +370,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint64_t r0, uint64_t r1)
+ sysib.sysib_222.total_cpus = cpu_to_be16(total_cpus);
+ sysib.sysib_222.conf_cpus = cpu_to_be16(conf_cpus);
+ sysib.sysib_222.reserved_cpus = cpu_to_be16(reserved_cpus);
+- ebcdic_put(sysib.sysib_222.name, "QEMU ", 8);
++ ebcdic_put(sysib.sysib_222.name, "ASUS ", 8);
+ sysib.sysib_222.caf = cpu_to_be32(1000);
+ sysib.sysib_222.dedicated_cpus = cpu_to_be16(conf_cpus);
+ } else {
+@@ -386,7 +386,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint64_t r0, uint64_t r1)
+ sysib.sysib_322.vm[0].reserved_cpus = cpu_to_be16(reserved_cpus);
+ sysib.sysib_322.vm[0].caf = cpu_to_be32(1000);
+ /* Linux kernel uses this to distinguish us from z/VM */
+- ebcdic_put(sysib.sysib_322.vm[0].cpi, "KVM/Linux ", 16);
++ ebcdic_put(sysib.sysib_322.vm[0].cpi, "ASUS/Linux ", 16);
+ sysib.sysib_322.vm[0].ext_name_encoding = 2; /* UTF-8 */
+
+ /* If our VM has a name, use the real name */
+diff --git a/tests/functional/arm/test_raspi2.py b/tests/functional/arm/test_raspi2.py
+index d3c7aaa39..71bc64bf4 100755
+--- a/tests/functional/arm/test_raspi2.py
++++ b/tests/functional/arm/test_raspi2.py
+@@ -53,7 +53,7 @@ def do_test_arm_raspi2(self, uart_id):
+
+ console_pattern = 'Kernel command line: %s' % kernel_command_line
+ self.wait_for_console_pattern(console_pattern)
+- self.wait_for_console_pattern('Product: QEMU USB Keyboard')
++ self.wait_for_console_pattern('Product: ASUS USB Keyboard')
+
+ def test_arm_raspi2_uart0(self):
+ self.do_test_arm_raspi2(0)
+diff --git a/ui/spice-core.c b/ui/spice-core.c
+index 8a6050f4a..a43e1fccc 100644
+--- a/ui/spice-core.c
++++ b/ui/spice-core.c
+@@ -821,7 +821,7 @@ static void qemu_spice_init(void)
+
+ qemu_opt_foreach(opts, add_channel, &tls_port, &error_fatal);
+
+- spice_server_set_name(spice_server, qemu_name ?: "QEMU " QEMU_VERSION);
++ spice_server_set_name(spice_server, qemu_name ?: "ASUS " QEMU_VERSION);
+ spice_server_set_uuid(spice_server, (unsigned char *)&qemu_uuid);
+
+ seamless_migration = qemu_opt_get_bool(opts, "seamless-migration", 0);
+diff --git a/ui/spice-input.c b/ui/spice-input.c
+index a5c5d7847..0053ff418 100644
+--- a/ui/spice-input.c
++++ b/ui/spice-input.c
+@@ -39,7 +39,7 @@ static uint8_t kbd_get_leds(SpiceKbdInstance *sin);
+
+ static const SpiceKbdInterface kbd_interface = {
+ .base.type = SPICE_INTERFACE_KEYBOARD,
+- .base.description = "qemu keyboard",
++ .base.description = "ASUS keyboard",
+ .base.major_version = SPICE_INTERFACE_KEYBOARD_MAJOR,
+ .base.minor_version = SPICE_INTERFACE_KEYBOARD_MINOR,
+ .push_scan_freg = kbd_push_key,
diff --git a/profile/package.provided b/profile/package.provided
index 6938c1d..6002c3d 100644
--- a/profile/package.provided
+++ b/profile/package.provided
@@ -2,3 +2,5 @@ dev-qt/qtdbus-5.15.18
sys-apps/dbus-1.16.2
app-accessibility/at-spi2-atk-2.38.0
app-accessibility/at-spi2-core-2.56.5
+sys-libs/pam-1.7.2
+sys-auth/pambase-20251104
diff --git a/savedconfig/media-gfx/nsxiv-34 b/savedconfig/media-gfx/nsxiv-34
new file mode 100644
index 0000000..c0565dc
--- /dev/null
+++ b/savedconfig/media-gfx/nsxiv-34
@@ -0,0 +1,222 @@
+#ifdef INCLUDE_WINDOW_CONFIG
+
+/* default window dimensions (overwritten via -g option): */
+static const int WIN_WIDTH = 800;
+static const int WIN_HEIGHT = 600;
+
+/* colors and font can be overwritten via X resource properties.
+ * See nsxiv(1), X(7) section Resources and xrdb(1) for more information.
+ * X resource value (NULL == default) */
+static const char *WIN_BG[] = { "Nsxiv.window.background", "black" };
+static const char *WIN_FG[] = { "Nsxiv.window.foreground", "white" };
+static const char *MARK_FG[] = { "Nsxiv.mark.foreground", NULL };
+#if HAVE_LIBFONTS
+static const char *BAR_BG[] = { "Nsxiv.bar.background", NULL };
+static const char *BAR_FG[] = { "Nsxiv.bar.foreground", NULL };
+static const char *BAR_FONT[] = { "Nsxiv.bar.font", "monospace-8" };
+
+/* if true, statusbar appears on top of the window */
+static const bool TOP_STATUSBAR = false;
+#endif /* HAVE_LIBFONTS */
+
+#endif
+#ifdef INCLUDE_IMAGE_CONFIG
+
+/* levels (in percent) to use when zooming via '-' and '+':
+ * (first/last value is used as min/max zoom level)
+ */
+static const float zoom_levels[] = {
+ 12.5, 25.0, 50.0, 75.0,
+ 100.0, 150.0, 200.0, 400.0, 800.0
+};
+
+/* default slideshow delay (in sec, overwritten via -S option): */
+static const int SLIDESHOW_DELAY = 5;
+
+/* color correction: the user-visible ranges [-CC_STEPS, 0] and
+ * (0, CC_STEPS] are mapped to the ranges [0, 1], and (1, *_MAX].
+ * Higher step count will have higher granulairy.
+ */
+static const int CC_STEPS = 32;
+static const double GAMMA_MAX = 10.0;
+static const double BRIGHTNESS_MAX = 2.0;
+static const double CONTRAST_MAX = 4.0;
+
+/* command i_scroll pans image 1/PAN_FRACTION of screen width/height */
+static const int PAN_FRACTION = 5;
+
+/* percentage of memory to use for imlib2's cache size.
+ * 3 means use 3% of total memory which is about 245MiB on 8GiB machine.
+ * 0 or less means disable cache.
+ * 100 means use all available memory (but not above CACHE_SIZE_LIMIT).
+ *
+ * NOTE: higher cache size means better image reloading performance, but also
+ * higher memory usage.
+ */
+static const int CACHE_SIZE_MEM_PERCENTAGE = 3; /* use 3% of total memory for cache */
+static const int CACHE_SIZE_LIMIT = 256 * 1024 * 1024; /* but not above 256MiB */
+static const int CACHE_SIZE_FALLBACK = 32 * 1024 * 1024; /* fallback to 32MiB if we can't determine total memory */
+
+#endif
+#ifdef INCLUDE_OPTIONS_CONFIG
+
+/* if false, pixelate images at zoom level != 100%,
+ * toggled with 'a' key binding (overwritten via `--anti-alias` option)
+ */
+static const bool ANTI_ALIAS = true;
+
+/* if true, use a checkerboard background for alpha layer,
+ * toggled with 'A' key binding (overwritten via `--alpha-layer` option)
+ */
+static const bool ALPHA_LAYER = false;
+
+/* list of whitelisted/blacklisted directory for thumbnail cache
+ * (overwritten via --cache-{allow,deny} option).
+ * see THUMBNAIL CACHING section in nsxiv(1) manpage for more details.
+ */
+static const char TNS_FILTERS[] = "";
+/* set to true to treat `TNS_FILTERS` as a blacklist instead */
+static const bool TNS_FILTERS_IS_BLACKLIST = false;
+
+#endif
+#ifdef INCLUDE_THUMBS_CONFIG
+
+/* thumbnail sizes in pixels (width == height): */
+static const int thumb_sizes[] = { 32, 64, 96, 128, 160 };
+
+/* thumbnail size at startup, index into thumb_sizes[]: */
+static const int THUMB_SIZE = 3;
+
+#endif
+#ifdef INCLUDE_MAPPINGS_CONFIG
+
+/* these modifiers will be used when processing keybindings */
+static const unsigned int USED_MODMASK = ShiftMask | ControlMask | Mod1Mask;
+
+/* abort the keyhandler */
+static const KeySym KEYHANDLER_ABORT = XK_Escape;
+
+/* keyboard mappings for image and thumbnail mode: */
+static const keymap_t keys[] = {
+ /* modifiers key function argument */
+ { 0, XK_q, g_quit, 0 },
+ { 0, XK_Q, g_pick_quit, 0 },
+ { 0, XK_Return, g_switch_mode, None },
+ { 0, XK_f, g_toggle_fullscreen, None },
+ { 0, XK_b, g_toggle_bar, None },
+ { ControlMask, XK_x, g_prefix_external, None },
+ { 0, XK_g, g_first, None },
+ { 0, XK_G, g_n_or_last, None },
+ { 0, XK_r, g_reload_image, None },
+ { 0, XK_D, g_remove_image, None },
+ { ControlMask, XK_h, g_scroll_screen, DIR_LEFT },
+ { ControlMask, XK_Left, g_scroll_screen, DIR_LEFT },
+ { ControlMask, XK_j, g_scroll_screen, DIR_DOWN },
+ { ControlMask, XK_Down, g_scroll_screen, DIR_DOWN },
+ { ControlMask, XK_k, g_scroll_screen, DIR_UP },
+ { ControlMask, XK_Up, g_scroll_screen, DIR_UP },
+ { ControlMask, XK_l, g_scroll_screen, DIR_RIGHT },
+ { ControlMask, XK_Right, g_scroll_screen, DIR_RIGHT },
+ { 0, XK_plus, g_zoom, +1 },
+ { 0, XK_KP_Add, g_zoom, +1 },
+ { 0, XK_minus, g_zoom, -1 },
+ { 0, XK_KP_Subtract, g_zoom, -1 },
+ { 0, XK_m, g_toggle_image_mark, None },
+ { 0, XK_M, g_mark_range, None },
+ { ControlMask, XK_m, g_reverse_marks, None },
+ { ControlMask, XK_u, g_unmark_all, None },
+ { 0, XK_N, g_navigate_marked, +1 },
+ { 0, XK_P, g_navigate_marked, -1 },
+ { 0, XK_braceleft, g_change_gamma, -1 },
+ { 0, XK_braceright, g_change_gamma, +1 },
+ { ControlMask, XK_g, g_change_gamma, 0 },
+ { ControlMask, XK_bracketright, g_change_brightness, +1 },
+ { ControlMask, XK_bracketleft, g_change_brightness, -1 },
+ { 0, XK_parenleft, g_change_contrast, -1 },
+ { 0, XK_parenright, g_change_contrast, +1 },
+
+ { 0, XK_h, t_move_sel, DIR_LEFT },
+ { 0, XK_Left, t_move_sel, DIR_LEFT },
+ { 0, XK_j, t_move_sel, DIR_DOWN },
+ { 0, XK_Down, t_move_sel, DIR_DOWN },
+ { 0, XK_k, t_move_sel, DIR_UP },
+ { 0, XK_Up, t_move_sel, DIR_UP },
+ { 0, XK_l, t_move_sel, DIR_RIGHT },
+ { 0, XK_Right, t_move_sel, DIR_RIGHT },
+ { 0, XK_R, t_reload_all, None },
+
+ { 0, XK_n, i_navigate, +1 },
+ { 0, XK_n, i_scroll_to_edge, DIR_LEFT | DIR_UP },
+ { 0, XK_space, i_navigate, +1 },
+ { 0, XK_p, i_navigate, -1 },
+ { 0, XK_p, i_scroll_to_edge, DIR_LEFT | DIR_UP },
+ { 0, XK_BackSpace, i_navigate, -1 },
+ { 0, XK_bracketright, i_navigate, +10 },
+ { 0, XK_bracketleft, i_navigate, -10 },
+ { ControlMask, XK_6, i_alternate, None },
+ { ControlMask, XK_n, i_navigate_frame, +1 },
+ { ControlMask, XK_p, i_navigate_frame, -1 },
+ { ControlMask, XK_space, i_toggle_animation, None },
+ { ControlMask, XK_a, i_toggle_animation, None },
+ { 0, XK_h, i_scroll, DIR_LEFT },
+ { 0, XK_Left, i_scroll, DIR_LEFT },
+ { 0, XK_j, i_scroll, DIR_DOWN },
+ { 0, XK_Down, i_scroll, DIR_DOWN },
+ { 0, XK_k, i_scroll, DIR_UP },
+ { 0, XK_Up, i_scroll, DIR_UP },
+ { 0, XK_l, i_scroll, DIR_RIGHT },
+ { 0, XK_Right, i_scroll, DIR_RIGHT },
+ { 0, XK_H, i_scroll_to_edge, DIR_LEFT },
+ { 0, XK_J, i_scroll_to_edge, DIR_DOWN },
+ { 0, XK_K, i_scroll_to_edge, DIR_UP },
+ { 0, XK_L, i_scroll_to_edge, DIR_RIGHT },
+ { 0, XK_z, i_scroll_to_center, None },
+ { 0, XK_equal, i_set_zoom, 100 },
+ { 0, XK_w, i_fit_to_win, SCALE_DOWN },
+ { 0, XK_W, i_fit_to_win, SCALE_FIT },
+ { 0, XK_F, i_fit_to_win, SCALE_FILL },
+ { 0, XK_e, i_fit_to_win, SCALE_WIDTH },
+ { 0, XK_E, i_fit_to_win, SCALE_HEIGHT },
+ { 0, XK_less, i_rotate, DEGREE_270 },
+ { 0, XK_greater, i_rotate, DEGREE_90 },
+ { 0, XK_question, i_rotate, DEGREE_180 },
+ { 0, XK_bar, i_flip, FLIP_HORIZONTAL },
+ { 0, XK_underscore, i_flip, FLIP_VERTICAL },
+ { 0, XK_a, i_toggle_antialias, None },
+ { 0, XK_A, i_toggle_alpha, None },
+ { 0, XK_s, i_slideshow, None },
+};
+
+/* mouse button mappings for image mode: */
+static const button_t buttons_img[] = {
+ /* modifiers button function argument */
+ { 0, 1, i_cursor_navigate, None },
+ { ControlMask, 1, i_drag, DRAG_RELATIVE },
+ { 0, 2, i_drag, DRAG_ABSOLUTE },
+ { 0, 3, g_switch_mode, None },
+ { 0, 4, g_zoom, +1 },
+ { 0, 5, g_zoom, -1 },
+};
+
+/* mouse button mappings for thumbnail mode: */
+static const button_t buttons_tns[] = {
+ /* modifiers button function argument */
+ { 0, 1, t_select, None },
+ { 0, 3, t_drag_mark_image, None },
+ { 0, 4, t_scroll, DIR_UP },
+ { 0, 5, t_scroll, DIR_DOWN },
+ { ControlMask, 4, g_scroll_screen, DIR_UP },
+ { ControlMask, 5, g_scroll_screen, DIR_DOWN },
+};
+
+/* true means NAV_WIDTH is relative (33%), false means absolute (33 pixels) */
+static const bool NAV_IS_REL = true;
+/* width of navigation area, 0 disables cursor navigation, */
+static const unsigned int NAV_WIDTH = 33;
+
+/* mouse cursor on left, middle and right part of the window */
+static const cursor_t imgcursor[3] = {
+ CURSOR_LEFT, CURSOR_ARROW, CURSOR_RIGHT
+};
+
+#endif
diff --git a/savedconfig/sys-kernel/linux-firmware-20260221 b/savedconfig/sys-kernel/linux-firmware-20260221
new file mode 100644
index 0000000..a5437cd
--- /dev/null
+++ b/savedconfig/sys-kernel/linux-firmware-20260221
@@ -0,0 +1,13 @@
+# Remove files that shall not be installed from this list.
+amdgpu/dimgrey_cavefish_ce.bin
+amdgpu/dimgrey_cavefish_dmcub.bin
+amdgpu/dimgrey_cavefish_me.bin
+amdgpu/dimgrey_cavefish_mec.bin
+amdgpu/dimgrey_cavefish_mec2.bin
+amdgpu/dimgrey_cavefish_pfp.bin
+amdgpu/dimgrey_cavefish_rlc.bin
+amdgpu/dimgrey_cavefish_sdma.bin
+amdgpu/dimgrey_cavefish_smc.bin
+amdgpu/dimgrey_cavefish_sos.bin
+amdgpu/dimgrey_cavefish_ta.bin
+amdgpu/dimgrey_cavefish_vcn.bin