ZotacNano - hpaluch/hpaluch.github.io GitHub Wiki

Zotac Nano notes

This passive box computer had been my main PC for 7 years - since 2017 (!) - now (since fall 2024) I use Cubi as main computer:

Zotac overview:

  • ZOTAC CI327 Nano passive cooled PC with 4GB RAM, 32GB SSD, and external 1TB USB disk (for VirtualBox images)
  • pre-installed Windows 10 Home N, 64-bit

Despite having powerful MSI Cubi there are still perfect use cases for Zotac:

  • licensed Windows 10 Home (dual boot) - when I need it
  • perfect for evening work (no fans, no noise)
  • perfect to test software (in)efficiency - if something is fast on this Zotac it is super fast everywhere
  • testing bare metal systems (for example FreeBSD, whose Bhyve Hypervisor requires NPT and other recent CPU features).

Here is output from inxi -Fz (from Fedora 41 Workstation):

System:
  Kernel: 6.12.11-200.fc41.x86_64 arch: x86_64 bits: 64
  Console: pty pts/3 Distro: Fedora Linux 41 (Workstation Edition)
Machine:
  Type: Desktop Mobo: NA model: ZBOX-CI327NANO-GS-01 serial: <superuser required>
    UEFI: American Megatrends v: 5.12 date: 08/11/2017
CPU:
  Info: quad core model: Intel Celeron N3450 bits: 64 type: MCP cache: L2: 2 MiB
  Speed (MHz): avg: 800 min/max: 800/2200 cores: 1: 800 2: 800 3: 800 4: 800
Graphics:
  Device-1: Intel HD Graphics 500 driver: i915 v: kernel
  Display: server: Xwayland v: 24.1.5 driver: gpu: i915 note: X driver n/a, try sudo/root
    tty: 120x24 resolution: 1920x1080
  API: EGL v: 1.5 drivers: iris,swrast platforms: gbm,wayland,surfaceless,device
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: mesa v: 24.3.4 note: console (EGL sourced)
    renderer: Mesa Intel HD Graphics 500 (APL 2), llvmpipe (LLVM 19.1.7 128 bits)
  Info: Tools: api: eglinfo,glxinfo x11: xdriinfo, xdpyinfo, xprop, xrandr
Audio:
  Device-1: Intel Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster
    driver: snd_hda_intel
  API: ALSA v: k6.12.11-200.fc41.x86_64 status: kernel-api
  Server-1: PipeWire v: 1.2.7 status: active
Network:
  Device-1: Intel Wireless 3165 driver: iwlwifi
  IF: wlp1s0 state: down mac: <filter>
  Device-2: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet driver: r8169
  IF: enp2s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-3: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet driver: r8169
  IF: enp3s0 state: down mac: <filter>
Bluetooth:
  Device-1: Intel Bluetooth wireless interface driver: btusb type: USB
  Report: btmgmt ID: hci0 rfk-id: 0 state: down bt-service: enabled,running rfk-block:
    hardware: no software: yes address: <filter> bt-v: 4.2
Drives:
  Local Storage: total: 931.51 GiB used: 7.63 GiB (0.8%)
  ID-1: /dev/sda vendor: Samsung model: SSD 870 EVO 1TB size: 931.51 GiB
Partition:
  ID-1: / size: 60.82 GiB used: 7.57 GiB (12.5%) fs: ext4 dev: /dev/sda9
  ID-2: /boot/efi size: 96 MiB used: 53.6 MiB (55.8%) fs: vfat dev: /dev/sda1
Swap:
  ID-1: swap-1 type: zram size: 3.66 GiB used: 0 KiB (0.0%) dev: /dev/zram0
  ID-2: swap-2 type: partition size: 8 GiB used: 0 KiB (0.0%) dev: /dev/sda5
Sensors:
  System Temperatures: cpu: 38.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 4 GiB available: 3.66 GiB used: 1.98 GiB (54.1%)
  Processes: 276 Uptime: 30m Init: systemd target: graphical (5) Shell: Bash inxi: 3.3.37

It supports only x86-64-v2 micro architecture (Cubi supports also v3):

$ /lib64/ld-linux-x86-64.so.2 --help | fgrep supported

  x86-64-v2 (supported, searched)

After several years without issues (not counting integrated M.2 SSD that was gone after 2 years) some things are now crumbling:

  • sometimes on power-on there are long beeps (power-cycle helps)...
  • Resolved: occasional font corruption (characters disappearing) under openSUSE 15.5 LEAP, XFCE
    • caused by Xorg i915 driver - removing i915 package (forcing Xorg to use KMS kernel driver) fixed this problem
  • NOTE: memtest 86+ run whole pass without single error (my experience is that typical memory error occurs in first 30 minutes or never)
  • occasional freeze of computer needing power cycle. At boot time found:
mcelog[755]: mcelog: Family 6 Model 92 CPU: only decoding architectural errors
mcelog[755]: mcelog: Family 6 Model 92 CPU: only decoding architectural errors
mcelog[755]: Hardware event. This is not a software error.
mcelog[755]: MCE 0
mcelog[755]: CPU 0 BANK 4
mcelog[755]: ADDR fef13580
mcelog[755]: TIME 1707243278 Tue Feb  6 19:14:38 2024
mcelog[755]: MCG status:
mcelog[755]: MCi status:
mcelog[755]: Uncorrected error
mcelog[755]: MCi_ADDR register valid
mcelog[755]: Processor context corrupt
mcelog[755]: MCA: Internal unclassified error: 408
mcelog[755]: Running trigger `unknown-error-trigger' (reporter: unknown)
mcelog[755]: STATUS a600000000020408 MCGSTATUS 0
mcelog[755]: MCGCAP c07 APICID 0 SOCKETID 0
mcelog[755]: MICROCODE 48
mcelog[755]: CPUID Vendor Intel Family 6 Model 92 Step 9

Some search results:

Suspecting that it is caused by micro-code update, because:

 dmesg | grep '\(mce\|micro\)'

[    0.000000] microcode: microcode updated early to revision 0x48, date = 2021-11-16
[    3.025607] microcode: sig=0x506c9, pf=0x1, revision=0x48
[    3.025802] microcode: Microcode Update Driver: v2.2.
[    3.025818] mce: [Hardware Error]: Machine check events logged

Notice that MCE (Machine Check Exception) error occurs shortly after microcode is updated...

Trying to disable microcode by following Gentoo :-) manual:

  • https://wiki.gentoo.org/wiki/Microcode#Dracut
  • created file /etc/dracut.conf.d/98-disable-microcode.conf with content:
    early_microcode="no"
    
  • and regenerated latest initramfs with:
    dracut -f --kver=`uname -r`
  • did not help, but found https://wiki.debian.org/Microcode that passing dis_ucode_ldr should help. Appended to /etc/default/grub:
    GRUB_CMDLINE_LINUX_DEFAULT="mitigations=off rfkill.default_state=0 dis_ucode_ldr"
  • and run:
    grub2-mkconfig -o /tmp/grub.cfg
    diff /tmp/grub.cfg /boot/grub2/grub.cfg 
    # review changes and then...
    cp /tmp/grub.cfg /boot/grub2/grub.cfg 
  • this helped disable ucode, but MCE is still there...
  • time will tell if it also helped other stuff

Also installed zypper in acpid to ensure that system (if not frozen) will attempt shutdown when Power button is pressed.

Font corruption (solved)

Resolved: Caused by i915 Xorg driver. Resolved by using KMS kernel driver.

Text below left for reference:

Found some similar issues:

Some examples:

$ GDK_BACKEND=help /usr/bin/gnome-terminal

Supported GDK backends: wayland x11 broadway

No output:
GSK_RENDERER=help /usr/bin/gnome-terminal
GSK_DEBUG=renderer /usr/bin/gnome-terminal
GSK_DEBUG=opengl /usr/bin/gnome-terminal
GSK_DEBUG=vulkan /usr/bin/gnome-terminal

After many years(!) I have found that there are actually 2 accelerated X11 i915 drivers for Intel:

  • "intel" driver (/usr/lib64/xorg/modules/drivers/intel_drv.so, package xf86-video-intel)
  • "modesetting" driver (/usr/lib64/xorg/modules/drivers/modesetting_drv.so, package xorg-x11-server)

You can switch between these two by using /etc/X11/xorg.conf.d/50-device.conf:

Section "Device"
  Identifier "Default Device"
  #Driver "intel"
  Driver "modesetting"
EndSection

Above is for modesetting driver. For intel just swap these 2 lines. For many years I always used intel, but found interesting discussion on Arch Linux wiki: https://wiki.archlinux.org/title/Intel_graphics

Some (Debian & Ubuntu, Fedora, KDE, Mozilla) recommend not installing the xf86-video-intel driver, and instead falling back on the modesetting driver. See [1], [2], Xorg#Installation, and modesetting(4). However, the modesetting driver can cause problems such as screen tearing and mouse jittering on XFCE, artifacts when switching virtual desktops in Chromium, and vsync jitter/video stutter in mpv.

So after many years I'm now testing modesetting to see it there will be same font corruption problem.

Please note that modesetting driver is totally unusable for VMware SVGA under VirtualBox...

⚠️ **GitHub.com Fallback** ⚠️