After a GEEKOM A7 mini PC unboxing and teardown, I tested the AMD Ryzen 9 7940HS mini PC in Windows 11 Pro, but I’ll now report my experience with the GEEKOM A7 running Ubuntu 22.04.4 to see how well the AMD Ryzen 9 7940HS system performs in Linux. I also had to install Ubuntu 24.04 to check the wireless module further, so I’ll report on that too.
The Ubuntu 22.04 review will include features testing, several benchmarks, storage, 2.5GbE, and WiFi 6 networking performance testing, a stress test to check thermal performance, as well as fan noise and power consumption measurements.
Ubuntu 22.04 installation
I resized the Windows 11 partition to get an unused 500GB partition to install Ubuntu 22.04 from a USB drive. But the first time, it did not work as I was asked to disable BitLocker disk encryption in Windows 11 just like I did for the GEEKOM AS 6 mini PC.
The installation went smoothly once we disable BitLocker. For this model, I did not have to go to the BIOS to change the boot priorities after installation, and GRUB showed up normally for me to select Ubuntu or Windows.
Ubuntu 22.04.4 system information on GEEKOM A7
Going to Settings->About confirms we have the latest Ubuntu 22.04.4 64-bit running on the GEEKOM A7 mini PC with 32GB RAM and an AMD Ryzen 9 7940HS 16-thread CPU with AMD Radeon 780M Graphics, and 2TB of storage.
We can get some more details from the command line:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
jaufranc@GEEKOM-A7-CNX:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04 DISTRIB_CODENAME=jammy DISTRIB_DESCRIPTION="Ubuntu 22.04.4 LTS" jaufranc@GEEKOM-A7-CNX:~$ uname -a Linux GEEKOM-A7-CNX 6.5.0-18-generic #18~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 7 11:40:03 UTC 2 x86_64 x86_64 x86_64 GNU/Linux jaufranc@GEEKOM-A7-CNX:~$ free -mh total used free shared buff/cache available Mem: 30Gi 918Mi 28Gi 13Mi 1.5Gi 29Gi Swap: 2.0Gi 0B 2.0Gi jaufranc@GEEKOM-A7-CNX:~$ df -mh Filesystem Size Used Avail Use% Mounted on tmpfs 3.1G 2.2M 3.1G 1% /run /dev/nvme0n1p5 492G 15G 452G 4% / tmpfs 16G 0 16G 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock efivarfs 128K 46K 78K 37% /sys/firmware/efi/efivars /dev/nvme0n1p1 96M 79M 18M 82% /boot/efi tmpfs 3.1G 76K 3.1G 1% /run/user/128 tmpfs 3.1G 68K 3.1G 1% /run/user/1000 |
The Inxi utility lists all the main components in the system:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
jaufranc@GEEKOM-A7-CNX:~$ sudo inxi -Fc0 System: Host: GEEKOM-A7-CNX Kernel: 6.5.0-18-generic x86_64 bits: 64 Console: pty pts/2 Distro: Ubuntu 22.04.4 LTS (Jammy Jellyfish) Machine: Type: Desktop System: GEEKOM product: A7 v: N/A serial: 5196306C23510433 Mobo: N/A model: A7 serial: NUCRB02A151NNNNTA3Z1501228 UEFI: American Megatrends LLC. v: 0.39 date: 01/03/2024 CPU: Info: 8-core model: AMD Ryzen 9 7940HS w/ Radeon 780M Graphics bits: 64 type: MT MCP cache: L2: 8 MiB Speed (MHz): avg: 618 min/max: 400/5263:5423:5583:6228:5743:6067:5903 cores: 1: 400 2: 400 3: 400 4: 400 5: 400 6: 400 7: 400 8: 3892 9: 400 10: 400 11: 400 12: 400 13: 400 14: 400 15: 400 16: 400 Graphics: Device-1: AMD Phoenix1 driver: amdgpu v: kernel Display: server: X.org v: 1.21.1.4 with: Xwayland v: 22.1.1 driver: gpu: amdgpu note: X driver n/a tty: 80x24 resolution: 1920x1080 Message: GL data unavailable in console for root. Audio: Device-1: AMD Rembrandt Radeon High Definition Audio driver: snd_hda_intel Device-2: AMD Family 17h HD Audio driver: snd_hda_intel Sound Server-1: ALSA v: k6.5.0-18-generic running: yes Sound Server-2: PulseAudio v: 15.99.1 running: yes Sound Server-3: PipeWire v: 0.3.48 running: yes Network: Device-1: Realtek RTL8125 2.5GbE driver: r8169 IF: enp1s0 state: up speed: 2500 Mbps duplex: full mac: 38:f7:cd:c7:03:b9 Device-2: MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter driver: mt7921e IF: wlp2s0 state: down mac: a8:41:f4:3f:ca:26 Bluetooth: Device-1: IMC Networks Wireless_Device type: USB driver: btusb Report: hciconfig ID: hci0 rfk-id: 0 state: down bt-service: enabled,running rfk-block: hardware: no software: no address: 00:00:00:00:00:00 Drives: Local Storage: total: 1.86 TiB used: 12.46 GiB (0.7%) ID-1: /dev/nvme0n1 vendor: Acer model: SSD N5000 2TB size: 1.86 TiB Partition: ID-1: / size: 491.08 GiB used: 12.39 GiB (2.5%) fs: ext4 dev: /dev/nvme0n1p5 ID-2: /boot/efi size: 96 MiB used: 78.1 MiB (81.3%) fs: vfat dev: /dev/nvme0n1p1 Swap: ID-1: swap-1 type: file size: 2 GiB used: 0 KiB (0.0%) file: /swapfile Sensors: System Temperatures: cpu: 20.0 C mobo: N/A gpu: amdgpu temp: 35.0 C Fan Speeds (RPM): N/A Info: Processes: 349 Uptime: 21m Memory: 30.63 GiB used: 1.19 GiB (3.9%) Init: systemd runlevel: 5 Shell: Sudo inxi: 3.3.13 |
The AMD Ryzen 9 7940HS 8-core/16-thread processor is advertised as having a 5.2 GHz maximum boost frequency, but Linux somehow reports up to 6228 MHz for a specific core. The RealTek RTL8125 2.5GbE controller is detected, as is the MediaTek MT7922 Wifi 6 network adapter. The reported CPU temperature (20°C) is bogus…
Ubuntu 22.04 benchmarks on GEEKOM A7 mini PC
We’ll start Ubuntu 22.04 benchmarks on the GEEKOM A7 mini PC with Thomas Kaiser’s sbc-bench.sh script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
jaufranc@GEEKOM-A7-CNX:~$ sudo ./sbc-bench.sh -r Starting to examine hardware/software for review purposes... sbc-bench v0.9.64 Installing needed tools: distro packages already installed, cpuminer. Done. Checking cpufreq OPP. Done. Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Throttling test: heating up the device, 5 more minutes to wait. Done. Checking cpufreq OPP again. Done (10 minutes elapsed). Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * No swapping * Background activity (%system) OK Full results uploaded to http://sprunge.us/a5dXSk # GEEKOM A7 / Ryzen 9 7940HS w/ Radeon 780M Graphics Tested with sbc-bench v0.9.64 on Mon, 19 Feb 2024 17:16:07 +0700. Full info: [http://sprunge.us/a5dXSk](http://sprunge.us/a5dXSk) ### General information: Information courtesy of cpufetch: Name: AMD Ryzen 9 7940HS w/ Radeon 780M Graphics Microarchitecture: Zen 4 Technology: 4nm Max Frequency: 5.263 GHz Cores: 8 cores (16 threads) AVX: AVX,AVX2,AVX512 FMA: FMA3 L1i Size: 32KB (256KB Total) L1d Size: 32KB (256KB Total) L2 Size: 1MB (8MB Total) L3 Size: 16MB Peak Performance: 1.35 TFLOP/s Ryzen 9 7940HS w/ Radeon 780M Graphics, Kernel: x86_64, Userland: amd64 CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 0 0 400 5263 Zen 4 1 0 1 400 5423 Zen 4 2 0 2 400 5583 Zen 4 3 0 3 400 6228 Zen 4 4 0 4 400 5743 Zen 4 5 0 5 400 6228 Zen 4 6 0 6 400 6067 Zen 4 7 0 7 400 5903 Zen 4 8 0 8 400 5263 Zen 4 9 0 9 400 5423 Zen 4 10 0 10 400 5583 Zen 4 11 0 11 400 6228 Zen 4 12 0 12 400 5743 Zen 4 13 0 13 400 6228 Zen 4 14 0 14 400 6067 Zen 4 15 0 15 400 5903 Zen 4 31367 KB available RAM ### Policies (performance vs. idle consumption): Status of performance related policies found below /sys: /sys/module/pcie_aspm/parameters/policy: default [performance] powersave powersupersave ### Clockspeeds (idle vs. heated up): Before at 43.9°C: cpu0: OPP: 5263, Measured: 5112 (-2.9%) After at 94.9°C: cpu0: OPP: 5263, Measured: 5062 (-3.8%) ### Performance baseline * memcpy: 20406.0 MB/s, memchr: 79815.9 MB/s, memset: 62491.7 MB/s * 16M latency: 29.64 20.66 29.88 20.56 29.07 31.98 37.15 42.66 * 128M latency: 98.51 97.78 98.48 98.10 98.54 98.99 104.4 108.0 * 7-zip MIPS (3 consecutive runs): 72496, 70697, 70126 (71110 avg), single-threaded: 6670 * `aes-256-cbc 1215689.33k 1388022.31k 1434895.10k 1452241.58k 1455647.40k 1455767.55k` * `aes-256-cbc 1203485.75k 1363794.73k 1413405.53k 1424417.45k 1428089.51k 1428559.19k` ### PCIe and storage devices: * Realtek RTL8125 2.5GbE: Speed 5GT/s (ok), Width x1 (ok), driver in use: r8169 * MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter: Speed 5GT/s (ok), Width x1 (ok), driver in use: mt7921e * O2 SD/MMC Card Reader: Speed 2.5GT/s (ok), Width x1 (ok), driver in use: sdhci-pci * AMD Device 15b9: Speed 16GT/s (ok), Width x16 (ok), driver in use: xhci_hcd * AMD Device 15ba: Speed 16GT/s (ok), Width x16 (ok), driver in use: xhci_hcd * AMD Device 15c0: Speed 16GT/s (ok), Width x16 (ok), driver in use: xhci_hcd * AMD Device 15c1: Speed 16GT/s (ok), Width x16 (ok), driver in use: xhci_hcd * AMD Pink Sardine USB4/Thunderbolt NHI controller #1: Speed 16GT/s (ok), Width x16 (ok), driver in use: thunderbolt * 1.9TB "Acer SSD N5000 2TB" SSD as /dev/nvme0: Speed 16GT/s (ok), Width x4 (ok), 0% worn out, drive temp: 44°C ### Challenging filesystems: The following partitions are NTFS: nvme0n1p3,nvme0n1p4 -> https://tinyurl.com/mv7wvzct ### Swap configuration: * /swapfile on /dev/nvme0n1p5: 2.0G (0K used) ### Software versions: * Ubuntu 22.04.4 LTS (jammy) * Compiler: /usr/bin/gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 / x86_64-linux-gnu * OpenSSL 3.0.2, built on 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022) ### Kernel info: * `/proc/cmdline: BOOT_IMAGE=/boot/vmlinuz-6.5.0-18-generic root=UUID=b5f529e1-64e9-4187-aa31-cb7ac089a04a ro quiet splash vt.handoff=7` * Vulnerability Spec rstack overflow: Mitigation; safe RET * Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl * Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization * Kernel 6.5.0-18-generic / CONFIG_HZ=250 Waiting for the device to cool down............................................. 36.9°C^C |
The maximum CPU temperature was 95°C during the cpuminer test. It also reached 95C during 7-zip multi-core but only temporarily. The 7-zip benchmark score was the highest we’ve seen in the mini PCs we’ve reviewed so far with 71,110 points on average. Note the first test was a little higher at 72,496, and then it stabilized lower at 70,697 and 70,126. But that’s normal on modern x86 as there’s a large performance boost in the first few seconds.
Let’s check out the power limits with Ryzenadj:
1 2 3 4 5 6 7 8 9 |
jaufranc@GEEKOM-A7-CNX:~/RyzenAdj/build$ sudo ./ryzenadj -i pcilib: sysfs_write: write failed: Operation not permitted pcilib: sysfs_write: write failed: Operation not permitted pcilib: sysfs_write: write failed: Operation not permitted pcilib: sysfs_write: write failed: Operation not permitted pcilib: sysfs_write: write failed: Operation not permitted PCI Bus is not writeable, check secure boot Unable to get MP1 SMU Obj Unable to init ryzenadj |
Oops… Not quite working as expected, but after I went to the BIOS and disabled secure boot, I could get the data:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
jaufranc@GEEKOM-A7-CNX:~/RyzenAdj/build$ sudo ./ryzenadj -i CPU Family: Phoenix Point SMU BIOS Interface Version: 14 Version: v0.14.0 PM Table Version: 4c0008 | Name | Value | Parameter | |---------------------|-----------|--------------------| | STAPM LIMIT | 35.000 | stapm-limit | | STAPM VALUE | 2.372 | | | PPT LIMIT FAST | 60.000 | fast-limit | | PPT VALUE FAST | 6.284 | | | PPT LIMIT SLOW | 45.000 | slow-limit | | PPT VALUE SLOW | 2.622 | | | StapmTimeConst | nan | stapm-time | | SlowPPTTimeConst | nan | slow-time | | PPT LIMIT APU | nan | apu-slow-limit | | PPT VALUE APU | nan | | | TDC LIMIT VDD | nan | vrm-current | | TDC VALUE VDD | nan | | | TDC LIMIT SOC | nan | vrmsoc-current | | TDC VALUE SOC | nan | | | EDC LIMIT VDD | nan | vrmmax-current | | EDC VALUE VDD | nan | | | EDC LIMIT SOC | nan | vrmsocmax-current | | EDC VALUE SOC | nan | | | THM LIMIT CORE | nan | tctl-temp | | THM VALUE CORE | nan | | | STT LIMIT APU | nan | apu-skin-temp | | STT VALUE APU | nan | | | STT LIMIT dGPU | nan | dgpu-skin-temp | | STT VALUE dGPU | nan | | | CCLK Boost SETPOINT | nan | power-saving / | | CCLK BUSY VALUE | nan | max-performance | |
All main power limits are as follows:
- Sustained Power Limit (STAPM LIMIT) – 35 Watts
- Actual Power Limit (PPT LIMIT FAST) – 60 watts
- Average Power Limit (PPT LIMIT SLOW) – 45 watts
I’ll now run Geekbench 6.2.2 to evaluate the single and multi-core performance of the AMD Ryzen 9 7940HS in Linux.
The single-core score is 2,535 points, and the multi-core one is 12,914 points. Check out the results on the Geekbench website for the full details.
Let’s start GPU testing with Unigine Heaven Benchmark 4.0 where the GEEKOM A7 mini PC achieved 80.6 fps on average and a score of 2,032 points at the usual 1920×1080 resolution.
Next up is YouTube 4K and 8K video playback in Firefox.
I skipped the 30 FPS test and tried to stream a 4K 60 FPS video. The video was smooth, and no big problem here with 81 frames dropped out of 15,013 when I played the video for a few minutes.
Switching to an 8K 60 FPS in Firefox looked OK for the first 30 seconds or so, albeit a frame was dropped each second.
But the video became unwatchable after a while with 15 to 20 frames dropped per second, and around the 5-minute mark, we had 11,548 frames dropped out of 27,264.
I decided to switch to Chrome and try an 8K 30 FPS video. It played just fine with only one frame dropped after watching the video for a little over 5 minutes.
An 8K 60 FPS video played relatively smoothly in the Google browser for the first two minutes, although one or two frames were dropped per second, but after that, the video became unwatchable with around 20 frames dropped by second and the loading icon showing frequently despite having no issues with the buffer health.
Since we can play the video fine for a while, cooling looks to be the issue here, and an ambient temperature of 28°C may be too much to ask in order to stream an 8K YouTube video at 60 FPS smoothly. It might work better in cooler climates/rooms. I also took the occasion to test the audio with HDMI audio and the 3.5mm audio jack, both of which work fine, but Bluetooth did not work at all. More on that later.
Speedometer 2.0 web-based benchmark was loaded in Firefox to evaluate web browsing performance.
The score was 249 runs per minute and matches the score of several other systems.
The same benchmark was faster in Google Chrome at 353 runs per minute.
GEEKOM A7’s Ubuntu 22.04 performance compared to other mini PCs
Let’s compare some of Ubuntu 22.04 benchmark results for the GEEKOM A7 (AMD Ryzen 9 7940HS) mini PC against other high-end mini PCs including the Chatreey AM08 Pro based on the same processor, the GEEKOM Mini IT13 (13th gen Core i9-13900H Raptor Lake), the Khadas Mind Premium (13th Gen Core i7-1360P Raptor Lake), and the GEEKOM AS 6 (AMD Ryzen 9 6900HX) in similar environmental conditions (28-30°C room temperature).
Here’s a summary of the main features of the five mini PCs first.
GEEKOM A7 | Chatreey AM08 Pro | GEEKOM Mini IT13 | Khadas Mind Premium | GEEKOM AS 6 | |
---|---|---|---|---|---|
SoC | AMD Ryzen 9 7840HS | AMD Ryzen 9 7840HS | Intel Core i9-13900H | Intel Core i7-1360P | AMD Ryzen 9 6900HX |
CPU | 8-core/16-thread processor up to 4.0GHz | 8-core/16-thread processor up to 4.0GHz | 14-core/20-thread up to 5.4 GHz | 12-core/16-core up to 5.0 GHz | 8-core/16-thread up to 4.9 GHz |
GPU | AMD Radeon 780M Graphics | AMD Radeon 780M Graphics | 96 EU Intel Iris Xe Graphics | 96 EU Intel Iris Xe Graphics | AMD Radeon Graphics 680M |
Memory | 32GB DDR5-5600 | 16GB DDR5-4800 | 32GB DDR4-3200 | 32GB LPDDR5-5200 | 32GB DDR5-4800 |
Storage | 2TB NVMe SSD | 1TB NVMe SSD* | 2TB NVMe SSD | 1TB NVMe SSD | 1TB NVMe SSD |
Default OS | Windows 11 Pro | Windows 11 Pro | Windows 11 Pro | Windows 11 Home | Windows 11 Pro |
* The Chatreey AM08 Pro mini PC shipped with a 512GB (PCIe Gen 3) SSD, but was replaced by a 1TB Samsung 990 Pro NVMe (PCIe Gen4 x4) SSD for review.
And now the benchmark results
GEEKOM A7 | Chatreey AM08 Pro | GEEKOM Mini IT13 | Khadas Mind Premium | GEEKOM AS 6 | |
---|---|---|---|---|---|
sbc-bench.sh | |||||
- memcpy | 20,406.0 | 19,457.6 | 24,014.4 (P-core) | 25,389.5 MB/s (P-core) | 19,131.7 MB/s |
- memset | 62491.7 | 61,783.9 | 26,647.9 (P-Core) | 24,731.8MB/s (P-core) | 16,781.4 MB/s |
- 7-zip (average) | 71,110 | 67,930 | 56,540 | 44,430 | 54,592 |
- 7-zip (top result) | 72,496 | 68,211 | 60,981 | 50,396 | 56,251 |
- OpenSSL AES-256 16K | 1428559.19k | 1,442,376.36k | 1,844,401.49k (P-Core) | 1,771,334.31k (P-Core) | 1,249,203.54k |
Geekbench 6 Single | 2,535 | 2,723 | 2,745 | 2093 | 1,992 |
Geekbench 6 Multi | 12,914 | 12,108 | 11,974 | 8,891 | 9,535 |
Unigine Heaven score | 2,032 | - | 1,333 | 1,349 | 1,553 |
Speedometer (Firefox) | 249 | - | 273 | 242 | 202 |
The GEEKOM A7 is the fastest mini PC we’ve reviewed when it comes to multi-threaded and 3D graphics performance thanks to the AMD Ryzen 9 7940HS processor, but the Intel Core i9-13900H found in the GEEKOM Mini IT13 still delivers higher single-core performance. The GEEKOM A7 also looks slightly faster than the Chatreey AM08 Pro with the same processor.
Storage and USB ports
We tested the performance of the 2TB NVMe SSD that ships with the mini PC using iozone3:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
jaufranc@GEEKOM-A7-CNX:~$ sudo iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.489 $ Compiled for 64 bit mode. Build: linux-AMD64 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 228520 313164 362531 362476 70556 299625 1024000 16 759034 984855 1020207 1027915 226659 904731 1024000 512 4275165 4575637 4239008 4277805 2610905 3731749 1024000 1024 4502086 4659797 4172829 4212066 3192667 4531431 1024000 16384 4451567 4073122 3872857 3991232 3879215 4039433 |
That would be about 3.87GB/s sequential read speeds and 4.45 GB/s sequential write speeds in Linux. This compares to 4906.30 MB/s and 4710.80 MB/s sequential read and write speeds in Windows 11 Pro using CrystalDiskMark.
An EXT-4 partition from ORICO M234C3-U4 “USB4” M.2 NVMe SSD enclosure was used to check the speed of each USB port along with lsusb and iozone3 command line utilities. Here’s the output from the front left USB port:
1 2 3 4 5 6 7 8 9 |
jaufranc@GEEKOM-A7-CNX:~$ lsusb -t | grep uas |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=uas, 10000M jaufranc@GEEKOM-A7-CNX:~$ cd /media/jaufranc/EXT4-REVIEW/ jaufranc@GEEKOM-A7-CNX:/media/jaufranc/EXT4-REVIEW$ sudo iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 16384 923954 911696 788468 788679 iozone test complete. |
The 40 Gbps USB4 port on the left side of the rear panel requires us to use boltctl utility instead of lsusb since the drive is detected as an NVMe drive:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
jaufranc@GEEKOM-A7-CNX:/media/nvme1n1p1$ boltctl ● Intel USB4.0 SSD ├─ type: peripheral ├─ name: USB4.0 SSD ├─ vendor: Intel ├─ uuid: ba010000-0052-541e-03d5-47dc2cd4b008 ├─ generation: Thunderbolt 3 ├─ status: authorized │ ├─ domain: 51d13804-903f-a351-ffff-ffffffffffff │ ├─ rx speed: 40 Gb/s = 2 lanes * 20 Gb/s │ ├─ tx speed: 40 Gb/s = 2 lanes * 20 Gb/s │ └─ authflags: none Segmentation fault (core dumped) jaufranc@GEEKOM-A7-CNX:/media/nvme1n1p1$ sudo iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 16384 2389202 2297096 2346604 2367293 iozone test complete. |
Note that I had to manually authorize the drive in Ubuntu 22.04 desktop before being able to access it. It’s the first time I have to do this…
Results for the USB ports on GEEKOM A7’s front panel (left to right) in Ubuntu 22.04:
- USB-A #1 – USB 3.2 – 10 Gbps – 923.9 MB/s write speed, 788.4 MB/s read speed
- USB-A #2 – USB 3.2 – 10 Gbps – 923.6 MB/s write speed, 788.14 MB/s read speed
Same tests for the rear panel (left to right):
- USB-C #1 – Thunderbolt 3 – 2,346 MB/s read speed
- USB-A #1 (Top) – USB 3.2 – 10 Gbps – 944 MB/s write speed, 840.3 MB/s read speed
- USB-A #2 (Bottom) – USB 2.0 – 480 Mbps – 30.87MB/s write speed, 41.99 MB/s read speed, (Note: tested with another USB hard drive since the ORICO enclosure is not compatible with USB 2.0)
- USB-C #2 – USB 3.2 – 10 Gbps – 944.6 MB/s write speed, 827.9 MB/s read speed
All USB ports are performing as advertised, but – just like in Windows 11 – the front USB 3.2 ports are somewhat slower because they are behind a Genesys Logic USB 3.2 hub chip.
Networking (2.5GbE and WiFi 6) and Bluetooth
I tested 2.5GbE network performance with iperf3 and UP Xtreme i11 Edge mini PC on the other side:
- Upload
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
jaufranc@GEEKOM-A7-CNX:~/linux$ iperf3 -t 60 -c 192.168.31.12 -i 10 Connecting to host 192.168.31.12, port 5201 [ 5] local 192.168.31.128 port 60584 connected to 192.168.31.12 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 2.74 GBytes 2.36 Gbits/sec 0 666 KBytes [ 5] 10.00-20.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.47 MBytes [ 5] 20.00-30.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.47 MBytes [ 5] 30.00-40.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.47 MBytes [ 5] 40.00-50.00 sec 2.74 GBytes 2.35 Gbits/sec 0 2.19 MBytes [ 5] 50.00-60.00 sec 2.74 GBytes 2.35 Gbits/sec 0 2.19 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 16.4 GBytes 2.35 Gbits/sec 0 sender [ 5] 0.00-60.04 sec 16.4 GBytes 2.35 Gbits/sec receiver iperf Done. |
- Download
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jaufranc@GEEKOM-A7-CNX:~/linux$ iperf3 -t 60 -c 192.168.31.12 -i 10 -R Connecting to host 192.168.31.12, port 5201 Reverse mode, remote host 192.168.31.12 is sending [ 5] local 192.168.31.128 port 35372 connected to 192.168.31.12 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 10.00-20.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 20.00-30.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 30.00-40.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 40.00-50.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 50.00-60.00 sec 2.74 GBytes 2.35 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.04 sec 16.4 GBytes 2.35 Gbits/sec 0 sender [ 5] 0.00-60.00 sec 16.4 GBytes 2.35 Gbits/sec receiver iperf Done. |
- Full duplex (bidirectional)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
jaufranc@GEEKOM-A7-CNX:~/linux$ iperf3 -t 60 -c 192.168.31.12 -i 10 --bidir Connecting to host 192.168.31.12, port 5201 [ 5] local 192.168.31.128 port 40848 connected to 192.168.31.12 port 5201 [ 7] local 192.168.31.128 port 40852 connected to 192.168.31.12 port 5201 [ ID][Role] Interval Transfer Bitrate Retr Cwnd [ 5][TX-C] 0.00-10.00 sec 2.74 GBytes 2.35 Gbits/sec 0 908 KBytes [ 7][RX-C] 0.00-10.00 sec 2.73 GBytes 2.35 Gbits/sec [ 5][TX-C] 10.00-20.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.32 MBytes [ 7][RX-C] 10.00-20.00 sec 2.73 GBytes 2.35 Gbits/sec [ 5][TX-C] 20.00-30.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.98 MBytes [ 7][RX-C] 20.00-30.00 sec 2.73 GBytes 2.35 Gbits/sec [ 5][TX-C] 30.00-40.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.98 MBytes [ 7][RX-C] 30.00-40.00 sec 2.73 GBytes 2.35 Gbits/sec [ 5][TX-C] 40.00-50.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.98 MBytes [ 7][RX-C] 40.00-50.00 sec 2.73 GBytes 2.35 Gbits/sec [ 5][TX-C] 50.00-60.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.98 MBytes [ 7][RX-C] 50.00-60.00 sec 2.73 GBytes 2.35 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID][Role] Interval Transfer Bitrate Retr [ 5][TX-C] 0.00-60.00 sec 16.4 GBytes 2.35 Gbits/sec 0 sender [ 5][TX-C] 0.00-60.04 sec 16.4 GBytes 2.35 Gbits/sec receiver [ 7][RX-C] 0.00-60.00 sec 16.4 GBytes 2.35 Gbits/sec 0 sender [ 7][RX-C] 0.00-60.04 sec 16.4 GBytes 2.35 Gbits/sec receiver iperf Done. |
Perfect results, nothing else to say here.
Now let’s try WiFi 6 in Ubuntu 22.04 while connected to Xiaomi Mi AX6000 router:
- Upload
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
jaufranc@GEEKOM-A7-CNX:~/Desktop$ iperf3 -t 60 -c 192.168.31.12 -i 10 Connecting to host 192.168.31.12, port 5201 [ 5] local 192.168.31.9 port 52228 connected to 192.168.31.12 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 1.09 GBytes 936 Mbits/sec 69 1.55 MBytes [ 5] 10.00-20.00 sec 1.09 GBytes 941 Mbits/sec 2 1.72 MBytes [ 5] 20.00-30.00 sec 1.09 GBytes 940 Mbits/sec 1 1.69 MBytes [ 5] 30.00-40.00 sec 1.09 GBytes 940 Mbits/sec 11 1.34 MBytes [ 5] 40.00-50.00 sec 1.09 GBytes 938 Mbits/sec 76 1.47 MBytes [ 5] 50.00-60.00 sec 1.09 GBytes 941 Mbits/sec 2 1.56 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 6.56 GBytes 939 Mbits/sec 161 sender [ 5] 0.00-60.05 sec 6.56 GBytes 938 Mbits/sec receiver iperf Done. |
- Download
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jaufranc@GEEKOM-A7-CNX:~/Desktop$ iperf3 -t 60 -c 192.168.31.12 -i 10 -R Connecting to host 192.168.31.12, port 5201 Reverse mode, remote host 192.168.31.12 is sending [ 5] local 192.168.31.9 port 35100 connected to 192.168.31.12 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 1.08 GBytes 932 Mbits/sec [ 5] 10.00-20.00 sec 1.10 GBytes 942 Mbits/sec [ 5] 20.00-30.00 sec 1.10 GBytes 942 Mbits/sec [ 5] 30.00-40.00 sec 1.10 GBytes 942 Mbits/sec [ 5] 40.00-50.00 sec 1.10 GBytes 941 Mbits/sec [ 5] 50.00-60.00 sec 1.10 GBytes 941 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.05 sec 6.57 GBytes 940 Mbits/sec 1 sender [ 5] 0.00-60.00 sec 6.56 GBytes 940 Mbits/sec receiver iperf Done. |
The results look good here, but it does not tell the whole story. I had trouble reliably accessing some websites in Firefox or Chrome, and connecting over SSH was sluggish and unstable too. What that means is that it may take a lot of time to log in successfully (sometimes it fails), and once I’m in the terminal, there’s a massive lag to input text from the keyboard. This only happens with WiFi and I did not experience the same problem with Ethernet.
As noted above, I was unable to use a Bluetooth audio headset. That’s because Bluetooth is not working at all.
We can also see an error in the kernel log indicating there may be an issue with the firmware:
1 2 3 4 5 6 7 8 9 10 11 12 |
jaufranc@GEEKOM-A7-CNX:~$ dmesg | grep -i bluetooth [ 6.513119] Bluetooth: Core ver 2.22 [ 6.513168] NET: Registered PF_BLUETOOTH protocol family [ 6.513171] Bluetooth: HCI device and connection manager initialized [ 6.513183] Bluetooth: HCI socket layer initialized [ 6.513188] Bluetooth: L2CAP socket layer initialized [ 6.513196] Bluetooth: SCO socket layer initialized [ 7.503331] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 7.503334] Bluetooth: BNEP filters: protocol multicast [ 7.503337] Bluetooth: BNEP socket layer initialized [ 8.170144] Modules linked in: bnep intel_rapl_msr intel_rapl_common snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_codec_hdmi snd_hda_intel edac_mce_amd snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec amdgpu(+) kvm_amd snd_hda_core binfmt_misc snd_hwdep mt7921e snd_pcm kvm mt7921_common amdxcp mt76_connac_lib btusb iommu_v2 drm_buddy snd_seq_midi btrtl irqbypass snd_seq_midi_event mt76 btbcm gpu_sched crct10dif_pclmul btintel drm_suballoc_helper polyval_clmulni btmtk polyval_generic nls_iso8859_1 snd_rawmidi drm_ttm_helper ghash_clmulni_intel mac80211 bluetooth aesni_intel ttm snd_seq joydev drm_display_helper crypto_simd snd_seq_device cryptd ecdh_generic rapl ecc cec snd_timer input_leds wmi_bmof rc_core cfg80211 k10temp snd drm_kms_helper i2c_algo_bit soundcore ccp libarc4 mac_hid amd_pmc sch_fq_codel msr parport_pc ppdev lp drm parport efi_pstore ip_tables x_tables autofs4 hid_logitech_hidpp hid_logitech_dj hid_generic usbhid crc32_pclmul nvme sdhci_pci amd_sfh thunderbolt i2c_piix4 nvme_core [ 8.576349] Bluetooth: hci0: Opcode 0x c03 failed: -110 |
I tried various methods found on the Internet, but nothing worked. I thought I might update the kernel to Linux 6.7 from Linux 6.5 using the official Ubuntu PPA, but this did not work due to a libc6 version mismatch. I could have tried a third-party Linux kernel, but since the Ubuntu 24.04 release is only two months away, I decided to use a daily build of the upcoming operating system to find out whether it would fix anything.
MediaTek MT7922 wireless module tested in Ubuntu 24.04
I prepared a USB flash drive with noble-desktop-amd64.iso (February 22, 2024), went back to Windows to resize the Windows partition and create a spare 224 GB partition, and started installing Ubuntu 24.04.
No Wi-Fi devices were detected in the installation wizard, so I used Ethernet.
I ticked “install third-party software for graphics and WiFi” and “Download and install support for additional…” in the “other options” to make sure any proprietary drivers or firmware that may be needed are installed too.
Ubuntu 24.04 was installed in a triple boot configuration with Windows 11 Pro and Ubuntu 22.04. Apart from the missing wireless support, the installation went smoothly and I could complete the installation without any issues.
But even after a reboot neither WiFi nor Bluetooth worked:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[ 8.768904] [drm] DSC precompute is not needed. [ 8.772340] Bluetooth: hci0: Opcode 0x0c03 failed: -110 [ 8.815504] loop9: detected capacity change from 0 to 8 [ 9.388998] pipewire[1382]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL set [ 10.033265] rfkill: input handler disabled [ 11.797172] r8169 0000:01:00.0 enp1s0: Link is Up - 2.5Gbps/Full - flow control rx/tx [ 14.549888] kauditd_printk_skb: 119 callbacks suppressed [ 14.549892] audit: type=1400 audit(1708676133.556:131): apparmor="DENIED" operation="open" class="file" profile="/usr/sbin/cups-browsed" name="/etc/gnutls/config" pid=2014 comm="cups-browsed" requested_mask="r" denied_mask="r" fsuid=116 ouid=0 [ 18.687976] systemd-journald[373]: /var/log/journal/52deed7007544029b1a4c7adc59a553d/user-1000.journal: Journal file uses a different sequence number ID, rotating. [ 18.727680] audit: type=1400 audit(1708676137.732:132): apparmor="DENIED" operation="capable" class="cap" profile="/snap/snapd/20671/usr/lib/snapd/snap-confine" pid=2067 comm="snap-confine" capability=12 capname="net_admin" [ 18.727685] audit: type=1400 audit(1708676137.732:133): apparmor="DENIED" operation="capable" class="cap" profile="/snap/snapd/20671/usr/lib/snapd/snap-confine" pid=2067 comm="snap-confine" capability=38 capname="perfmon" [ 146.172783] mt7921e 0000:02:00.0: firmware own failed [ 146.172909] mt7921e: probe of 0000:02:00.0 failed with error -5 [ 252.864820] mt7921e 0000:02:00.0: firmware own failed [ 252.864949] mt7921e: probe of 0000:02:00.0 failed with error -5 |
I read somewhere that I should turn my computer off and on again… That sounded silly, but it ended up being a smart move!
1 2 3 4 5 6 7 |
jaufranc@GEEKOM-A7-CNX:~$ dmesg | grep mt7921e [ 6.561790] mt7921e 0000:02:00.0: enabling device (0000 -> 0002) [ 6.566383] mt7921e 0000:02:00.0: ASIC revision: 79220010 [ 6.654119] mt7921e 0000:02:00.0: HW/SW Version: 0x8a108a10, Build Time: 20231120183400a [ 7.024331] mt7921e 0000:02:00.0: WM Firmware Version: ____000000, Build Time: 20231120183441 [ 8.116397] mt7921e 0000:02:00.0 wlp2s0: renamed from wlan0 [ 8.317735] Modules linked in: qrtr bnep binfmt_misc intel_rapl_msr intel_rapl_common nls_iso8859_1 snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_codec_hdmi edac_mce_amd snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi amdgpu(+) kvm_amd snd_hda_codec snd_hda_core snd_hwdep mt7921e kvm mt7921_common snd_pcm mt792x_lib btusb irqbypass mt76_connac_lib drm_exec btrtl amdxcp crct10dif_pclmul btintel polyval_clmulni drm_buddy snd_seq_midi polyval_generic mt76 btbcm gpu_sched snd_seq_midi_event ghash_clmulni_intel btmtk sha256_ssse3 drm_suballoc_helper bluetooth snd_rawmidi sha1_ssse3 drm_ttm_helper aesni_intel ttm ecdh_generic crypto_simd mac80211 snd_seq ecc drm_display_helper cryptd snd_seq_device cec snd_timer rapl wmi_bmof rc_core cfg80211 snd drm_kms_helper libarc4 k10temp joydev i2c_algo_bit i2c_piix4 soundcore ccp input_leds amd_pmc mac_hid msr parport_pc ppdev lp parport drm efi_pstore nfnetlink dmi_sysfs ip_tables x_tables autofs4 hid_logitech_hidpp hid_logitech_dj hid_generic usbhid nvme |
Sadly Bluetooth still not working:
1 2 3 4 5 6 7 8 9 10 11 12 |
jaufranc@GEEKOM-A7-CNX:~$ dmesg | grep -i bluetooth [ 6.548661] Bluetooth: Core ver 2.22 [ 6.548683] NET: Registered PF_BLUETOOTH protocol family [ 6.548684] Bluetooth: HCI device and connection manager initialized [ 6.548688] Bluetooth: HCI socket layer initialized [ 6.548690] Bluetooth: L2CAP socket layer initialized [ 6.548693] Bluetooth: SCO socket layer initialized [ 8.157259] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 8.157263] Bluetooth: BNEP filters: protocol multicast [ 8.157267] Bluetooth: BNEP socket layer initialized [ 8.317735] Modules linked in: qrtr bnep binfmt_misc intel_rapl_msr intel_rapl_common nls_iso8859_1 snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_codec_hdmi edac_mce_amd snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi amdgpu(+) kvm_amd snd_hda_codec snd_hda_core snd_hwdep mt7921e kvm mt7921_common snd_pcm mt792x_lib btusb irqbypass mt76_connac_lib drm_exec btrtl amdxcp crct10dif_pclmul btintel polyval_clmulni drm_buddy snd_seq_midi polyval_generic mt76 btbcm gpu_sched snd_seq_midi_event ghash_clmulni_intel btmtk sha256_ssse3 drm_suballoc_helper bluetooth snd_rawmidi sha1_ssse3 drm_ttm_helper aesni_intel ttm ecdh_generic crypto_simd mac80211 snd_seq ecc drm_display_helper cryptd snd_seq_device cec snd_timer rapl wmi_bmof rc_core cfg80211 snd drm_kms_helper libarc4 k10temp joydev i2c_algo_bit i2c_piix4 soundcore ccp input_leds amd_pmc mac_hid msr parport_pc ppdev lp parport drm efi_pstore nfnetlink dmi_sysfs ip_tables x_tables autofs4 hid_logitech_hidpp hid_logitech_dj hid_generic usbhid nvme [ 8.580339] Bluetooth: hci0: Opcode 0x0c03 failed: -110 |
Ubuntu 24.04 will ship with Linux 6.8 at release, but my nightly build was based on Linux 6.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
jaufranc@GEEKOM-A7-CNX:~$ sudo inxi -Fc0 System: Host: GEEKOM-A7-CNX Kernel: 6.6.0-14-generic arch: x86_64 bits: 64 Console: pty pts/1 Distro: Ubuntu 24.04 (Noble Numbat) Machine: Type: Desktop System: GEEKOM product: A7 v: N/A serial: 5196306C23510433 Mobo: N/A model: A7 serial: NUCRB02A151NNNNTA3Z1501228 UEFI: American Megatrends LLC. v: 0.39 date: 01/03/2024 CPU: Info: 8-core model: AMD Ryzen 9 7940HS w/ Radeon 780M Graphics bits: 64 type: MT MCP cache: L2: 8 MiB Speed (MHz): avg: 533 min/max: 400/5263:5423:5583:6228:5743:6067:5903 cores: 1: 400 2: 400 3: 400 4: 400 5: 400 6: 1586 7: 400 8: 400 9: 400 10: 400 11: 1356 12: 400 13: 400 14: 400 15: 400 16: 400 Graphics: Device-1: AMD Phoenix1 driver: amdgpu v: kernel Display: server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.4 driver: gpu: amdgpu tty: 113x24 resolution: 1920x1080 API: EGL v: 1.5 drivers: radeonsi,swrast platforms: gbm,surfaceless,device API: OpenGL v: 4.6 compat-v: 4.5 vendor: mesa v: 24.0.1-1ubuntu1 note: console (EGL sourced) renderer: AMD Radeon Graphics (radeonsi gfx1103_r1 LLVM 17.0.6 DRM 3.54 6.6.0-14-generic), llvmpipe (LLVM 17.0.6 256 bits) Audio: Device-1: AMD Rembrandt Radeon High Definition Audio driver: snd_hda_intel Device-2: AMD Family 17h/19h HD Audio driver: snd_hda_intel API: ALSA v: k6.6.0-14-generic status: kernel-api Network: Device-1: Realtek RTL8125 2.5GbE driver: r8169 IF: enp1s0 state: up speed: 2500 Mbps duplex: full mac: 38:f7:cd:c7:03:b9 Device-2: MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter driver: mt7921e IF: wlp2s0 state: down mac: a8:41:f4:3f:ca:26 Bluetooth: Device-1: IMC Networks Wireless_Device driver: btusb type: USB Report: hciconfig ID: hci0 rfk-id: 0 state: down bt-service: enabled,running rfk-block: hardware: no software: no address: 00:00:00:00:00:00 Drives: Local Storage: total: 1.86 TiB used: 15.07 GiB (0.8%) ID-1: /dev/nvme0n1 vendor: Acer model: SSD N5000 2TB size: 1.86 TiB Partition: ID-1: / size: 239.25 GiB used: 14.99 GiB (6.3%) fs: ext4 dev: /dev/nvme0n1p6 ID-2: /boot/efi size: 96 MiB used: 78.1 MiB (81.4%) fs: vfat dev: /dev/nvme0n1p1 Swap: ID-1: swap-1 type: file size: 8 GiB used: 0 KiB (0.0%) file: /swap.img Sensors: System Temperatures: cpu: 39.4 C mobo: 36.0 C gpu: amdgpu temp: 36.0 C Fan Speeds (rpm): N/A Info: Memory: total: 32 GiB note: est. available: 30.64 GiB used: 1.13 GiB (3.7%) Processes: 351 Uptime: 2m Init: systemd target: graphical (5) Shell: Sudo inxi: 3.3.33 |
Next, I disconnected the Ethernet cable and connected the mini PC to my router’s 5 GHz SSID. I could browse the web and access the mini PC over SSH without any issues. So WiFi looks to be more stable in Ubuntu 24.04 once/if it works. I was unable to reproduce the bug with “firmware own failed” subsequently with a few reboots and power cycles, so it might have been a one-off problem.
I tested WiFi 6 with iperf3 again to see if the performance had changed:
- Upload
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jaufranc@GEEKOM-A7-CNX:~$ iperf3 -t 60 -c 192.168.31.12 -i 10 Connecting to host 192.168.31.12, port 5201 [ 5] local 192.168.31.9 port 49100 connected to 192.168.31.12 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.01 sec 1.10 GBytes 940 Mbits/sec 65 1.56 MBytes [ 5] 10.01-20.01 sec 1.10 GBytes 942 Mbits/sec 1 1.73 MBytes [ 5] 20.01-30.01 sec 1.10 GBytes 941 Mbits/sec 1 1.71 MBytes [ 5] 30.01-40.01 sec 1.10 GBytes 941 Mbits/sec 110 1.73 MBytes [ 5] 40.01-50.01 sec 1.09 GBytes 940 Mbits/sec 3 1.36 MBytes [ 5] 50.01-60.00 sec 1.09 GBytes 941 Mbits/sec 1 1.48 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 6.57 GBytes 941 Mbits/sec 181 sender [ 5] 0.00-60.03 sec 6.57 GBytes 940 Mbits/sec receiver iperf Done. |
- Download
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jaufranc@GEEKOM-A7-CNX:~$ iperf3 -t 60 -c 192.168.31.12 -i 10 -R Connecting to host 192.168.31.12, port 5201 Reverse mode, remote host 192.168.31.12 is sending [ 5] local 192.168.31.9 port 35062 connected to 192.168.31.12 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.01 sec 1.09 GBytes 936 Mbits/sec [ 5] 10.01-20.01 sec 1.10 GBytes 941 Mbits/sec [ 5] 20.01-30.01 sec 1.10 GBytes 941 Mbits/sec [ 5] 30.01-40.01 sec 1.10 GBytes 941 Mbits/sec [ 5] 40.01-50.01 sec 1.10 GBytes 941 Mbits/sec [ 5] 50.01-60.01 sec 1.10 GBytes 941 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.02 sec 6.57 GBytes 940 Mbits/sec 0 sender [ 5] 0.00-60.01 sec 6.57 GBytes 940 Mbits/sec receiver iperf Done. |
940 Mbps in either direction is pretty good, actually similar to a gigabit Ethernet connection, and about the same as in Ubuntu 22.04. Using WiFi 6 in Ubuntu 24.04 looks more stable, so I’m hopeful that part will work fine once the stable Ubuntu 24.04 image is released.
Bluetooth is still not working, so I updated the system to Linux 6.7 using the files provided by Canonical, but it did not help:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
jaufranc@GEEKOM-A7-CNX:~$ dmesg | grep -i bluetooth [ 6.535176] Bluetooth: Core ver 2.22 [ 6.535194] NET: Registered PF_BLUETOOTH protocol family [ 6.535196] Bluetooth: HCI device and connection manager initialized [ 6.535200] Bluetooth: HCI socket layer initialized [ 6.535201] Bluetooth: L2CAP socket layer initialized [ 6.535205] Bluetooth: SCO socket layer initialized [ 8.593940] Modules linked in: binfmt_misc intel_rapl_msr nls_iso8859_1 intel_rapl_common snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_codec_hdmi mt7921e snd_hda_intel edac_mce_amd mt7921_common snd_intel_dspcfg snd_intel_sdw_acpi mt792x_lib amdgpu(+) btusb snd_hda_codec mt76_connac_lib btrtl kvm_amd btintel mt76 snd_hda_core btbcm snd_hwdep btmtk amdxcp kvm snd_pcm mac80211 drm_exec irqbypass gpu_sched snd_seq_midi crct10dif_pclmul snd_seq_midi_event drm_buddy polyval_clmulni bluetooth drm_suballoc_helper polyval_generic drm_ttm_helper ghash_clmulni_intel snd_rawmidi sha512_ssse3 ttm sha256_ssse3 sha1_ssse3 aesni_intel snd_seq crypto_simd drm_display_helper cryptd ecdh_generic cec snd_seq_device ecc rapl wmi_bmof rc_core cfg80211 snd_timer joydev drm_kms_helper k10temp snd libarc4 i2c_piix4 ccp input_leds soundcore i2c_algo_bit amd_pmc mac_hid msr parport_pc ppdev lp drm parport efi_pstore nfnetlink dmi_sysfs ip_tables x_tables autofs4 hid_logitech_hidpp hid_logitech_dj hid_generic usbhid nvme [ 8.704365] Bluetooth: hci0: Opcode 0x0c03 failed: -110 [ 9.863453] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 9.863457] Bluetooth: BNEP filters: protocol multicast [ 9.863461] Bluetooth: BNEP socket layer initialized jaufranc@GEEKOM-A7-CNX:~$ uname -a Linux GEEKOM-A7-CNX 6.7.0-060700-generic #202401072033 SMP PREEMPT_DYNAMIC Sun Jan 7 20:43:59 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux |
GEEKOM A7 Stress test and CPU temperature in Ubuntu 22.04.
Back to Ubuntu 22.04, I ran a stress test on the 16 threads of the AMD Ryzen 9 7940HS processor to evaluate thermal performance by monitoring the CPU temperature with psensor and the CPU frequency with the sbc-bench.sh script.
The CPU temperature jumps from 36°C at idle to around 95°C, before going down a bit, and then up again and stabilizes at 95°C for about 10 minutes, before dropping to 89°C after that… Throttling clearly occurs here but it’s somehow controlled. At the start, the CPU frequency jumps to 4.5 GHz for a few seconds, then around 4.0 GHz, and during the longer 95°C period it ranges between 3801 MHz and 4116 MHz, but mostly in the 38xx MHz range. After around 12 minutes, the CPU frequency drops to 3743 MHz and this small drop seems to have a big impact on the CPU temperature since it drops to 89°C in our environment (room at about 28°C) and stabilizes there. That may also explain why 8K 60 YouTube videos are playing fine in the first few minutes before becoming unwatchable.
Fan noise
GEEKOM A7’s fan is not too noisy at idle or under light loads but becomes noisier under a stress test and to a lesser extent when playing a YouTube video. I don’t personally find the noise too annoying. As usual, I measured the fan noise with a sound level meter placed at around 5 centimeters from the top of the enclosure:
- Idle – 45.3 – 45.7 dBA
- YouTube 4K 60 video in Firefox (volume off) – 47.4 – 48 dBA
- Stress test on all 16 threads – 49.8 – 50.1 dBA
For reference, the meter measures around 38 dBA in a quiet room.
GEEKOM A7 power consumption in Ubuntu 22.04
We measured the power consumption with a wall power meter:
- Power off – 1.3 Watt
- Idle – 5.0 – 5.8 Watts
- Video playback
- 25.9 – 33.3 Watts (Youtube 4K 60fps in Firefox – Note: VP9 codec)
- 62.9 – 78.4 Watts (Youtube 8K 60fps in Firefox – Note: AV1 codec)
- CPU stress test (stress -c 16)
- First couple of seconds – 79 – 84.4 Watts
- After around 20 seconds – 64.2 – 64.5 Watts
- Longer run – 57.7 – 57.8 Watts
- Even longer run (12+ minutes) – 52.1 – 52.3 Watts
During the measurements, the mini PC was connected to a 2.5GbE switch and an HDMI display with its own power adapter, and two USB RF dongles were used for a mouse and a keyboard.
Conclusion
The GEEKOM A7 is the most powerful mini PC we’ve tested so far and works well in Ubuntu 22.04 as long as we ignore the MediaTek MT7922 wireless module (Azurewave AW-XB591NF) with fast but unstable/unreliable WiFi and Bluetooth not working. Switching to a daily built Ubuntu 24.04 image improves the stability of WiFi 6, so I’m confident this should be fine once Ubuntu 24.04 is officially released in April. I was unable to make Bluetooth work.
2.5GbE works perfectly however, so if you don’t need WiFi or Bluetooth, this AMD Ryzen 9 7940HS mini PC is great in Linux with fast NVMe storage, excellent multi-core performance, and YouTube video playback works well up to 4K 60 FPS and 8K 30 FPS. The system struggles at 8K 60 FPS but only after a while, so it may be a victim of the tropical climate in Thailand and may work better in more moderate climates or cooler rooms. The mini PC’s fan is fairly quiet most of the time, and not too annoying when more demanding tasks are running.
I’d like to thank GEEKOM for sending the A7 mini PC for review. The model reviewed here with 32GB of DDR5 RAM and a 2TB SSD can be purchased on Amazon for $829 with the coupon code CNXSW3A7 as well as on the GEEKOM store. with the discount code cnxsoftwarea7, which also works on the GEEKOM UK store.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Thanks for the greatly detailed review! I’m coming to the point where I’m not going to buy any SFFPC that doesn’t have a review from you first.
As per this one, I’m quite impressed with the performance, specially since you measured its idle power usage at only 5.4W on average. And that’s with Ubuntu which runs a fairly large number of background processes, so I bet it’s going to be even lower with a more frugal distribution.
I have two questions:
1) re: the badly supported WiFi/Bluetooth module, will Geekom sell this PC without it so we can buy and install a better supported one ourselves?
2) The processor is the “plain” non-Pro version of the 7840HS, right? Just wanted to confirm as the Pro version would open up the possibility (depending on board support) for AMD-supported ECC RAM, which the non-Pro doesn’t and is really important for my use case.
TIA!
GEEKOM does not sell barebone models. So the easiest solution would be to replace the WiFi module with something like AX201. I’m still hoping some software fix will become available in the next few months for both WiFi (already looks OK in Ubuntu 24.04) and Bluetooth.
It’s the Ryzen 9 7940HS CPU, not the PRO version. It’s going to be challenging to find consumer-grade hardware that supports ECC.
> It’s going to be challenging to find consumer-grade hardware that supports ECC.
DDR5 and as such the Crucial DIMMs you tested with feature on-die ECC by design 😉
But I agree that those who ‘need’ real ECC memory (mostly based on misunderstandings) will have a hard time finding this feature on consumer mini PCs.
> DDR5 and as such the Crucial DIMMs you tested with feature on-die ECC by design
PSA (not necessarily for the OP but for anyone else reading this): the general consensus is that built-in ECC is a required feature by the JEDEC standard for DDR5 memory for the simple reason that it’s absolutely necessary to make DDR5 at least as reliable as non-ECC DDR4.
So don’t fall for the illusion that the built-in ECC in DDR5 provides any more reliability than non-ECC DDR4, because it doesn’t (and as someone who has already lost data due to non-ECC DDR4 memory, I can testify that this level of reliability is not enough for anyone that values his/her data).
(and OP, please don’t waste your time trying to bring up a debate on this, as I continue to be uninterested in one, and will therefore not engage).
> So the easiest solution would be to replace the WiFi module with something like AX201.
Agreed. But then we’d stuck with a module I paid good money for (as its cost is certainly included in the Geekom price) and I don’t expect to have much use for (see below).
> I’m still hoping some software fix will become available in the next few months for both WiFi (already looks OK in Ubuntu 24.04) and Bluetooth.
I’ve no doubt a mostly-functioning fix will eventually be available, but the operating word here is “mostly”: experience shows that Intel networking hardware (wifi and otherwise) performs great and without bugs at least most of the time, but their cheap Chinese competitors (eg, Realtek) always have issues of one form of the other. So, until proven otherwise, I’m quite skeptical of that MediaTek module…
> It’s the Ryzen 9 7940HS CPU, not the PRO version.
🙁 boo, double boo and triple boo… :-/
But thanks for the confirmation anyway.
> It’s going to be challenging to find consumer-grade hardware that supports ECC.
There’s the AsRock Box 4×4 R1000V/M models which can be bought straight on Amazon and Newegg, but they have Zen1-era processors and therefore are relatively low-performing and also quite inefficient energy-wise (idle usage around 12-13W) and therefore not ideal for my use case.
Their immediate successors, in the form of the V2000 line from the same manufacturer, also support ECC RAM and use Zen2-era processors — so they ought to be both better performing and more energy-frugal. But they’re basically unobtainable by now (ie, only as a special order from industrial-hardware specialized shops) and I haven’t seen an in-depth review like yours (hint! hint! 😁) on them yet.
But what I’d really like (and buy immediately without even blinking) is an ECC-supporting SFFPC with a Zen3+ processor combining great performance and efficiency, and *that* is what so far I’ve not been able to find — despite AMD support on many of these processors, and large availability of conventional *TX desktop mobos providing the necessary “platform support” for ECC.
There’s also the UDOO BOLT GEAR mini PC: https://www.cnx-software.com/2020/05/29/udoo-bolt-gear-amd-ryzen-embedded-v1605b-mini-pc-with-arduino-subsystem/
But its also based on the older V1000 series, and the idle power consumption is between 6W and 12W according to the manufacturer.
Thanks for mentioning the UDOO BOLT. I saw when it launched a few years ago and considered it seriously for a time, but ended up forgetting about it as it was always marked as out-of-stock on the UDOO shop. Seems they have fixed this, finally.
And thanks for the idle power number, I don’t remember seeing that piece of info before when I searched for it. And 6-12W (depending on how much time it stays closer to 6W than to 12W) would be an improvement on the ASRock Box V1000s, which from the data I’ve seen are always above 10W.
Unfortunately, as you also mentioned, it’s also based on the old Zen1-era processior, and they charge a premium price for it (with Shipping out of EU or VAT inside it, the barebones would almost certainly be over $600 and then RAM and SSD prices would have to be added). Too high a price for 4-year-old tech, unfortunately… :-/
Just recently got myself a gigabyte brix with u4300 for less than 200$ as a barebone with intel wifi maybe not exactly the same level but for my use case nearly perfect
> gigabyte brix with u4300
This one?
https://www.gigabyte.com/br/Mini-PcBarebone/GB-BRR3-4300-rev-10
Looks interesting, but are you mentioning it in the context of ECC? I see nothing in the product page mentioning that.
Hmmm somehow my answer got lost…
Not about ECC just price performance.
I have this one: https://www.gigabyte.com/br/Mini-PcBarebone/GB-BRR3H-4300-rev-10
That has an additional 2.5″ slot for SATA
Thanks for coming back to reply, and for the clarification.
Looks like a very nice machine, spec-wise.
Have you ever measured how many watts it consumes in idle? This (apart from ECC) is my most important selection criterium.
Sorry no nothing much yet.
I did test KDE neon and updated an old win10 on an ssd out of a laptop to win11.
But not yet really did much. My plan is to set it up properly but didn’t get time yet, as we are in a final phase of a project at work, so not alot time for hobby projects at the moment.
Today we finalised pictograms with braille in Portuguese at work. A fun task if you neither speak Portuguese nor Braille.
Hello and thanks for the article!
Do you have any suggestions for Better online video hardware acceleration in Linux?
PS:
I got this used mini pc for €390, then ordered an Intel ax211 wireless / bluetooth card, given all the compatibility problems
Provided you mean YouTube, forcing different codecs may help.
There’s a plugin for that: h264ify available for Chrome and Firefox.
I’m not sure how well that works, but Kodi has a YouTube plugin, so it may be worth a try too.
Not recommended, but lowering the room temperature may help too… 🙂