Zimaboard, Zimablade and CasaOS Troubleshooting - Part 1

Zimaboard/Zimablade/CasaOS - Linux Troubleshooting:

Part 2 - Storage, Files and Permissions
Part 3 - Process, Ports and File-locks

While every Zimaboard is sent out with CasaOS deployed over a regular Debian install, there are
a few things that can help with troubleshooting potential issues that might not be clear with the abstraction
CasaOS delivers.

!! WARNING !!
Most of these tools require the use of CLI, be it via the CasaOS UI, Terminal, PuTTy, or which flavor of SSH based
communication you prefer.

The first thing to get out of the way is that:
Zimaboard is a small formfactor computer and acts as any other computer which runs a Linux Distro.
Not all tools listed in this article are available out-of-the-box, but most are, and there will be comments
showing which are not included by default.

For the sake of simplicity this article will move you from reading the hardware over to dealing with OS and Software.

First of all, these tools, commands and examples are meant to help with hardware related troubleshooting and will hopefully
lead to a better experience with your device, but are not exlusive to the Zimaboard/Zimablade and CasaOS.

So lets get started with reading information from the BIOS on the board:

dmidecode

Sample Output (the contents is much much larger):

# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
Table at 0x000EB9E0.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
        Vendor: American Megatrends Inc.
        Version: 5.12
        Release Date: 07/26/2022
        Address: 0xF0000
        Runtime Size: 64 kB
        ROM Size: 5 MB
        Characteristics:
                PCI is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
                BIOS ROM is socketed
                EDD is supported
                5.25"/1.2 MB floppy services are supported (int 13h)
                3.5"/720 kB floppy services are supported (int 13h)
                3.5"/2.88 MB floppy services are supported (int 13h)
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                Printer services are supported (int 17h)
                ACPI is supported
                USB legacy is supported
                BIOS boot specification is supported
                Targeted content distribution is supported
                UEFI is supported
        BIOS Revision: 5.12

See what PCI devices are present and recognized by the board and OS (useful for identification of potential expansion card problems):

lspci

Sample Output:

00:00.0 Host bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge (rev 0b)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 500 (rev 0b)
00:0e.0 Audio device: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster (rev 0b)
00:0f.0 Communication controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Trusted Execution Engine (rev 0b)
00:12.0 SATA controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SATA AHCI Controller (rev 0b)
00:13.0 PCI bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #1 (rev fb)
00:14.0 PCI bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port B #1 (rev fb)
00:14.1 PCI bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port B #2 (rev fb)
00:15.0 USB controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series USB xHCI (rev 0b)
00:1c.0 SD Host controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series eMMC Controller (rev 0b)
00:1f.0 ISA bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface (rev 0b)
00:1f.1 SMBus: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller (rev 0b)
01:00.0 Non-Volatile memory controller: Micron/Crucial Technology P2 NVMe PCIe SSD (rev 01)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

See what USB devices are present and recognized by the board and OS (useful for identifying potential USB related problems):

lsusb

Sample Output:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

See what hardware changes happens and how the OS booted up (useful to see if devices like NICs comes up correctly):

dmesg

Sample Output:

[    0.000000] microcode: microcode updated early to revision 0x48, date = 2021-11-16
[    0.000000] Linux version 5.15.0-84-generic (buildd@lcy02-amd64-005) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #93-Ubuntu SMP Tue Sep 5 17:16:10 UTC 2023 (Ubuntu 5.15.0-84.93-generic 5.15.116)
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-5.15.0-84-generic root=/dev/mapper/ubuntu--vg--1-ubuntu--lv ro
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Hygon HygonGenuine
[    0.000000]   Centaur CentaurHauls
[    0.000000]   zhaoxin   Shanghai
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000003efff] usable
[    0.000000] BIOS-e820: [mem 0x000000000003f000-0x000000000003ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000040000-0x000000000009efff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009f000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000000fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000010000000-0x0000000012150fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000012151000-0x0000000077381fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000077382000-0x000000007947bfff] reserved
[    0.000000] BIOS-e820: [mem 0x000000007947c000-0x000000007954cfff] usable
[    0.000000] BIOS-e820: [mem 0x000000007954d000-0x0000000079871fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x0000000079872000-0x0000000079e54fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000079e55000-0x000000007a1c0fff] usable
[    0.000000] BIOS-e820: [mem 0x000000007a1c1000-0x000000007a1c1fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007a1c2000-0x000000007a1ebfff] reserved
[    0.000000] BIOS-e820: [mem 0x000000007a1ec000-0x000000007a765fff] usable
[    0.000000] BIOS-e820: [mem 0x000000007a766000-0x000000007a767fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000007a768000-0x000000007affffff] usable
[    0.000000] BIOS-e820: [mem 0x000000007b000000-0x000000007fffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000d0000000-0x00000000d0ffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fe042000-0x00000000fe044fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fe900000-0x00000000fe902fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed01000-0x00000000fed01fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ff800000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000027fffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] e820: update [mem 0x6acd6018-0x6ace6057] usable ==> usable
[    0.000000] e820: update [mem 0x6acd6018-0x6ace6057] usable ==> usable
[    0.000000] extended physical RAM map:
[    0.000000] reserve setup_data: [mem 0x0000000000000000-0x000000000003efff] usable
[    0.000000] reserve setup_data: [mem 0x000000000003f000-0x000000000003ffff] reserved
[    0.000000] reserve setup_data: [mem 0x0000000000040000-0x000000000009efff] usable
[    0.000000] reserve setup_data: [mem 0x000000000009f000-0x00000000000fffff] reserved
[    0.000000] reserve setup_data: [mem 0x0000000000100000-0x000000000fffffff] usable
[    0.000000] reserve setup_data: [mem 0x0000000010000000-0x0000000012150fff] reserved
[    0.000000] reserve setup_data: [mem 0x0000000012151000-0x000000006acd6017] usable
[    0.000000] reserve setup_data: [mem 0x000000006acd6018-0x000000006ace6057] usable
[    0.000000] reserve setup_data: [mem 0x000000006ace6058-0x0000000077381fff] usable

Storage Devices

To see the storage devices which the OS can see (very useful for when/if there are storage device problems):

lsblk

Sample Output (this install does not use the eMMC that is onboard):

NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk0                      179:0    0  29.1G  0 disk
mmcblk0boot0                 179:8    0     4M  1 disk
mmcblk0boot1                 179:16   0     4M  1 disk
nvme0n1                      259:0    0 931.5G  0 disk
├─nvme0n1p1                  259:1    0     1G  0 part /boot/efi
├─nvme0n1p2                  259:2    0     2G  0 part /boot
└─nvme0n1p3                  259:3    0 928.5G  0 part
  └─ubuntu--vg--1-ubuntu--lv 253:0    0 828.5G  0 lvm  /var/hdd.log
                                                       /

Read the storage layout (Device path, partition UUID, FSType, very useful to understand if there are partitions etc present):

blkid

Sample Output:

/dev/nvme0n1p3: UUID="lAdj8A-75WB-SFO6-7hM7-nS6k-K4Fx-PU1cpJ" TYPE="LVM2_member" PARTUUID="2300c906-3b16-4ab6-a748-e0afbf6e56b7"
/dev/nvme0n1p1: UUID="7C50-90D2" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="1873bac7-3251-45da-a5d3-3238a389f2f6"
/dev/nvme0n1p2: UUID="2a0689aa-0c85-45ae-8183-4fee69497338" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="1a6da8a8-ff43-41b8-96e9-d6f4133c80fc"
/dev/mapper/ubuntu--vg--1-ubuntu--lv: UUID="b37854d9-4925-4e7c-920c-e91d21836c4e" BLOCK_SIZE="4096" TYPE="ext4"

It’s so user-friendly for new users! Waiting for continued updates! :heartbeat: :heartbeat: :heartbeat: