Compare commits

...
8 Commits
Author SHA1 Message Date
ja 5d770d2def docs(tech): correct firmware target GXA7801Q (non-SED) and update status
- Key discovery: GXA7802Q is SED-only (00B07), our drive needs GXA7801Q (00B00)
- Updated all references from GXA7802Q to GXA7801Q
- Added firmware naming convention table (1Q=non-SED, 2Q=SED)
- Updated procedure with correct GitHub source and slot-based update
- Marked firmware update as applied (reboot pending)
- Added SHA256 checksum for GXA7801Q.bin
2026-04-02 10:57:12 +02:00
ja 1a57375fff docs(tech): pre-firmware benchmark + GXA7801Q update applied
- Comprehensive NVMe benchmark before firmware update (GXA7401Q)
- SMART health: 19% used, 0 media errors, 100% spare
- Sequential read: 1,554 MiB/s, write: 1,305 MiB/s
- Random read: 361k IOPS, write: 291k IOPS
- Key discovery: GXA7802Q is SED-only, GXA7801Q is non-SED (our drive)
- Firmware update applied: fw-download + fw-commit + fw-activate (slot 2)
- Reboot required to activate GXA7801Q firmware
2026-04-02 10:53:54 +02:00
ja 66408ff68f docs(tech): add pre-firmware-update NVMe benchmark (GXA7401Q)
Comprehensive benchmark of Samsung PM9A1 NVMe SSD before firmware
update from GXA7401Q to GXA7802Q. Includes SMART health, hdparm,
and fio results (seq/rand read/write, 4K blocks, iodepth=32).
2026-04-02 10:40:10 +02:00
ja 7a672833aa docs(tech): add PM9A1 firmware changelog GXA7401Q to GXA7802Q
- Document full firmware progression: GXA7401Q → GXA7602Q → GXA7702Q → GXA7802Q
- GXA7802Q fixes unmap/TRIM handling regressions from GXA7702Q
- Add sources: Samsung PDF, Win-Raid, GitHub samsung-nvme-firmware
2026-04-02 10:15:50 +02:00
ja b80dad6a75 feat(tech): add fwupd setup and firmware update research
- Install fwupd 2.1.1, refresh LVFS metadata
- Detect 7 devices: NVMe, SATA SSD, CPU, AMD TPM 2.0, 3 displays
- LVFS: no updates published for Samsung SSDs
- New discovery: AMD fTPM 2.0 (v3.8.0.3) not in original inventory
- NVMe firmware GXA7802Q available via nvme-cli (not LVFS)
- Action plan: 1 medium-risk update (NVMe), rest up-to-date or EOL
2026-04-02 10:02:15 +02:00
ja 9494d1693b docs(tech): add firmware/BIOS update research for all workstation components
- Researched 7 component categories for available firmware updates
- NVMe SSD (PM9A1): update available GXA7401Q -> GXA7802Q
- Motherboard BIOS F53 is current (no update needed)
- SATA SSD 840 EVO, GPU GTX 1050 Ti: EOL, no updates
- NIC/CPU microcode: managed via kernel/firmware packages
- USB peripherals: no LVFS/fwupd support
- Recommend installing fwupd for future firmware management
2026-04-02 09:49:00 +02:00
ja 5a1ae7b0e2 docs(tech): add hardware inventory and document LLM model migration
- Created docs/tech/hardware-inventory.md with full system specs
- Documented LLM model move to /home/mw/models in manual-overrides.md
2026-04-02 09:38:02 +02:00
ja 6980d7369a docs(tech): add hardware inventory, fix DDR5->DDR4 error in health doc
- New docs/tech/hardware-inventory.md with full hardware specs:
  CPU (Ryzen 7 2700X), RAM (64GiB DDR4-2666, 4x16GiB), storage
  (512G NVMe PM9A1 + 500G SATA 840 EVO), GPU (GTX 1050 Ti),
  networking (Realtek 1Gbps + Tailscale), USB peripherals, chipset
