Discover, Review, Enjoy — Byte by Byte

Author: bytesmith17

I’m a tech enthusiast who’s been passionate about technology since I got my first PC at 11. For the past 20+ years, ICT has been both my career and hobby. I studied ICT, Business, and Photography at college before landing my first IT role in 2010, supporting a small software development company’s users. Since then, I’ve transitioned into the public sector as a network and telephony engineer. Today, I manage a mix of Cisco Call Manager, Avaya CS1K, and more as we plan to migrate to Teams.

Linux – Internet Checker Script V1.0

# Linux - Internet Checker Script V1.0
# Function to check network interface
check_interface()
    local INTERFACE=$(ip route | grep default | awk '{print $5}')
    if [[ -n "$INTERFACE" ]]; then
        echo -e "\e[32mNetwork interface ($INTERFACE) is up.\e[0m"
    else
        echo -e "\e[31mNo network interface found or it is down!\e[0m"
        return 1
    fi
}

# Function to check default gateway
check_gateway() {
    local GATEWAY=$(ip route | grep default | awk '{print $3}')
    if ping -c 2 "$GATEWAY" &> /dev/null; then
        echo -e "\e[32mSuccessfully connected to gateway ($GATEWAY).\e[0m"
    else
        echo -e "\e[31mFailed to connect to the gateway ($GATEWAY).\e[0m"
        return 1
    fi
}

# Function to check DNS resolution
check_dns() {
    if nslookup google.com &> /dev/null; then
        echo -e "\e[32mDNS resolution is working.\e[0m"
    else
        echo -e "\e[31mDNS resolution failed!\e[0m"
        return 1
    fi
}

# Function to check connectivity to external servers via ping
check_ping() {
    local SERVERS=("8.8.8.8" "1.1.1.1" "google.com")
    for server in "${SERVERS[@]}"; do
        if ping -c 2 "$server" &> /dev/null; then
            echo -e "\e[32mSuccessfully pinged $server.\e[0m"
        else
            echo -e "\e[31mFailed to ping $server.\e[0m"
            return 1
        fi
    done
}

# Function to check if specific ports are open
check_ports() {
    local PORTS=(80 443)
    for port in "${PORTS[@]}"; do
        if nc -zv google.com $port &> /dev/null; then
            echo -e "\e[32mPort $port is accessible.\e[0m"
        else
            echo -e "\e[31mPort $port is not accessible!\e[0m"
            return 1
        fi
    done
}

# Function to check traceroute to Google DNS
check_traceroute() {
    if command -v traceroute &> /dev/null; then
        echo -e "\e[32mTraceroute to Google DNS (8.8.8.8) is possible:\e[0m"
        traceroute -m 5 8.8.8.8
    else
        echo -e "\e[31mTraceroute command not available on this system.\e[0m"
    fi
}

# Function to check HTTP request and handle redirects
check_http_request() {
    if curl -s -o /dev/null -w "%{http_code}" https://google.com | grep -q "200\|301\|302"; then
        echo -e "\e[32mHTTP request successful or redirected.\e[0m"
    else
        echo -e "\e[31mHTTP request failed!\e[0m"
        return 1
    fi
}

# Run all checks
echo "Starting detailed internet connection check..."
check_interface
check_gateway
check_dns
check_ping
check_ports
check_traceroute
check_http_request

echo "Internet connection check complete."

Review – NanoPi Neo LTS with CNC Metal-Case – First Impressions

NanoPi Neo LTS with CNC Metal-Case Heatsink 256M/512M RAM Allwinner H3 Quad Cortex-A7 1.2GHz,OpenWRT,Ubuntu Linux Armbian DietPi

NanoPi Neo LTS with CNC Metal Case: First Impressions and 5-Star Review


After just 8 days, my NanoPi Neo LTS, complete with a CNC metal case, arrived, and I’m once again impressed by the speed of AliExpress’s delivery. The packaging was secure and well-protected, as you can see below, leaving no room for complaints. With such fast shipping and good packaging, the experience started on a high note.

The NanoPi Neo LTS has a satisfying weight, and the build quality feels solid. The CNC metal case fits perfectly, giving the device a sturdy, heavy-duty feel. For a device priced at £22.16, this level of quality exceeded my expectations. The first impression of both the product and AliExpress’s service was excellent.

Images


Hardware Spec

  • CPU: Allwinner H3, Quad-core Cortex-A7 Up to 1.2GHz
  • DDR3 RAM: 512MB
  • Connectivity: 10/100M Ethernet
  • USB Host: Type-A x 1, 2.54 mm pin x 2
  • MicroSD Slot x 1
  • MicroUSB: OTG, for power input
  • Debug Serial Port: 4Pin, 2.54 mm pitch pin header
  • Audio input/output Port: 5Pin, 2.0mm pitch pin header
  • GPIO: 2.54mm pitch 36pin. It includes UART, SPI, I2C, IO etc
  • Power Supply: DC 5V/2A
  • PCB Dimension: 40 x 40 mm
  • Working Temperature: -20℃ to 70℃
  • Weight: 14g(WITHOUT Pin-headers)
  • OS/Software: u-boot, UbuntuCore and Android

Micro SD card Test

Samsung PRO Ultimate microSD memory card, 128 G

Write Test

NanoPi-NEO:~$ sudo dd if=/dev/zero of=/testfile bs=4M count=100 conv=fdat async
100+0 records in
100+0 records out
419430400 bytes (419 MB, 400 MiB) copied, 19.594 s, 21.4 MB/s

Read Test

NanoPi-NEO:~$ dd if=/testfile of=/dev/null bs=4M
100+0 records in
100+0 records out
419430400 bytes (419 MB, 400 MiB) copied, 17.8108 s, 23.5 MB/s

Network Speed Test

Setup Process: Simple and Straightforward

To set up the device, I paired it with a 128GB Samsung PRO Ultimate microSD card. I then visited the device’s wiki page, where I found the latest OS images. I opted for the Debian image and used Win32DiskImager to write the OS image to the SD card. The entire process was straightforward, very similar to setting up any Raspberry Pi device.

Once the SD card was ready, I connected the NanoPi to power and a network cable, inserted the SD card, and located its IP address. Afterward, I used PuTTY to start an SSH session. The default login credentials were:

  • Username: pi
  • Password: pi

It’s highly recommended that you change the default password right away. Alternatively, creating a new user with administrative privileges is a good idea for better security. Since this device is headless (no monitor output), all interaction will be done via SSH or network.

Initial Setup Hiccups

After logging in, I ran apt update and apt upgrade, but the process was slowed down by an unusual Alibaba redirect in the package sources. To resolve this, I edited the /etc/apt/sources.list file and replaced the redirect with the default repository links. Once I made that change, both apt update and apt upgrade worked flawlessly.

Given the odd redirect, I thought it would be a good idea to run a virus and rootkit checker on the system. Luckily, the scan came back clean, reassuring me that the system was secure and ready for use.

Future Plans for the NanoPi Neo

So, what’s the plan for this device? The first idea that came to mind was setting it up as a NUT (Network UPS Tools) server. I’ll use it to monitor my UPS, which is tucked away in the loft powering my network switch, access point, and network TV tuner. Currently, the UPS is a “fire-and-forget” setup, but with the NanoPi, I’ll be able to monitor the battery status and even schedule regular battery tests. This will provide peace of mind and help ensure everything runs smoothly.

5-Star Value and Service

In terms of value for money, the NanoPi Neo LTS gets 5 stars from me. At just £22.16, it’s hard to beat for what it offers. AliExpress also deserves 5 stars for their service—the ordering process was simple, and shipping (including taxes) was handled smoothly. Receiving the item from China to the UK in just 8 days is impressive, to say the least.

In fact, my experience was so positive that I’ve already ordered a second device. The next NanoPi Neo will monitor another UPS, this time for the router in my living room.

Order Date: 1st October

Delivery Date: 9th October

Cost: £22.16 Including Tax & Shipping

Buy Link

Buy Link – NanoPi Neo LTS with CNC Metal-Case 512mb Memory Verison

Buy Link – Samsung PRO Ultimate microSD memory card, 128 G

Useful Links

Full Hardware and Installation WIKI

Week 1 – Summary

Coming Soon…

Month 1 – Summary

Coming Soon…

Review – Topton N100 NAS Motherboard AliExpress – First Impression

TopTon – 1*10G 2*i226-V 2.5G Intel N100 6-Bay NAS Motherboard 6*SATA3.0 2*NVMe 1*DDR5 4800MHz Soft Router Firewall ITX Mainboard

Topton N100 NAS Motherboard Review Points

I’m satisfied with the delivery speed, which took just 11 days to the UK. The packaging was top-notch, with double-boxing and plenty of bubble wrap ensuring safe arrival. I’m happy with the overall service from AliExpress, and the Topton N100 NAS motherboard has proven to be well-priced for its features.

Here’s my unboxing and first impressions of this feature-packed motherboard, which includes Intel N100, 6 SATA3.0 ports, and dual 2.5G Ethernet ports.

Unboxing – Inner box

The motherboard came well-packaged with no visible damage. It was shipped in a dual box, ensuring protection during transit.

Unboxing – Contents

The motherboard was securely wrapped in bubble wrap, and to my relief, it includes an IO shield.

First Impression

I’m happy with how quickly the motherboard shipped and the overall packaging quality. Everything arrived in perfect condition.

Memory + SSD Installation

Installing the DDR5 memory and SSD was a breeze. Everything fit perfectly without any hassle.

Next Steps: Power Up and Testing

Stay tuned for the next part, where I’ll power up the board and run tests to see how well it performs!

Shopping List

ItemBrandShopCostLink
MotherboardN100 Unknown BranndAliExpress£129.87 Including Taxes Link
Memory /RAMCorsair Vengeance 32GB 4800MHz DDR5 SODIMM MemoryScan£79.97 Including Taxes and ShippingLink
SSD / NVMESeagate FireCuda 510Ebuyer (Brought 2021)£152.49Too Old 🙁

Key Highlights:

  • 32GB Corsair DDR5 memory installed, fully compatible.
  • 10Gb setup was simple plug-and-play, as expected.
  • Installation was seamless, with both Windows 11 and Proxmox running smoothly. I’m currently using Proxmox with a single Emby LXC container, and it has worked perfectly so far.

Service & Value Ratings:

  • Shipping & Packaging: 5/5
  • Cost / Value: 5/5
  • Ease of Installation: 5/5

Although I experienced a brief network outage on Day 3/4, everything resumed normally after rebooting the Proxmox node. The 10Gb NIC was slightly warm at 40°C, so I added a small Noctua fan over the heatsink for extra cooling.

Overall, I’m happy with this unique Intel N100 motherboard so far. The addition of the 10Gb NIC has proven to be a key selling point for future tasks.

Deep Dive Posts

Week 1 Overview