- Fix workstation-health.md: DDR5-3200 was incorrect, actual DDR4-2666
- Note: primary disk at 93% usage (34G free)
2026-04-02 09:18:06 +02:00
5 changed files with 617 additions and 2 deletions
+298
View File
@@ -0,0 +1,298 @@
---
description: >-
Firmware/BIOS update research for all workstation components.
Current vs latest versions, update methods, and risk assessment.
tags: [firmware, bios, update, research, tech, workstation]
last_updated: '2026-04-02'
---
# Firmware Update Research: mw-pfeddersheim-workstation
**Date**: 2026-04-02
**Purpose**: Research latest firmware/BIOS versions for all components and assess update needs.
## Summary
| Component | Current Version | Latest Version | Update? | Risk |
|-----------|----------------|----------------|---------|------|
| Motherboard BIOS | F53 (2025-10-28) | F53 | **No** | - |
| NVMe SSD (PM9A1) | GXA7401Q | **GXA7801Q** | **Yes (applied)** | Medium |
| SATA SSD (840 EVO) | EXT0BB6Q | EXT0BB6Q (EOL) | **No** | - |
| GPU VBIOS (GTX 1050 Ti) | 86.07.39.00.50 | 86.07.39.00.50 (EOL) | **No** | - |
| NIC (RTL8111) | rev 0c, r8168 driver | Kernel-integrated | Via kernel | Low |
| CPU Microcode | Kernel-integrated | Kernel-integrated | Via kernel | Low |
| USB Peripherals | Various | Various | **No** (no LVFS) | - |
**Actionable updates**: 1 (NVMe SSD firmware)
---
## Detailed Findings
### 1. Motherboard BIOS: Gigabyte AX370M-DS3H-CF
| Field | Value |
|-------|-------|
| Current | F53, dated 2025-10-28 |
| Latest | F53 (no newer version found) |
| Source | [Gigabyte Support](https://www.gigabyte.com/us/Motherboard/GA-AX370M-DS3H-rev-1x/support) |
**Status**: **Up to date.** F53 from October 2025 is the latest available. The AX370M-DS3H (rev 1.x) is an AM4 board from 2017 - F53 represents a remarkably long support timeline (8+ years). No further updates expected.
**Update method** (if future versions appear): Q-Flash (BIOS) or @BIOS (Windows/Linux utility).
---
### 2. NVMe SSD: Samsung PM9A1 (MZVL2512HCJQ-00B00)
| Field | Value |
|-------|-------|
| Current | GXA7401Q |
| **Latest** | **GXA7801Q** (non-SED, `00B00`) |
| Source | [GitHub: samsung-nvme-firmware](https://github.com/lolyinseo/samsung-nvme-firmware) |
**Status**: **Update applied 2026-04-02.** GXA7801Q is the correct firmware for non-SED PM9A1 drives (model `00B00`). Reboot pending to activate.
> **Important**: GXA7802Q is for SED drives (model `00B07`) only. Our non-SED drive (MZVL2512HCJQ-**00B00**) requires GXA7801Q.
> The OVHCloud mirror only hosts GXA7802Q, which was rejected as "Invalid Firmware Image".
### Firmware Naming Convention
| Suffix | Type | Model Suffix |
|--------|------|-------------|
| `GXA***1Q` | Non-SED (standard) | `00B00` |
| `GXA***2Q` | SED (Self-Encrypting) | `00B07` |
### Firmware Changelog (GXA7401Q → GXA7801Q)
| Version | Key Changes |
|---------|-------------|
| **GXA7401Q** (current) | Fixed Pyrite spec violation (prevented user data erase during TCG revert). Improved write performance drop beyond 70% capacity usage via foreground GC in SSB area. |
| **GXA7602Q** | Changed LPN per Unmap Range from total device LPN to 1000. Improved free block generation, reduced unnecessary migrations and TLC writes. |
| **GXA7702Q** | Increased LPN per Unmap Range to 10,000. Introduced **side effects**: lengthened FW time for Unmap operations, slower free block generation, increased unnecessary migrations. Samsung recommended **holding** this version. |
| **GXA7801Q** (latest, applied) | **Fixes all GXA7702Q side effects.** Non-SED variant. Corrects unmap handling, restores free block generation performance. Released ~Nov 2022 after internal qualification. Overall stability and performance improvements. |
**Key benefit for workstation**: The GXA7401Q → GXA7801Q jump fixes unmap/TRIM performance regression chain from GXA7702Q intermediate versions. Since this is a root NVMe drive with heavy I/O, improved unmap handling and write stability are relevant.
**Note**: No official Samsung changelog exists publicly. Information sourced from Samsung internal PDF (gzhls.at), OVHCloud deployment guide, and Win-Raid community.
**Update procedure** (Linux, no Samsung Magician needed):
```bash
# 1. Install nvme-cli
sudo pacman -S nvme-cli
# 2. Verify current firmware
nvme list
# 3. Download firmware binary (GitHub mirror - correct for non-SED drives)
wget -O /tmp/GXA7801Q.bin \
"https://raw.githubusercontent.com/lolyinseo/samsung-nvme-firmware/main/PM9A1/ASUS/GXA7801Q/GXA7801Q_20221102.bin"
# 4. Apply firmware (ensure NVMe is /dev/nvme0n1)
sudo nvme fw-download --fw=/tmp/GXA7801Q.bin /dev/nvme0n1
sudo nvme fw-commit -s 2 -a 0 /dev/nvme0 # Install to slot 2
sudo nvme fw-commit -s 2 -a 2 /dev/nvme0 # Activate slot 2
# 5. Reboot to apply
sudo reboot
# 6. Verify after reboot
nvme list
```
**Update applied**: 2026-04-02 10:51 CET. All three nvme-cli steps succeeded. Reboot pending.
**Firmware file**: SHA256 `76ad2b0c35581cb71bd4c5a5fd358a15c4432aa38e9e983acc2349d2b24b5a11`
**Risk**: Medium. NVMe firmware update can brick the drive if interrupted (power loss). Original firmware GXA7401Q preserved in slot 1 as fallback.
**Pre-firmware benchmark**: See `docs/tech/nvme-benchmark-pre-gxa7802q.md`
---
### 3. SATA SSD: Samsung SSD 840 EVO 500GB
| Field | Value |
|-------|-------|
| Current | EXT0BB6Q |
| Latest | EXT0BB6Q (EOL - no updates since ~2015) |
| Source | [Samsung Semiconductor Tools](https://semiconductor.samsung.com/consumer-storage/support/tools/) |
**Status**: **No update available.** The 840 EVO (released 2013) has reached end-of-life. EXT0BB6Q is the final firmware. No further updates will be released.
**Note**: This drive is 12+ years old. Consider monitoring health via `smartctl` and planning replacement if reliability degrades.
**If update were needed**: Samsung provides bootable ISO firmware utilities, but none exist beyond EXT0BB6Q for this model. Samsung Magician is Windows-only.
---
### 4. GPU: NVIDIA GeForce GTX 1050 Ti
| Field | Value |
|-------|-------|
| Current VBIOS | 86.07.39.00.50 |
| Latest VBIOS | 86.07.39.00.50 (EOL) |
| Current Driver | 575.64.05 |
| Latest Driver | ~580.81 (final for 10-series, end of 2025) |
| Source | [NVIDIA Drivers](https://www.nvidia.com/en-us/drivers/) |
**Status**: **No VBIOS update available.** NVIDIA ended Game Ready driver support for GTX 10-series at end of 2025. No VBIOS updates have been released.
**Driver note**: Driver 575.64.05 may be close to or past the final supported version. Check `mhwd` or `pacman` for the latest NVIDIA 10-series driver available in Manjaro.
**Update method** (drivers only): `sudo pacman -Syu nvidia` or via Manjaro Hardware Detection (`mhwd`).
---
### 5. NIC: Realtek RTL8111/8168/8411 (rev 0c)
| Field | Value |
|-------|-------|
| Current Driver | r8168 (proprietary) |
| Kernel Module | r8168, r8169 (alternative) |
| Firmware | rtl_nic/rtl8168h-2.fw (linux-firmware) |
| Source | linux-firmware.git (kernel.org) |
**Status**: **Managed via kernel/firmware packages.** No standalone firmware update needed. The NIC firmware blob is part of `linux-firmware` package.
**Update method**: Keep `linux-firmware` package updated via normal `pacman -Syu`.
**Note**: Currently using `r8168` (Realtek proprietary driver). The in-kernel `r8169` driver also supports this chip and may be preferable for simpler maintenance. Both are loaded as kernel modules.
---
### 6. CPU: AMD Ryzen 7 2700X (Zen+ / Pinnacle Ridge)
| Field | Value |
|-------|-------|
| Microcode | Kernel-integrated (ucode_amd.bin) |
| AGESA | Applied via BIOS (F53 includes latest for this board) |
| Source | linux-firmware.git, kernel.org |
**Status**: **Managed via kernel/BIOS.** AMD CPU microcode updates are delivered through:
1. **BIOS/UEFI** (AGESA updates) - already at F53 (latest)
2. **Linux kernel** (early microcode loading) - updated via `linux-firmware` package
**Verify current microcode**: `dmesg | grep microcode` after boot.
**Update method**: Keep kernel and `linux-firmware` packages updated.
---
### 7. USB Peripherals
| Device | USB ID | Firmware Update? | Method |
|--------|--------|------------------|--------|
| Jabra SPEAK 510 | 0b0e:0422 | Maybe | Jabra Xpress (Linux) |
| Genesys Logic microSD Reader | 05e3:0727 | No | N/A |
| Pixart Imaging Mouse | 093a:2510 | No | N/A |
| Microdia Terra HD1080PC Camera | 0c45:636b | No | N/A |
| CHERRY Mechanical Keyboard | 046a:00b0 | No | N/A |
**Status**: **No LVFS/fwupd support** for any of these devices.
**Jabra SPEAK 510**: Jabra Xpress (v49.0.1.2, Dec 2025) is available for Linux. Could check for firmware updates if audio issues exist. Download from [Jabra Support](https://www.jabra.com/supportpages/jabra-speak-510/7510-209).
**All others**: No firmware update mechanisms available. These are simple HID/USB devices with no user-serviceable firmware.
---
## fwupd Status
**Installed**: fwupd 2.1.1 (2026-04-02)
### Detected Devices (7 total)
| Device | Type | Current Version | Updatable via LVFS? |
|--------|------|-----------------|---------------------|
| MZVL2512HCJQ-00B00 | NVMe SSD | GXA7401Q | Yes (flag) / No update published |
| SSD 840 EVO 500GB | SATA SSD | EXT0BB6Q | Yes (flag) / No update published |
| Ryzen 7 2700X | CPU Microcode | 0x0800820e | No |
| AMD TPM 2.0 | TPM | 3.8.0.3 | Yes (flag, signed payload) |
| Unknown (PNP:WOR) | Display (?) | - | No |
| Unknown (PNP:BNQ) | Display (?) | - | No |
| Unknown (PNP:WOR) | Display (?) | - | No |
### LVFS Update Check Result
```
No updatable devices
```
Samsung does not publish PM9A1 or 840 EVO firmware on LVFS. The NVMe firmware update to GXA7801Q (see §2) must be done via `nvme-cli` with firmware from the [samsung-nvme-firmware GitHub repo](https://github.com/lolyinseo/samsung-nvme-firmware). The OVHCloud mirror only has GXA7802Q (SED variant, incompatible with non-SED drives).
### New Discovery: AMD TPM 2.0
fwupd detected an **AMD TPM 2.0** device (version 3.8.0.3) not in original inventory. This is the firmware TPM (fTPM) built into the Ryzen processor. It supports signed payload updates via fwupd/LVFS. Currently no update is published.
### fwupd Verification Commands
```bash
fwupdmgr refresh # Refresh metadata from LVFS
fwupdmgr get-devices # List all detected devices
fwupdmgr get-updates # Check for available updates
fwupdmgr update # Apply available updates
```
---
## Recommended Action Plan
### Immediate (Low Risk)
| # | Action | Command | Status |
|---|--------|---------|--------|
| 1 | Install fwupd | `sudo pacman -S fwupd` | **Done** (fwupd 2.1.1) |
| 2 | Update linux-firmware | `sudo pacman -Syu linux-firmware` | Pending |
| 3 | Check NVIDIA driver version | `pacman -Q nvidia` | Pending |
### Scheduled (Medium Risk - Requires Maintenance Window)
| # | Action | Risk | Downtime |
|---|--------|------|----------|
| 4 | ~~Update NVMe firmware to GXA7801Q~~ | ~~Medium (power loss risk)~~ | **Applied 2026-04-02, reboot pending** |
### No Action Needed
| Component | Reason |
|-----------|--------|
| Motherboard BIOS | Already at latest (F53) |
| SATA SSD | EOL, no updates available |
| GPU VBIOS | EOL, no updates available |
| CPU Microcode | Managed via kernel/firmware |
| NIC Firmware | Managed via kernel/firmware |
| USB Peripherals | No update mechanisms |
---
## Risk Assessment
### NVMe Firmware Update (GXA7401Q -> GXA7801Q) - APPLIED 2026-04-02
| Risk | Mitigation |
|------|------------|
| Power loss during update = bricked drive | Use UPS, verify battery backup |
| Data corruption | Backup critical data first |
| Incompatibility | Verify model match (MZVL2512HCJQ-00B00) |
### General Considerations
- **Production workstation**: All firmware updates should be scheduled during non-critical hours.
- **Rollback**: BIOS has dual-BIOS; NVMe/SATA have no rollback mechanism.
- **Testing**: After any firmware update, run `smartctl -a` and `nvme smart-log` to verify health.
---
## References
- [Gigabyte GA-AX370M-DS3H Support](https://www.gigabyte.com/us/Motherboard/GA-AX370M-DS3H-rev-1x/support)
- [OVHCloud PM9A1 Firmware Guide](https://support.us.ovhcloud.com/hc/en-us/articles/22361371147923)
- [Samsung SSD Firmware Tools](https://semiconductor.samsung.com/consumer-storage/support/tools/)
- [NVIDIA Drivers](https://www.nvidia.com/en-us/drivers/)
- [Jabra Xpress for Linux](https://www.jabra.com/support/release-notes/release-note-jabra-xpress-for-linux)
- [linux-firmware.git](https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git)
- [Samsung PM9A1 Firmware PDF (gzhls.at)](https://gzhls.at/blob/ldb/1/a/2/a/90ce739915b765d7fdae4620177253f0056e.pdf)
- [Win-Raid PM9A1 Discussion](https://winraid.level1techs.com/t/samsung-pm9a1-firmware-update/37242)
- [GitHub: samsung-nvme-firmware (correct GXA7801Q source)](https://github.com/lolyinseo/samsung-nvme-firmware)
- [GitHub: samsung-nvme-firmware issues](https://github.com/lolyinseo/samsung-nvme-firmware/issues/10)
+163
View File
@@ -0,0 +1,163 @@
---
description: >-
Hardware inventory for mw-pfeddersheim-workstation. Captured 2026-04-02.
tags: [hardware, inventory, tech, workstation]
last_updated: '2026-04-02'
---
# Hardware Inventory: mw-pfeddersheim-workstation
## System Overview
| Field | Value |
|-------|-------|
| Machine | mw-pfeddersheim-workstation |
| Location | satware AG, Pfeddersheim |
| OS | Manjaro Linux, kernel 6.12 |
| Desktop | KDE Plasma 6.5.6 |
| User | Michael Wegener (mw) |
## CPU
| Field | Value |
|-------|-------|
| Model | AMD Ryzen 7 2700X Eight-Core Processor |
| Architecture | x86_64 |
| Cores/Threads | 8C/16T |
| Max Clock | 3.9 GHz |
| L1 Cache | 256 KiB (L1d) + 512 KiB (L1i) |
| L2 Cache | 4 MiB |
| L3 Cache | 16 MiB |
| Socket | AM4 (1 socket) |
## Motherboard
| Field | Value |
|-------|-------|
| Manufacturer | Gigabyte Technology Co., Ltd. |
| Model | AX370M-DS3H-CF |
| Form Factor | Micro-ATX |
| Chipset | AMD X370 |
## BIOS/UEFI
| Field | Value |
|-------|-------|
| Vendor | American Megatrends International, LLC |
| Version | F53 |
| Date | 2025-10-28 |
## Memory
| Field | Value |
|-------|-------|
| Total RAM | 62 GiB |
| Swap | 16 GiB (zram) + 31 GiB (disk) |
| Type | DDR4 |
| Speed | 2666 MT/s |
| ECC | None |
### DIMM Modules
| Slot | Size | Manufacturer | Part Number |
|------|------|-------------|-------------|
| DIMM A | 16 GiB | Kingston | 9905701-006.A00G |
| DIMM B | 16 GiB | Samsung | M378A2K43CB1-CRC |
| DIMM C | 16 GiB | (see dmidecode) | - |
| DIMM D | 16 GiB | (see dmidecode) | - |
> **Note**: 4x16 GiB modules = 64 GiB (reported as 62 GiB usable). Run `sudo dmidecode -t memory` for full module details.
## Storage
| Device | Model | Size | Type | Filesystem | Mount Point |
|--------|-------|------|------|------------|-------------|
| `/dev/nvme0n1` | Samsung PM9A1 (MZVL2512HCJQ) | 476.9G | NVMe SSD | - | - |
| ├─ `/dev/nvme0n1p1` | - | 512M | - | vfat (EFI) | `/boot/efi` |
| └─ `/dev/nvme0n1p2` | - | 476.4G | - | ext4 | `/` |
| `/dev/sda` | Samsung SSD 840 EVO 500GB | 465.8G | SATA SSD | - | - |
| └─ `/dev/sda1` | - | 465.8G | - | btrfs | `/home/mw/models` |
| `/dev/zram0` | - | 16G | zram | swap | `[SWAP]` |
### NVMe Health
| Metric | Value |
|--------|-------|
| Temperature | 51°C |
| Available Spare | 100% |
### Disk Usage (2026-04-02)
| Filesystem | Size | Used | Avail | Use% |
|------------|------|------|-------|------|
| `/` (NVMe) | 468G | 386G | 59G | 87% |
| `/home/mw/models` (SATA) | 466G | 54G | 411G | 12% |
| `/boot/efi` | 511M | 328K | 511M | 1% |
## GPU
| Field | Value |
|-------|-------|
| Model | NVIDIA GeForce GTX 1050 Ti |
| VRAM | 4096 MiB |
| Driver | 575.64.05 |
| GPU Temp (idle) | 47°C |
| PCI Address | 08:00.0 |
## Network
### Physical
| Interface | Model | Speed | MAC |
|-----------|-------|-------|-----|
| `enp5s0` | Realtek RTL8111/8168/8411 | 1 Gbps | e0:d5:5e:69:6f:c5 |
### Virtual/Software
| Interface | Type | Purpose |
|-----------|------|---------|
| `tailscale0` | VPN | Tailscale mesh VPN |
| `docker0` | Bridge | Docker default bridge |
| `br-1ba9d2122bb7` | Bridge | Docker network |
| `br-87dbe859ba36` | Bridge | Docker network |
| `br-1f223e02995b` | Bridge | Docker network |
| `br_vm_internal` | Bridge | VM internal network |
## USB Peripherals
| Bus | Device | Description |
|-----|--------|-------------|
| 001 | 002 | Jabra SPEAK 510 USB (speakerphone) |
| 001 | 003 | Genesys Logic microSD Reader/Writer |
| 003 | 002 | Pixart Imaging Optical Mouse |
| 003 | 003 | Microdia Terra HD1080PC Camera |
| 003 | 004 | CHERRY Mechanical Keyboard |
## Thermal Sensors (Idle)
| Sensor | Value |
|--------|-------|
| CPU Tctl | 57.2°C |
| CPU Tdie | 47.2°C |
| Gigabyte temp1 | 44.0°C |
| Gigabyte temp2 | 58.0°C |
| NVMe Sensor 1 | 51°C |
| NVMe Sensor 2 | 63°C |
## Data Collection Commands
Re-run to update inventory:
```bash
lscpu | grep -E "^(Model name|Socket|Core|Thread|CPU|Architecture|L1|L2|L3)"
free -h
sudo dmidecode -t baseboard | grep -E "Manufacturer|Product|Version"
sudo dmidecode -t bios | grep -E "Vendor|Version|Date"
sudo dmidecode -t memory | grep -E "Size|Speed|Type:|Manufacturer|Part"
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL
lspci | grep -iE "VGA|3D|Display|net"
lsusb
nvidia-smi --query-gpu=name,driver_version,memory.total,temperature.gpu --format=csv,noheader
sudo smartctl -A /dev/nvme0n1 | grep -E "Temperature|Available"
sensors
df -h / /home/mw/models /boot/efi
+1 -1
View File
@@ -22,4 +22,4 @@ This document tracks all persistent system changes implemented manually that are
| Date | Change | Rationale | Ansible Status |
|------|--------|-----------|----------------|
| | | | |
| 2026-04-02 | Moved LLM models to `/home/mw/models/` (SATA SSD) with symlinks | Free root NVMe space (93%→87%, +25G freed) | Not yet |
+154
View File
@@ -0,0 +1,154 @@
# NVMe Benchmark: Pre-Firmware Update (GXA7401Q)
> **Date**: 2026-04-02 10:35 CET
> **Device**: Samsung PM9A1 (MZVL2512HCJQ-00B00), 512GB
> **Serial**: S675NF0R703667
> **Firmware**: GXA7401Q (pre-update)
> **OS**: Manjaro Linux, kernel 6.12, KDE 6.5.6
> **NVMe slot**: /dev/nvme0n1 (root drive)
## SMART Health Data
| Metric | Value |
|--------|-------|
| Critical Warning | 0 (healthy) |
| Temperature | 51°C (Sensor 2: 64°C) |
| Available Spare | 100% |
| Available Spare Threshold | 10% |
| Percentage Used | 19% |
| Data Units Read | 17.97 TB |
| Data Units Written | 94.19 TB |
| Host Read Commands | 683,328,216 |
| Host Write Commands | 1,651,377,088 |
| Controller Busy Time | 9,265 min |
| Power Cycles | 884 |
| Power On Hours | 4,926 h (~205 days) |
| Unsafe Shutdowns | 88 |
| Media Errors | 0 |
| Error Log Entries | 0 |
## hdparm Results
| Test | Throughput |
|------|-----------|
| Cached Reads | 7,349.97 MB/sec |
| Buffered Disk Reads | 741.99 MB/sec |
## fio Benchmarks (4K block, libaio, iodepth=32, 30s per test)
### Sequential Read
| Metric | Value |
|--------|-------|
| Bandwidth | 1,554 MiB/s (1,630 MB/s) |
| IOPS | 398,000 |
| Avg Latency | 80.16 µs |
| P99 Latency | 128 µs |
| P99.9 Latency | 186 µs |
### Sequential Write
| Metric | Value |
|--------|-------|
| Bandwidth | 1,305 MiB/s (1,368 MB/s) |
| IOPS | 334,000 |
| Avg Latency | 95.53 µs |
| P99 Latency | 163 µs |
| P99.9 Latency | 255 µs |
### Random Read
| Metric | Value |
|--------|-------|
| Bandwidth | 1,409 MiB/s (1,477 MB/s) |
| IOPS | 361,000 |
| Avg Latency | 88.42 µs |
| P99 Latency | 141 µs |
| P99.9 Latency | 200 µs |
### Random Write
| Metric | Value |
|--------|-------|
| Bandwidth | 1,135 MiB/s (1,190 MB/s) |
| IOPS | 291,000 |
| Avg Latency | 109.78 µs |
| P99 Latency | 190 µs |
| P99.9 Latency | 334 µs |
### Random Read/Write (70/30)
| Metric | Read | Write |
|--------|------|-------|
| Bandwidth | 919 MiB/s (964 MB/s) | 394 MiB/s (413 MB/s) |
| IOPS | 235,000 | 101,000 |
| Avg Latency | 94.72 µs | 95.05 µs |
| P99 Latency | 149 µs | 149 µs |
## Test Configuration
```text
fio-3.41
Block size: 4096B
IO Engine: libaio
IO Depth: 32
Direct IO: yes
Runtime: 30s per test
File size: 1GiB
Directory: /tmp (on NVMe root drive)
```
## Assessment
- Drive health is good: 0 media errors, 0 error log entries, 100% spare
- 19% endurance used after ~205 days powered on (within normal range)
- Sequential performance consistent with PCIe 4.0 x4 NVMe expectations
- Random IOPS strong for a client-grade TLC SSD
- Temperature under load: 51-64°C (well within spec)
## Firmware Update Applied
> **Date**: 2026-04-02 10:51 CET
### Key Discovery: Firmware Naming Convention
| Suffix | Type | Model Suffix |
|--------|------|-------------|
| `GXA***1Q` | Non-SED | `00B00` (our drive) |
| `GXA***2Q` | SED | `00B07` |
Our drive (MZVL2512HCJQ-**00B00**) requires `GXA7801Q`, NOT `GXA7802Q`.
The OVH mirror only hosts `GXA7802Q` (SED variant) which was rejected as "Invalid Firmware Image".
### Correct Firmware Source
- **Repository**: `lolyinseo/samsung-nvme-firmware` (GitHub, 199 stars)
- **File**: `PM9A1/ASUS/GXA7801Q/GXA7801Q_20221102.bin`
- **Size**: 2,097,152 bytes (2.0 MiB)
- **SHA256**: `76ad2b0c35581cb71bd4c5a5fd358a15c4432aa38e9e983acc2349d2b24b5a11`
### Update Process (all succeeded)
```bash
# Step 1: Download to controller SRAM
sudo nvme fw-download --fw=/tmp/GXA7801Q.bin /dev/nvme0n1
# → Firmware download success
# Step 2: Install to slot 2 (preserve original in slot 1)
sudo nvme fw-commit -s 2 -a 0 /dev/nvme0
# → Success committing firmware action:0 slot:2
# Step 3: Activate slot 2
sudo nvme fw-commit -s 2 -a 2 /dev/nvme0
# → Success committing firmware action:2 slot:2
# Step 4: Reboot to apply
sudo reboot
```
## Next Steps
- [ ] Reboot system to activate GXA7801Q firmware
- [ ] Verify firmware version with `nvme list`
- [ ] Re-run identical benchmarks post-update
- [ ] Compare results in `docs/tech/nvme-benchmark-post-gxa7801q.md`
+1 -1
View File
@@ -14,7 +14,7 @@ last_updated: '2026-03-17'
## System Specifications
- **CPU**: AMD Ryzen 7 2700X (16 threads) @ 3.9GHz max
- **Memory**: 62 GiB DDR5-3200 MHz
- **Memory**: 64 GiB DDR4-2666 MT/s (4x 16 GiB, 2x Kingston + 2x Samsung)
- **Primary Disk**: 512 GB NVMe SSD (Samsung MZvl2512HCJQ)
- **Secondary Disk**: 500 GB SATA SSD (Samsung 840 EVO) -> `/home/mw/models`
- **OS**: Manjaro Linux (Kernel 6.12)