The motherboard running Proxmox has remained stable and fully operational, now with over 8 days of uptime. Emby with GPU passthrough has been performing flawlessly without any issues. Overall, I’m still very happy with the motherboard’s performance. My test case isn’t particularly heavy on CPU or memory load, but it’s handling everything I’ve thrown at it so far with ease. No further networks issues I have replaced the copper 10gi SFP on my 10gi switch just encase.

Week 1: Average CPU Usage

Week 1: Average Server Load

Week 1: Average Memory Usage

Week 1: Average Network Usage

Week 1: Maximum CPU

Week 1: Maximum Server Load

Week 1: Maximum Memory

Week 1: Maximum Network

Month 1 Overview

Coming Soon….

Linux – Fail2Ban Auto Installation Script V1.0

run the following command

nano /fail2ban.sh

Copy and paste the script below.

#!/bin/bash

# Fail2Ban auto-install and setup script (no sudo)

# Step 1: Update package list and install Fail2Ban and rsyslog
apt update && apt install fail2ban rsyslog -y

# Step 2: Ensure rsyslog is running and enabled on boot
systemctl start rsyslog
systemctl enable rsyslog

# Step 3: Configure rsyslog to log auth messages
if ! grep -q "^auth,authpriv.*" /etc/rsyslog.conf; then
    echo "auth,authpriv.*   /var/log/auth.log" >> /etc/rsyslog.conf
    echo "Configured rsyslog to log authentication messages."
fi

# Restart rsyslog to apply changes
systemctl restart rsyslog

# Step 4: Copy the default jail.conf to jail.local to prevent overwriting in updates
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# Step 5: Configure the SSH jail and other settings in jail.local
if ! grep -q "^\[DEFAULT\]" /etc/fail2ban/jail.local; then
    echo -e "\n[DEFAULT]\n" >> /etc/fail2ban/jail.local
fi

# Check and set bantime if it doesn't exist
if ! grep -q "^bantime" /etc/fail2ban/jail.local; then
    echo "bantime = 24h" >> /etc/fail2ban/jail.local
else
    sed -i 's/^bantime.*/bantime = 24h/' /etc/fail2ban/jail.local
fi

# Check and set findtime if it doesn't exist
if ! grep -q "^findtime" /etc/fail2ban/jail.local; then
    echo "findtime = 10m" >> /etc/fail2ban/jail.local
else
    sed -i 's/^findtime.*/findtime = 10m/' /etc/fail2ban/jail.local
fi

# Check and set maxretry if it doesn't exist
if ! grep -q "^maxretry" /etc/fail2ban/jail.local; then
    echo "maxretry = 5" >> /etc/fail2ban/jail.local
else
    sed -i 's/^maxretry.*/maxretry = 5/' /etc/fail2ban/jail.local
fi

# Configure the SSH jail
if ! grep -q "^\[sshd\]" /etc/fail2ban/jail.local; then
    echo -e "\n[sshd]\nenabled = true\nlogpath = /var/log/auth.log\n" >> /etc/fail2ban/jail.local
else
    sed -i 's/^enabled.*/enabled = true/' /etc/fail2ban/jail.local
    sed -i 's|^logpath.*|logpath = /var/log/auth.log|' /etc/fail2ban/jail.local
fi

# Step 6: Ensure SSH logging is enabled in /etc/ssh/sshd_config
# Handle LogLevel
if grep -q "^#LogLevel" /etc/ssh/sshd_config; then
    sed -i 's/^#LogLevel.*/LogLevel INFO/' /etc/ssh/sshd_config
elif grep -q "^LogLevel" /etc/ssh/sshd_config; then
    sed -i 's/^LogLevel.*/LogLevel INFO/' /etc/ssh/sshd_config
else
    echo "LogLevel INFO" >> /etc/ssh/sshd_config
fi

# Handle SyslogFacility
if grep -q "^#SyslogFacility" /etc/ssh/sshd_config; then
    sed -i 's/^#SyslogFacility.*/SyslogFacility AUTH/' /etc/ssh/sshd_config
elif grep -q "^SyslogFacility" /etc/ssh/sshd_config; then
    sed -i 's/^SyslogFacility.*/SyslogFacility AUTH/' /etc/ssh/sshd_config
else
    echo "SyslogFacility AUTH" >> /etc/ssh/sshd_config
fi

# Step 7: Restart SSH and Fail2Ban services to apply the changes
systemctl restart sshd
systemctl restart fail2ban

# Step 8: Enable Fail2Ban on boot
systemctl enable fail2ban

echo "Fail2Ban and rsyslog have been installed and configured successfully."

CTRL + O Then CTRL + X to Save and Close the file.

Now run the following command to sent the scripts permissions

chmod 755 /fail2ban.sh

Now we need to run the script to automatically install and setup fail2ban

./fail2ban.sh

Review – Topton N100 NAS Motherboard AliExpress – Deep Dive

N100 Version Overview

  • Idle Temperature and Performance Testing
  • Wake-on-LAN (WOL) and Network Features
  • Network Speed Test with 10G Ethernet
  • IOMMU Groups Breakdown
  • Detailed PCIe Device Information

Idle Temperature and Performance Testing

To assess how the TopTon N100 NAS motherboard performs under different workloads, I began with idle temperature monitoring. This provides a baseline for thermal performance, helping to evaluate the cooling efficiency of the stock setup before diving into more demanding tests. Below, you’ll find the results from my initial idle temperature test, followed by performance benchmarks under load.

Idle Temperature

Wake-on-LAN (WOL) and Network Features

Wake By OnBoard LAN: This setting allows the system to wake from a low-power state when network activity is detected on the onboard LAN, enabling remote access or management.

Wake From Thunderbolt: This option lets the system power on from a low-power state via activity on a connected Thunderbolt device, providing convenient wake-up without needing to press the power button.

r/homelab - Update - Wish Me Luck... Part 2: Its Here!
r/homelab - Update - Wish Me Luck... Part 2: Its Here!

10gi Network Card

root@vm2:~# ethtool enp4s0
Settings for enp4s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Full
100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Full
100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: No
Link partner advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
Supports Wake-on: pg
Wake-on: g
Current message level: 0x00000005 (5)
drv link
Link detected: yes

Network Speed Test with 10G Ethernet

IOMMU Groups Breakdown

IOMMU Group 0 00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-N [UHD Graphics] [8086:46d1]
IOMMU Group 1 00:00.0 Host bridge [0600]: Intel Corporation Device [8086:461c]
IOMMU Group 2 00:0d.0 USB controller [0c03]: Intel Corporation Alder Lake-N Thunderbolt 4 USB Controller [8086:464e]
IOMMU Group 3 00:14.0 USB controller [0c03]: Intel Corporation Alder Lake-N PCH USB 3.2 xHCI Host Controller [8086:54ed]
IOMMU Group 3 00:14.2 RAM memory [0500]: Intel Corporation Alder Lake-N PCH Shared SRAM [8086:54ef]
IOMMU Group 4 00:16.0 Communication controller [0780]: Intel Corporation Alder Lake-N PCH HECI Controller [8086:54e0]
IOMMU Group 5 00:17.0 SATA controller [0106]: Intel Corporation Alder Lake-N SATA AHCI Controller [8086:54d3]
IOMMU Group 6 00:1a.0 SD Host controller [0805]: Intel Corporation Device [8086:54c4]
IOMMU Group 7 00:1c.0 PCI bridge [0604]: Intel Corporation Device [8086:54ba]
IOMMU Group 8 00:1c.3 PCI bridge [0604]: Intel Corporation Device [8086:54bb]
IOMMU Group 9 00:1c.6 PCI bridge [0604]: Intel Corporation Device [8086:54be]
IOMMU Group 10 00:1d.0 PCI bridge [0604]: Intel Corporation Alder Lake-N PCI Express Root Port [8086:54b0]
IOMMU Group 11 00:1d.2 PCI bridge [0604]: Intel Corporation Alder Lake-N PCI Express Root Port [8086:54b2]
IOMMU Group 12 00:1f.0 ISA bridge [0601]: Intel Corporation Alder Lake-N PCH eSPI Controller [8086:5481]
IOMMU Group 12 00:1f.3 Audio device [0403]: Intel Corporation Alder Lake-N PCH High Definition Audio Controller [8086:54c8]
IOMMU Group 12 00:1f.4 SMBus [0c05]: Intel Corporation Alder Lake-N SMBus [8086:54a3]
IOMMU Group 12 00:1f.5 Serial bus controller [0c80]: Intel Corporation Alder Lake-N SPI (flash) Controller [8086:54a4]
IOMMU Group 13 01:00.0 Non-Volatile memory controller [0108]: Seagate Technology PLC FireCuda 520 SSD [1bb1:5016] (rev 01)
IOMMU Group 14 02:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I226-V [8086:125c] (rev 04)
IOMMU Group 15 03:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I226-V [8086:125c] (rev 04)
IOMMU Group 16 04:00.0 Ethernet controller [0200]: Aquantia Corp. AQC113C NBase-T/IEEE 802.3an Ethernet Controller [Marvell Scalable mGig] [1d6a:14c0] (rev 03)
IOMMU Group 17 05:00.0 SATA controller [0106]: JMicron Technology Corp. JMB58x AHCI SATA controller [197b:0585]

Detailed PCIe Device Information

lspci -v

root@vm2:~# lspci -v
00:00.0 Host bridge: Intel Corporation Device 461c
DeviceName: Onboard - Other
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IOMMU group 1
Capabilities: [e0] Vendor Specific Information: Len=14
Kernel driver in use: igen6_edac
Kernel modules: igen6_edac

00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics] (prog-if 00 [VGA controller])
DeviceName: Onboard - Video
Subsystem: Intel Corporation Alder Lake-N [UHD Graphics]
Flags: bus master, fast devsel, latency 0, IRQ 168, IOMMU group 0
Memory at 60e7000000 (64-bit, non-prefetchable) [size=16M]
Memory at 4000000000 (64-bit, prefetchable) [size=256M]
I/O ports at 8000 [size=64]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: [40] Vendor Specific Information: Len=0c
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [100] Process Address Space ID (PASID)
Capabilities: [200] Address Translation Service (ATS)
Capabilities: [300] Page Request Interface (PRI)
Capabilities: [320] Single Root I/O Virtualization (SR-IOV)
Kernel driver in use: i915
Kernel modules: i915, xe

00:0d.0 USB controller: Intel Corporation Alder Lake-N Thunderbolt 4 USB Controller (prog-if 30 [XHCI])
DeviceName: Onboard - Other
Subsystem: Intel Corporation Alder Lake-N Thunderbolt 4 USB Controller
Flags: bus master, medium devsel, latency 0, IRQ 157, IOMMU group 2
Memory at 60e8110000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [70] Power Management version 2
Capabilities: [80] MSI: Enable+ Count=8/8 Maskable- 64bit+
Capabilities: [90] Vendor Specific Information: Len=14
Capabilities: [b0] Vendor Specific Information: Len=00
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci

00:14.0 USB controller: Intel Corporation Alder Lake-N PCH USB 3.2 xHCI Host Controller (prog-if 30 [XHCI])
DeviceName: Onboard - Other
Subsystem: Intel Corporation Alder Lake-N PCH USB 3.2 xHCI Host Controller
Flags: bus master, medium devsel, latency 0, IRQ 162, IOMMU group 3
Memory at 60e8100000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [70] Power Management version 2
Capabilities: [80] MSI: Enable+ Count=8/8 Maskable- 64bit+
Capabilities: [90] Vendor Specific Information: Len=14
Capabilities: [b0] Vendor Specific Information: Len=00
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci

00:14.2 RAM memory: Intel Corporation Alder Lake-N PCH Shared SRAM
DeviceName: Onboard - Other
Subsystem: Intel Corporation Alder Lake-N PCH Shared SRAM
Flags: fast devsel, IOMMU group 3
Memory at 60e8124000 (64-bit, non-prefetchable) [disabled] [size=16K]
Memory at 60e812b000 (64-bit, non-prefetchable) [disabled] [size=4K]
Capabilities: [80] Power Management version 3

00:16.0 Communication controller: Intel Corporation Alder Lake-N PCH HECI Controller
DeviceName: Onboard - Other
Subsystem: Intel Corporation Alder Lake-N PCH HECI Controller
Flags: bus master, fast devsel, latency 0, IRQ 167, IOMMU group 4
Memory at 60e812a000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [a4] Vendor Specific Information: Len=14
Kernel driver in use: mei_me
Kernel modules: mei_me

00:17.0 SATA controller: Intel Corporation Alder Lake-N SATA AHCI Controller (prog-if 01 [AHCI 1.0])
DeviceName: Onboard - SATA
Subsystem: Intel Corporation Alder Lake-N SATA AHCI Controller
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 127, IOMMU group 5
Memory at 83600000 (32-bit, non-prefetchable) [size=8K]
Memory at 83603000 (32-bit, non-prefetchable) [size=256]
I/O ports at 8090 [size=8]
I/O ports at 8080 [size=4]
I/O ports at 8060 [size=32]
Memory at 83602000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [70] Power Management version 3
Capabilities: [a8] SATA HBA v1.0
Kernel driver in use: ahci
Kernel modules: ahci

00:1a.0 SD Host controller: Intel Corporation Device 54c4 (prog-if 01)
DeviceName: Onboard - Other
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 16, IOMMU group 6
Memory at 60e8129000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] Vendor Specific Information: Len=14
Kernel driver in use: sdhci-pci
Kernel modules: sdhci_pci

00:1c.0 PCI bridge: Intel Corporation Device 54ba (prog-if 00 [Normal decode])
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 122, IOMMU group 7
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 7000-7fff [size=4K] [16-bit]
Memory behind bridge: 82c00000-835fffff [size=10M] [32-bit]
Prefetchable memory behind bridge: 4010000000-40101fffff [size=2M] [32-bit]
Capabilities: [40] Express Root Port (Slot+), MSI 00
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [90] Subsystem: Intel Corporation Device 7270
Capabilities: [a0] Power Management version 3
Capabilities: [100] Advanced Error Reporting
Capabilities: [220] Access Control Services
Capabilities: [150] Precision Time Measurement
Capabilities: [a30] Secondary PCI Express
Kernel driver in use: pcieport

00:1c.3 PCI bridge: Intel Corporation Device 54bb (prog-if 00 [Normal decode])
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 123, IOMMU group 8
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
I/O behind bridge: 6000-6fff [size=4K] [16-bit]
Memory behind bridge: 82200000-82bfffff [size=10M] [32-bit]
Prefetchable memory behind bridge: 4010200000-40103fffff [size=2M] [32-bit]
Capabilities: [40] Express Root Port (Slot+), MSI 00
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [90] Subsystem: Intel Corporation Device 7270
Capabilities: [a0] Power Management version 3
Capabilities: [100] Advanced Error Reporting
Capabilities: [220] Access Control Services
Capabilities: [150] Precision Time Measurement
Capabilities: [a30] Secondary PCI Express
Kernel driver in use: pcieport

00:1c.6 PCI bridge: Intel Corporation Device 54be (prog-if 00 [Normal decode])
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 124, IOMMU group 9
Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: 5000-5fff [size=4K] [16-bit]
Memory behind bridge: 81800000-821fffff [size=10M] [32-bit]
Prefetchable memory behind bridge: 4010400000-40105fffff [size=2M] [32-bit]
Capabilities: [40] Express Root Port (Slot+), MSI 00
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [90] Subsystem: Intel Corporation Device 7270
Capabilities: [a0] Power Management version 3
Capabilities: [100] Advanced Error Reporting
Capabilities: [220] Access Control Services
Capabilities: [150] Precision Time Measurement
Capabilities: [a30] Secondary PCI Express
Kernel driver in use: pcieport

00:1d.0 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port (prog-if 00 [Normal decode])
Subsystem: Intel Corporation Alder Lake-N PCI Express Root Port
Flags: bus master, fast devsel, latency 0, IRQ 125, IOMMU group 10
Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
I/O behind bridge: 4000-4fff [size=4K] [16-bit]
Memory behind bridge: 80400000-80dfffff [size=10M] [32-bit]
Prefetchable memory behind bridge: 4010600000-40107fffff [size=2M] [32-bit]
Capabilities: [40] Express Root Port (Slot+), MSI 00
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [90] Subsystem: Intel Corporation Alder Lake-N PCI Express Root Port
Capabilities: [a0] Power Management version 3
Capabilities: [100] Advanced Error Reporting
Capabilities: [220] Access Control Services
Capabilities: [150] Precision Time Measurement
Capabilities: [a30] Secondary PCI Express
Kernel driver in use: pcieport

00:1d.2 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port (prog-if 00 [Normal decode])
Subsystem: Intel Corporation Alder Lake-N PCI Express Root Port
Flags: bus master, fast devsel, latency 0, IRQ 126, IOMMU group 11
Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
I/O behind bridge: 3000-3fff [size=4K] [16-bit]
Memory behind bridge: 80e00000-817fffff [size=10M] [32-bit]
Prefetchable memory behind bridge: 4010800000-40109fffff [size=2M] [32-bit]
Capabilities: [40] Express Root Port (Slot+), MSI 00
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [90] Subsystem: Intel Corporation Alder Lake-N PCI Express Root Port
Capabilities: [a0] Power Management version 3
Capabilities: [100] Advanced Error Reporting
Capabilities: [220] Access Control Services
Capabilities: [150] Precision Time Measurement
Capabilities: [a30] Secondary PCI Express
Kernel driver in use: pcieport

00:1f.0 ISA bridge: Intel Corporation Alder Lake-N PCH eSPI Controller
DeviceName: Onboard - Other
Subsystem: Intel Corporation Alder Lake-N PCH eSPI Controller
Flags: bus master, fast devsel, latency 0, IOMMU group 12

00:1f.3 Audio device: Intel Corporation Alder Lake-N PCH High Definition Audio Controller
DeviceName: Onboard - Sound
Subsystem: Intel Corporation Alder Lake-N PCH High Definition Audio Controller
Flags: bus master, fast devsel, latency 32, IRQ 169, IOMMU group 12
Memory at 60e8120000 (64-bit, non-prefetchable) [size=16K]
Memory at 60e8000000 (64-bit, non-prefetchable) [size=1M]
Capabilities: [50] Power Management version 3
Capabilities: [80] Vendor Specific Information: Len=14
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl

00:1f.4 SMBus: Intel Corporation Alder Lake-N SMBus
DeviceName: Onboard - Other
Subsystem: Intel Corporation Alder Lake-N SMBus
Flags: medium devsel, IRQ 16, IOMMU group 12
Memory at 60e8128000 (64-bit, non-prefetchable) [size=256]
I/O ports at efa0 [size=32]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801

00:1f.5 Serial bus controller: Intel Corporation Alder Lake-N SPI (flash) Controller
DeviceName: Onboard - Other
Subsystem: Intel Corporation Alder Lake-N SPI (flash) Controller
Flags: fast devsel, IOMMU group 12
Memory at 83604000 (32-bit, non-prefetchable) [size=4K]
Kernel driver in use: intel-spi
Kernel modules: spi_intel_pci

01:00.0 Non-Volatile memory controller: Seagate Technology PLC FireCuda 520 SSD (rev 01) (prog-if 02 [NVM Express])
Subsystem: Seagate Technology PLC FireCuda 520/IronWolf 525 SSD
Flags: bus master, fast devsel, latency 0, IRQ 18, IOMMU group 13
Memory at 82c00000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [80] Express Endpoint, MSI 00
Capabilities: [d0] MSI-X: Enable+ Count=9 Masked-
Capabilities: [e0] MSI: Enable- Count=1/8 Maskable- 64bit+
Capabilities: [f8] Power Management version 3
Capabilities: [100] Latency Tolerance Reporting
Capabilities: [110] L1 PM Substates
Capabilities: [128] Alternative Routing-ID Interpretation (ARI)
Capabilities: [1e0] Data Link Feature
Capabilities: [200] Advanced Error Reporting
Capabilities: [300] Secondary PCI Express
Kernel driver in use: nvme
Kernel modules: nvme

02:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)
Subsystem: Intel Corporation Ethernet Controller I226-V
Flags: bus master, fast devsel, latency 0, IRQ 19, IOMMU group 14
Memory at 82300000 (32-bit, non-prefetchable) [size=1M]
Memory at 82400000 (32-bit, non-prefetchable) [size=16K]
Expansion ROM at 82200000 [disabled] [size=1M]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [70] MSI-X: Enable+ Count=5 Masked-
Capabilities: [a0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number 00-e2-59-ff-ff-01-88-09
Capabilities: [1c0] Latency Tolerance Reporting
Capabilities: [1f0] Precision Time Measurement
Capabilities: [1e0] L1 PM Substates
Kernel driver in use: igc
Kernel modules: igc

03:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)
Subsystem: Intel Corporation Ethernet Controller I226-V
Flags: bus master, fast devsel, latency 0, IRQ 18, IOMMU group 15
Memory at 81900000 (32-bit, non-prefetchable) [size=1M]
Memory at 81a00000 (32-bit, non-prefetchable) [size=16K]
Expansion ROM at 81800000 [disabled] [size=1M]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [70] MSI-X: Enable+ Count=5 Masked-
Capabilities: [a0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number 00-e2-59-ff-ff-01-88-0a
Capabilities: [1c0] Latency Tolerance Reporting
Capabilities: [1f0] Precision Time Measurement
Capabilities: [1e0] L1 PM Substates
Kernel driver in use: igc
Kernel modules: igc

04:00.0 Ethernet controller: Aquantia Corp. AQC113C NBase-T/IEEE 802.3an Ethernet Controller [Marvell Scalable mGig] (rev 03)
Subsystem: Aquantia Corp. AQC113C NBase-T/IEEE 802.3an Ethernet Controller [Marvell Scalable mGig]
Flags: bus master, fast devsel, latency 0, IRQ 16, IOMMU group 16
Memory at 80800000 (64-bit, non-prefetchable) [size=512K]
Memory at 808a0000 (64-bit, non-prefetchable) [size=4K]
Memory at 80400000 (64-bit, non-prefetchable) [size=4M]
Expansion ROM at 80880000 [disabled] [size=128K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/32 Maskable+ 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [b0] MSI-X: Enable+ Count=32 Masked-
Capabilities: [d0] Vital Product Data
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Virtual Channel
Capabilities: [168] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [178] Secondary PCI Express
Capabilities: [198] Physical Layer 16.0 GT/s
Capabilities: [1bc] Lane Margining at the Receiver
Capabilities: [1d4] Latency Tolerance Reporting
Capabilities: [1dc] L1 PM Substates
Capabilities: [1ec] Vendor Specific Information: ID=0002 Rev=4 Len=100
Capabilities: [2ec] Data Link Feature
Capabilities: [2f8] Precision Time Measurement
Capabilities: [304] Vendor Specific Information: ID=0003 Rev=1 Len=054
Kernel driver in use: atlantic
Kernel modules: atlantic

05:00.0 SATA controller: JMicron Technology Corp. JMB58x AHCI SATA controller (prog-if 01 [AHCI 1.0])
Subsystem: JMicron Technology Corp. JMB58x AHCI SATA controller
Flags: bus master, fast devsel, latency 0, IRQ 128, IOMMU group 17
I/O ports at 3200 [size=128]
I/O ports at 3180 [size=128]
I/O ports at 3100 [size=128]
I/O ports at 3080 [size=128]
I/O ports at 3000 [size=128]
Memory at 80e10000 (32-bit, non-prefetchable) [size=8K]
Expansion ROM at 80e00000 [disabled] [size=64K]
Capabilities: [80] Power Management version 3
Capabilities: [90] MSI: Enable+ Count=8/8 Maskable- 64bit+
Capabilities: [c0] Express Legacy Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [150] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [160] Power Budgeting
Capabilities: [1b8] Latency Tolerance Reporting
Capabilities: [300] Secondary PCI Express
Capabilities: [900] L1 PM Substates
Kernel driver in use: ahci
Kernel modules: ahci

dmidecode command

root@vm2:~# dmidecode -t baseboard

Getting SMBIOS data from sysfs.
SMBIOS 3.5.0 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Default string
Product Name: Default string
Version: Default string
Serial Number: Default string
Asset Tag: Default string
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Default string
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0

Handle 0x000E, DMI type 10, 6 bytes
On Board Device Information
Type: Unknown
Status: Enabled
Description: Device 1

Handle 0x0038, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Other
Type: Other
Status: Enabled
Type Instance: 1
Bus Address: 0000:00:00.0

Handle 0x0039, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Video
Type: Video
Status: Enabled
Type Instance: 1
Bus Address: 0000:00:02.0

Handle 0x003A, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Other
Type: Other
Status: Enabled
Type Instance: 2
Bus Address: 0000:00:0d.0

Handle 0x003B, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Other
Type: Other
Status: Enabled
Type Instance: 3
Bus Address: 0000:00:14.0

Handle 0x003C, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Other
Type: Other
Status: Enabled
Type Instance: 4
Bus Address: 0000:00:14.2

Handle 0x003D, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Other
Type: Other
Status: Enabled
Type Instance: 5
Bus Address: 0000:00:16.0

Handle 0x003E, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - SATA
Type: SATA Controller
Status: Enabled
Type Instance: 1
Bus Address: 0000:00:17.0

Handle 0x003F, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Other
Type: Other
Status: Enabled
Type Instance: 6
Bus Address: 0000:00:1a.0

Handle 0x0040, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Other
Type: Other
Status: Enabled
Type Instance: 7
Bus Address: 0000:00:1f.0

Handle 0x0041, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Sound
Type: Sound
Status: Enabled
Type Instance: 1
Bus Address: 0000:00:1f.3

Handle 0x0042, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Other
Type: Other
Status: Enabled
Type Instance: 8
Bus Address: 0000:00:1f.4

Handle 0x0043, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard - Other
Type: Other
Status: Enabled
Type Instance: 9
Bus Address: 0000:00:1f.5

Review – Topton N100 NAS Motherboard AliExpress – BIOS Deep Dive

TopTon – 1*10G 2*i226-V 2.5G Intel N100 6-Bay NAS Motherboard 6*SATA3.0 2*NVMe 1*DDR5 4800MHz Soft Router Firewall ITX Mainboard

Introduction

After unboxing the Topton N100 NAS motherboard, it’s time to explore what’s available in its BIOS. I’ll walk you through all the main settings and provide an overview of the various tabs, from Main to Save & Exit. Whether you’re curious about what options are available or planning to use this board for a NAS, firewall, or custom build, this guide will give you a better understanding of the BIOS and its features.

Main Tab

The Main tab offers an overview of the system, showing the basic specs like CPU, RAM, and storage devices connected to the motherboard.

Topton N100 NAS motherboard BIOS Main Tab

Advanced Tab

The Advanced tab provides control over power management, CPU configurations, and system options that are crucial for optimizing your motherboard.

Topton N100 NAS motherboard BIOS Advanced Tab

Chipset Tab

In the Chipset tab, you can adjust settings for the Intel N100 chipset, including memory configuration and integrated peripherals.

Topton N100 NAS motherboard BIOS Chipset Tab

Security Tab

Here, you’ll configure BIOS passwords and security features, which are important for ensuring the integrity of your system.

Topton N100 NAS motherboard BIOS Security Tab

Boot Tab

Control your boot order, enabling or disabling boot devices, and set up your boot priority for efficient startup.

Topton N100 NAS motherboard BIOS Boot Tab

Save & Exit Tab

Once you’ve adjusted all your settings, this is where you save your changes and exit the BIOS. I’ll guide you through how to ensure your configurations are properly saved.

Topton N100 NAS motherboard BIOS Save & Exit Tab

Emby – Running Emby service as different user

Step 1 – Stop The Emby-Server Service

systemctl stop emby-server

Step 2 – Check The Emby-Server Service have safely stopped

systemctl status emby-server

important – ensure the emby server has stopped and shows inactive (dead)

Step 3 – Amend the emby server service files
nano /usr/lib/systemd/system/emby-server.service

important – Replace “newuser” with the user you would like to use.

Change ‘User=emby’ to ‘User=newuser’

Save emby-server.service CTRL + O then Enter

Step 4 – change emby folder’s permission
chown -R newuser:newuser /var/lib/emby/

Step 5 – reload and check the emby server service

sudo systemctl daemon-reload

systemctl start emby-server
systemctl status emby-server

Checking the status of emby you should see active (Running) shown in green below.

Proxmox – Emby Intel GPU passthrough

Important: This is for use with Debian 12 (BookWorm) / Proxmox (8.2.7).

This guide is for the setup of an Intel iGPU or dedicated GPU passthrough on Proxmox between an LXC / CT linux system.

Run these commands on both the proxmox host and Emby CT. I have this method working on successfully on both a N100 iGPU and Sparkle Intel Arc A310 ECO

Step 1 – Adding driver download sources
nano /etc/apt/sources.list

add the following

non-free firmwares
deb http://deb.debian.org/debian bookworm non-free-firmware

non-free drivers and components
deb http://deb.debian.org/debian bookworm non-free

Step 2 – Installing the GPU Driver

Install the following
apt update && apt install intel-media-va-driver-non-free intel-gpu-tools

Step 3 – Confirm GPU’s major number’s for fb0 and renderD128

Important: Note down your major numbers from your output my example numbers may not be the same as yours and if this are incorrect the gpu will not work.

cd /dev

Use the following command to list all files and folders in the current directory

ls -lah

Make a note of the numbers in bold for fb0 (If it exists)

crw-rw---- 1 root video 29, 0 Aug 30 21:19 fb0

Navigate to the dri folder using the following command

cd /dev/dri

ls -lah

Make a note of the the number in bold for renderD128

crwxrwxrwx 1 root render 226, 128 Aug 30 21:19 renderD128

Step 4 – Amend Proxmox CT/LXC config to allow access to the GPU

Now we will add the numbers that were noted down to our CT config on proxmox for Emby – Important amend the command below with your CT’s ID number shown the proxmox webgui (Example Below) Mine is 3006

Now open your CT’s config files on your Proxmox host.

nano /etc/pve/lxc/3006.conf

Add the following lines to the file and save using CTRL + O and then enter.
lxc.cgroup2.devices.allow: c 29:* rwm
lxc.cgroup2.devices.allow: c 226:* rwm
lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.apparmor.profile: unconfined

Step 5 – Adding Persistent GPU Permissions

Important: Giving 777 permissions to your GPU is not considered best practice from a security standpoint. While this approach works, there are more secure methods you can follow. However, I understand the risks and accept them on my system. do this at your own risk…

Adding Persistent GPU Permissions on proxmox host so the GPU is accessible to the CT after reboot.

nano /etc/udev/rules.d/99-renderD128-permissions.rules
KERNEL=="renderD128", MODE="0777"

udevadm control --reload-rules

udevadm trigger

How to Test?

Run the following command on your proxmox shell (This is basically task manager for your GPU)

intel_gpu_top

Step 6 – LXC/CT GPU Driver installation

Repeat Steps 1 and 2 inside your LXC/CT/Emby Shell

How to Test GPU in Emby?

Login to Emby and navigate on the admin webpage to Server > Transcoding. If you see your GPU and a list of Hardware Decoders its likely working. Test forcing something to Trancode by changing the bitrate and monitor the CPU usage and using intel_gpu_top to see if there is any ffmpeg processes running on the GPU

If your not seeing anything on this page I suggest giving your server a little nap (aka, a reboot) see if that makes the GPU driver jumps into life.

Proxmox – Persistent GPU Permission

Important: Giving 777 permissions to your GPU is not considered best practice from a security standpoint. While this approach works, there are more secure methods you can follow. However, I understand the risks and accept them on my system. do this at your own risk…

If you are having issues with GPU transcoding in emby and your GPU permission keep changing after reboot use the following commands to fix the permission.

Run the following command inside your proxmox shell.

nano /etc/udev/rules.d/99-renderD128-permissions.rules

Add the following to the file

KERNEL=="renderD128", MODE="0777"

CTRL + O then Enter to save the changes to the file.

Now run the following command

udevadm control --reload-rules

Run the following command

udevadm trigger

© 2024 bytesmith17

Theme by Anders NorénUp ↑