<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Uncategorized on kenops</title><link>https://www.kenops.io/categories/uncategorized/</link><description>Recent content in Uncategorized on kenops</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 06 Apr 2025 19:05:38 +0000</lastBuildDate><atom:link href="https://www.kenops.io/categories/uncategorized/index.xml" rel="self" type="application/rss+xml"/><item><title>Upgrade Proxmox ZFS boot drive with mirroring</title><link>https://www.kenops.io/posts/upgrade-proxmox-zfs-boot-drive-with-mirroring/</link><pubDate>Sun, 06 Apr 2025 19:05:38 +0000</pubDate><guid>https://www.kenops.io/posts/upgrade-proxmox-zfs-boot-drive-with-mirroring/</guid><description>&lt;p&gt;From &lt;a href="https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#chapter"&gt;https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#chapter&lt;/a&gt;_zfs&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# zpool status
pool: rpool
state: ONLINE
scan: resilvered 9.32M in 00:00:00 with 0 errors on Thu Apr 3 23:20:51 2025
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
nvme-eui.0025388581b66796-part3 ONLINE 0 0 0
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1.8T 0 disk
--sda1 8:1 0 1.8T 0 part
zd16 230:16 0 32G 0 disk
--zd16p1 230:17 0 100M 0 part
--zd16p2 230:18 0 892M 0 part
--zd16p3 230:19 0 31G 0 part
zd32 230:32 0 10G 0 disk
--zd32p1 230:33 0 9.5G 0 part
--zd32p2 230:34 0 1K 0 part
--zd32p5 230:37 0 510M 0 part
nvme0n1 259:0 0 476.9G 0 disk
--nvme0n1p1 259:1 0 1007K 0 part
--nvme0n1p2 259:2 0 1G 0 part
--nvme0n1p3 259:3 0 475.9G 0 part
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="duplicate-the-partition-tables-on-the-new-drive-devsda"&gt;Duplicate the partition tables on the new drive (/dev/sda)&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# sgdisk /dev/nvme0n1 -R /dev/sda
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="change-the-guid-so-they-are-not-the-same"&gt;change the GUID so they are not the same&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# sgdisk -G /dev/sda
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="use-parted-to-fdisk-to-expand-partition-3-into-the-full-capacity-of-the-new-disk"&gt;Use parted to fdisk to expand partition 3 into the full capacity of the new disk&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# fdisk /dev/sda
Welcome to fdisk (util-linux 2.38.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: SSD
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 126F0F8E-624E-4F4D-8CD4-89F8B2EDE74A
Device Start End Sectors Size Type
/dev/sda1 34 2047 2014 1007K BIOS boot
/dev/sda2 2048 2099199 2097152 1G EFI System
/dev/sda3 2099200 1000215182 998115983 475.9G Solaris /usr &amp;amp; Apple ZFS
Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 has been deleted.
Command (m for help): n
Partition number (3-128, default 3): 3
First sector (2099200-3907029134, default 2099200):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-3907029134, default 3907028991):
Created a new partition 3 of type &amp;#39;Linux filesystem&amp;#39; and of size 1.8 TiB.
Command (m for help): p
Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: SSD
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 126F0F8E-624E-4F4D-8CD4-89F8B2EDE74A
Device Start End Sectors Size Type
/dev/sda1 34 2047 2014 1007K BIOS boot
/dev/sda2 2048 2099199 2097152 1G EFI System
/dev/sda3 2099200 3907028991 3904929792 1.8T Linux filesystem
Command (m for help):
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="change-the-label-back-to-solaris-usr--apple-zfs"&gt;Change the label back to &amp;ldquo;Solaris /usr &amp;amp; Apple ZFS&amp;rdquo;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Command (m for help): t
Partition number (1-3, default 3): 3
Partition type or alias (type L to list all): 157
Changed type of partition &amp;#39;Linux filesystem&amp;#39; to &amp;#39;Solaris /usr &amp;amp; Apple ZFS&amp;#39;.
Command (m for help): p
Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: SSD
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 126F0F8E-624E-4F4D-8CD4-89F8B2EDE74A
Device Start End Sectors Size Type
/dev/sda1 34 2047 2014 1007K BIOS boot
/dev/sda2 2048 2099199 2097152 1G EFI System
/dev/sda3 2099200 3907028991 3904929792 1.8T Solaris /usr &amp;amp; Apple ZFS
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="check-what-type-of-boot-partition-you-have-grub--eufi"&gt;Check what type of boot partition you have (Grub / EUFI)&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# proxmox-boot-tool status
Re-executing &amp;#39;/usr/sbin/proxmox-boot-tool&amp;#39; in new private mount namespace..
System currently booted with uefi
F0A5-6343 is configured with: uefi (versions: 6.8.12-4-pve, 6.8.12-9-pve)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="copy-boot-partition-detail-to-the-new-disk"&gt;Copy boot partition detail to the new disk&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# proxmox-boot-tool format /dev/sda2
UUID=&amp;#34;&amp;#34; SIZE=&amp;#34;1073741824&amp;#34; FSTYPE=&amp;#34;&amp;#34; PARTTYPE=&amp;#34;c12a7328-f81f-11d2-ba4b-00a0c93ec93b&amp;#34; PKNAME=&amp;#34;sda&amp;#34; MOUNTPOINT=&amp;#34;&amp;#34;
Formatting &amp;#39;/dev/sda2&amp;#39; as vfat..
mkfs.fat 4.2 (2021-01-31)
Done.
# proxmox-boot-tool init /dev/sda2
Re-executing &amp;#39;/usr/sbin/proxmox-boot-tool&amp;#39; in new private mount namespace..
UUID=&amp;#34;F84D-06C6&amp;#34; SIZE=&amp;#34;1073741824&amp;#34; FSTYPE=&amp;#34;vfat&amp;#34; PARTTYPE=&amp;#34;c12a7328-f81f-11d2-ba4b-00a0c93ec93b&amp;#34; PKNAME=&amp;#34;sda&amp;#34; MOUNTPOINT=&amp;#34;&amp;#34;
Mounting &amp;#39;/dev/sda2&amp;#39; on &amp;#39;/var/tmp/espmounts/F84D-06C6&amp;#39;.
Installing systemd-boot..
Created &amp;#34;/var/tmp/espmounts/F84D-06C6/EFI/systemd&amp;#34;.
Created &amp;#34;/var/tmp/espmounts/F84D-06C6/EFI/BOOT&amp;#34;.
Created &amp;#34;/var/tmp/espmounts/F84D-06C6/loader&amp;#34;.
Created &amp;#34;/var/tmp/espmounts/F84D-06C6/loader/entries&amp;#34;.
Created &amp;#34;/var/tmp/espmounts/F84D-06C6/EFI/Linux&amp;#34;.
Copied &amp;#34;/usr/lib/systemd/boot/efi/systemd-bootx64.efi&amp;#34; to &amp;#34;/var/tmp/espmounts/F84D-06C6/EFI/systemd/systemd-bootx64.efi&amp;#34;.
Copied &amp;#34;/usr/lib/systemd/boot/efi/systemd-bootx64.efi&amp;#34; to &amp;#34;/var/tmp/espmounts/F84D-06C6/EFI/BOOT/BOOTX64.EFI&amp;#34;.
Random seed file /var/tmp/espmounts/F84D-06C6/loader/random-seed successfully written (32 bytes).
Created EFI boot entry &amp;#34;Linux Boot Manager&amp;#34;.
Configuring systemd-boot..
Unmounting &amp;#39;/dev/sda2&amp;#39;.
Adding &amp;#39;/dev/sda2&amp;#39; to list of synced ESPs..
Refreshing kernels and initrds..
Running hook script &amp;#39;proxmox-auto-removal&amp;#39;..
Running hook script &amp;#39;zz-proxmox-boot&amp;#39;..
Copying and configuring kernels on /dev/disk/by-uuid/F0A5-6343
Copying kernel and creating boot-entry for 6.8.12-4-pve
Copying kernel and creating boot-entry for 6.8.12-9-pve
Copying and configuring kernels on /dev/disk/by-uuid/F84D-06C6
Copying kernel and creating boot-entry for 6.8.12-4-pve
Copying kernel and creating boot-entry for 6.8.12-9-pve
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="add-the-new-disk-to-rpool-as-a-mirror-device-important---you-have-to-use-partition-3-not-the-just-the-disk-designation"&gt;Add the new disk to rpool as a mirror device. Important - you have to use partition 3, not the just the disk designation.&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# zpool status
pool: rpool
state: ONLINE
scan: resilvered 9.32M in 00:00:00 with 0 errors on Thu Apr 3 23:20:51 2025
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
nvme-eui.0025388581b66796-part3 ONLINE 0 0 0
errors: No known data errors
# zpool attach rpool nvme-eui.0025388581b66796-part3 /dev/sda3
# zpool status
pool: rpool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Fri Apr 4 03:35:18 2025
378G / 378G scanned, 853M / 378G issued at 35.5M/s
841M resilvered, 0.22% done, 03:01:01 to go
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nvme-eui.0025388581b66796-part3 ONLINE 0 0 0
sda3 ONLINE 0 0 0 (resilvering)
errors: No known data errors
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# zpool status
pool: rpool
state: ONLINE
scan: resilvered 371G in 03:10:09 with 0 errors on Sat Apr 5 11:24:50 2025
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nvme-eui.0025388581b65b82-part3 ONLINE 0 0 0
sda3 ONLINE 0 0 0
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="once-synced-up-power-off-and-replace-the-old-drive-with-the-new-drive-system-should-still-boot-if-uefi"&gt;Once synced up, Power off and replace the old drive with the new drive.  System should still boot if UEFI.&lt;/h3&gt;
&lt;h3 id="once-booted-youll-have-a-degraded-mirror-you-can-safely-remove-the-old-drive"&gt;Once booted, you&amp;rsquo;ll have a degraded mirror,  you can safely remove the old drive&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# zpool status
pool: rpool
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using &amp;#39;zpool replace&amp;#39;.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
scan: resilvered 371G in 03:10:09 with 0 errors on Sat Apr 5 11:24:50 2025
config:
NAME STATE READ WRITE CKSUM
rpool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
14929228184534084580 UNAVAIL 0 0 0 was /dev/disk/by-id/nvme-eui.0025388581b65b82-part3
nvme0n1p3 ONLINE 0 0 0
errors: No known data errors
# zpool detach rpool 14929228184534084580
# zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
rpool 472G 367G 105G - 1.35T 21% 77% 1.00x ONLINE -
If you expanded partition 3 to be larger, tell zfs that you want to expand into the available space.
# zpool set autoexpand=on rpool
# zpool online -e rpool nvme0n1p3
# zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
rpool 1.82T 367G 1.46T - - 5% 19% 1.00x ONLINE -
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Proxmox GPU Passthrough for LXC for Docker, for apps WebODM, immich</title><link>https://www.kenops.io/posts/proxmox-gpu-passthrough-for-lxc-for-docker-for-apps-webodm-immich/</link><pubDate>Sun, 30 Mar 2025 16:37:08 +0000</pubDate><guid>https://www.kenops.io/posts/proxmox-gpu-passthrough-for-lxc-for-docker-for-apps-webodm-immich/</guid><description>&lt;h2 id="proxmox-gpu-passthrough-for-docker-using-lxc-to-host-webodm-with-clusterodm"&gt;Proxmox GPU Passthrough for Docker using LXC to host WebODM with ClusterODM&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nvidia.com/en-us/drivers/unix/"&gt;NVIDIA Drivers&lt;/a&gt;, &lt;a href="https://www.nvidia.com/en-us/drivers/"&gt;NVIDIA Driver Search&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html"&gt;NVIDIA Container Toolkit Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ske5074/nvidia-pve-lxc-passthrough"&gt;Ansible Playbook that runs the recommendations below&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://clait.sh/posts/gpu-passthrough-proxmox/"&gt;GPU Passthrough on Proxmox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.opendronemap.org/t/how-i-set-up-clusterodm-documentation/7068"&gt;ClusterODM Setup Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.opendronemap.org/t/using-specific-gpu-with-nodeodm/12983"&gt;Using Specific GPU with NodeODM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.opendronemap.org/clusterodm/"&gt;ClusterODM Project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="remove-old-nvidia-drivers"&gt;Remove Old NVIDIA Drivers&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;List existing NVIDIA or CUDA packages:
&lt;code&gt;apt list --installed | egrep -i &amp;quot;nvidia|cuda&amp;quot; | cut -d/ -f1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If drivers are listed, uninstall the current NVIDIA runfile driver:
&lt;code&gt;sudo ./NVIDIA-Linux-*.run --uninstall&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Re-check installed packages:
&lt;code&gt;apt list --installed | egrep -i &amp;quot;nvidia|cuda&amp;quot; | cut -d/ -f1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If any packages remain, remove them:
&lt;code&gt;apt list --installed | egrep -i &amp;quot;nvidia|cuda&amp;quot; | cut -d/ -f1 | xargs apt remove -y&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id="setting-up-gpu-passthrough-on-proxmox-server"&gt;Setting Up GPU Passthrough on Proxmox Server&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Install required packages:
&lt;code&gt;apt install pve-headers dkms pciutils&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Using Fit-statUSB to provide visual server health in my homelab using proxmox</title><link>https://www.kenops.io/posts/using-fit-statusb-to-provide-visual-server-health-in-my-homelab-using-proxmox/</link><pubDate>Mon, 17 Jun 2024 13:58:37 +0000</pubDate><guid>https://www.kenops.io/posts/using-fit-statusb-to-provide-visual-server-health-in-my-homelab-using-proxmox/</guid><description>&lt;p&gt;&lt;a href="https://www.amazon.com/Compulab-FIT-STATUSB-fit-statUSB/dp/B07CKFLQ5V"&gt;https://www.amazon.com/Compulab-FIT-STATUSB-fit-statUSB/dp/B07CKFLQ5V&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.amazon.com/Compulab-FIT-STATUSB-fit-statUSB/dp/B07CKFLQ5V"&gt;https://www.amazon.com/Compulab-FIT-STATUSB-fit-statUSB/dp/B07CKFLQ5V&lt;/a&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#!/bin/bash
# Define color variables
BLUE=&amp;#34;000011&amp;#34;
RED=&amp;#34;010000&amp;#34;
YELLOW=&amp;#34;050500&amp;#34;
GREEN=&amp;#34;000100&amp;#34;
WHITE=&amp;#34;111111&amp;#34;
OFF=&amp;#34;000000&amp;#34;
DECAY=&amp;#34;#FF0000&amp;#34;
# Initialize the serial port
usbreset fit_StatUSB
if [ $? -ne 0 ]; then
echo &amp;#34;Device not found. Aborting.&amp;#34;
exit 1
fi
sleep 5
stty -F /dev/ttyACM0 9600 raw -echo -echoe -echok -echoctl -echoke
sleep 5
# Function to send a color command to Fit-statUSB
send_color() {
echo Sending: &amp;#34;B#${1}-250#000000-1000${DECAY}-9999&amp;#34;
echo -e &amp;#34;B#${1}-250#000000-1000${DECAY}-9999&amp;#34; &amp;gt; /dev/ttyACM0
sleep 1
}
echo -e &amp;#34;F0001&amp;#34; &amp;gt; /dev/ttyACM0; sleep 1 # Minimal Transition
echo -e &amp;#34;#${RED}&amp;#34; &amp;gt; /dev/ttyACM0; sleep 1 # Red
echo -e &amp;#34;#${GREEN}&amp;#34; &amp;gt; /dev/ttyACM0; sleep 1 # Green
echo -e &amp;#34;#${BLUE}&amp;#34; &amp;gt; /dev/ttyACM0; sleep 1 # Blue
echo -e &amp;#34;#${WHITE}&amp;#34; &amp;gt; /dev/ttyACM0; sleep 1 # White
echo -e &amp;#34;#${OFF}&amp;#34; &amp;gt; /dev/ttyACM0; sleep 1 # Off
while true; do
# Get processor idle time using vmstat
idle=$(vmstat 1 2 | tail -1 | awk &amp;#39;{print $15}&amp;#39;)
# Get Proxmox health state
expected_votes=$(pvecm status | grep &amp;#39;Expected votes:&amp;#39; | awk &amp;#39;{print $2}&amp;#39;)
total_votes=$(pvecm status | grep &amp;#39;Total votes:&amp;#39; | awk &amp;#39;{print $2}&amp;#39;)
flags=$(pvecm status | grep &amp;#39;Flags:&amp;#39; | awk &amp;#39;{print $2}&amp;#39;)
if [ &amp;#34;$flags&amp;#34; != &amp;#34;Quorate&amp;#34; ]; then
proxmox_status=&amp;#34;$RED&amp;#34;
elif [ &amp;#34;$expected_votes&amp;#34; != &amp;#34;$total_votes&amp;#34; ]; then
proxmox_status=&amp;#34;$YELLOW&amp;#34;
else
proxmox_status=&amp;#34;$GREEN&amp;#34;
fi
# Check network connectivity
if ping -c 1 8.8.8.8 &amp;amp;&amp;gt; /dev/null; then
network_status=&amp;#34;$GREEN&amp;#34;
else
network_status=&amp;#34;$RED&amp;#34;
fi
# Determine processor state color
if [ &amp;#34;$idle&amp;#34; -lt 10 ]; then
processor_status=&amp;#34;$RED&amp;#34;
elif [ &amp;#34;$idle&amp;#34; -lt 20 ]; then
processor_status=&amp;#34;$YELLOW&amp;#34;
else
processor_status=&amp;#34;$GREEN&amp;#34;
fi
# Repeat the sequences 6 times before re-evaluating the system state
for i in {1..6}; do
# Create and send blink sequence with breaks
send_color &amp;#34;$BLUE&amp;#34; # Initial Blue indicating start of the dataset
send_color &amp;#34;$processor_status&amp;#34;
send_color &amp;#34;$proxmox_status&amp;#34;
send_color &amp;#34;$network_status&amp;#34;
done
done
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Armbian custom builds for different SOCs, using docker</title><link>https://www.kenops.io/posts/armbian-custom-builds/</link><pubDate>Sat, 08 Oct 2022 20:40:50 +0000</pubDate><guid>https://www.kenops.io/posts/armbian-custom-builds/</guid><description>&lt;p&gt;I&amp;rsquo;m impressed with how well Armbian works with SOCs. Since I couldn’t find a Raspberry Pi recently, I tried out a “LePotato” board, which has performed well overall. The main issue is the lack of a headless install option for Armbian. Without a FAT partition for &lt;code&gt;/boot&lt;/code&gt;, configuring the OS on a PC or Mac before installation is challenging.&lt;/p&gt;
&lt;p&gt;I attempted adding &lt;code&gt;/boot&lt;/code&gt; to an existing image but struggled. Eventually, I found I could compile Armbian with a revised &lt;code&gt;lepotato.conf&lt;/code&gt; file by adding &lt;code&gt;BOOTFS_TYPE=&amp;quot;fat&amp;quot;&lt;/code&gt;. Typically, compiling OS builds requires specific hardware, compilers, libraries, etc., making it a hassle. However, Armbian’s DIY-focused approach made the process surprisingly easy. I even used Docker, so my main OS stayed clean—very cool indeed!&lt;/p&gt;</description></item><item><title>LePotato and NanoPi Neo Plus2 Goodness</title><link>https://www.kenops.io/posts/lepotato-and-nanopi-neo-plus2-goodness/</link><pubDate>Sat, 01 Oct 2022 14:20:10 +0000</pubDate><guid>https://www.kenops.io/posts/lepotato-and-nanopi-neo-plus2-goodness/</guid><description>&lt;p&gt;Using DietPi to install current versions of Debian is fantastic! The little NanoPi, while missing 2 USB ports, boasts WiFi, Bluetooth, and 8Gb emmc!&lt;/p&gt;
&lt;p&gt;Move OS to the NanoPi Neo Plus2 8GB emmc:&lt;/p&gt;
&lt;p&gt;Get an Armbian Image for the NanoPi and boot it from the microSD. After initially configuring, run /sbin/nand-sata-install. Follow the prompts to copy the root filesystem to the emmc. Remove the SD card.&lt;/p&gt;
&lt;h2 id="installing-dietpi-to-the-8gb-emmc-flash-on-the-nanopi"&gt;Installing DietPi to the 8GB eMMC flash on the NanoPi:&lt;/h2&gt;
&lt;p&gt;Booted into Armbian on the internal SD card and put The dietPi image in a USB to microSD dongle. The DietPi image was small, so I chose to create an fsarchiver image of it on the Armbian filesystem temporarily. This may or may not work for you if you don&amp;rsquo;t have enough space on the booted OS in the internal microSD card.&lt;/p&gt;</description></item><item><title>Home Lab KVM with MeshCommander</title><link>https://www.kenops.io/posts/home-lab-kvm-with-meshcommander/</link><pubDate>Fri, 26 Aug 2022 22:45:11 +0000</pubDate><guid>https://www.kenops.io/posts/home-lab-kvm-with-meshcommander/</guid><description>&lt;p&gt;No Homelab Remote KVM? Intel Chipset? No Problem with Intel&amp;rsquo;s Management Engine and MeshCommander!&lt;/p&gt;
&lt;p&gt;Mesh Commander is an application that can communicate to the Intel Management Engine (IME) available on most systems using an intel chipset. Once IME is configured, Mesh Commander will provide an entry point into the system and can provide a whole range of options from power cycling the system, remote controlling the system, and even accessing the BIOS. So how does it work? Here are the steps I go through to enable it:&lt;/p&gt;</description></item><item><title>Where's the truth...</title><link>https://www.kenops.io/posts/wheres-the-truth/</link><pubDate>Tue, 19 Jan 2021 03:20:42 +0000</pubDate><guid>https://www.kenops.io/posts/wheres-the-truth/</guid><description>&lt;p&gt;By not being on social media sites, I have a choice in what I consume from a news perspective. I want sources that give me the data to form my opinion rather than get opinions framed as news. So this is what works for me:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Use a web browser &amp;ldquo;incognito&amp;rdquo; mode so tracking cookies aren&amp;rsquo;t used.&lt;/strong&gt; This will help prevent news shaping. I use a web browser called &lt;a href="https://duckduckgo.com/"&gt;Duck Duck Go&lt;/a&gt; that helps prevent tracking data from being used. I highly recommend using it for a browser on your phone and the search engine on your desktop. Once google has some history on you, the shaping algorithms will take hold quickly.&lt;/li&gt;
&lt;li&gt;I use multiple sources. If I watch CNN, I also try to watch Fox News and so on. It helps to see the different perspectives and the spin applied on all sides.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;For any of the &amp;ldquo;news&amp;rdquo; sites, I first look at the ad&amp;rsquo;s that I&amp;rsquo;m bombarded with.&lt;/strong&gt; I want to determine right off the bat how the site makes money, and what generates the most revenue (typically its the product you see most of). They will usually not tell you directly, but you&amp;rsquo;ll get a sense of why they want you to buy while you stay on the site.&lt;/li&gt;
&lt;li&gt;I use Axios; they are trying to be a news source with little spin. You can see their mission statement here: &lt;a href="https://www.axios.com/about/"&gt;https://www.axios.com/about/&lt;/a&gt; They tell you how they gather information, how it&amp;rsquo;s gathered and qualified, and how they make money. Most of the content is short and concise with little fluff. I appreciate the attempt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;I use &lt;a href="https://www.allsides.com/about"&gt;allsides.com&lt;/a&gt; frequently.&lt;/strong&gt; allsides is an aggregate site that tried to rate news stories as right, left, and center. It&amp;rsquo;s a good site to get an honest perspective on things. Their take is no news is unbiased, so they show you how. There was an exciting science project from Middle Schooler where they looked at bias in google search engine using data from allsides. More detail on the science project is located at:&lt;br&gt;
&lt;a href="https://www.allsides.com/blog/teen-proves-media-bias-google-search-results-can-influence-political-opinions"&gt;https://www.allsides.com/blog/teen-proves-media-bias-google-search-results-can-influence-political-opinions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Is the content focused on the subject, and is the opinion kind?&lt;/strong&gt; If the content attacks aperson rather than a position, it&amp;rsquo;s typically because the position they are trying to make is weak and doesn&amp;rsquo;t hold up well on its own.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&amp;rsquo;m sure I can keep rambling, but the above list encompasses most of what I do. Let me know if you have better methods!&lt;/p&gt;</description></item><item><title>zfs glory and snaphot hell</title><link>https://www.kenops.io/posts/zfs-glory-and-snaphot-hell/</link><pubDate>Sun, 11 Oct 2020 19:55:20 +0000</pubDate><guid>https://www.kenops.io/posts/zfs-glory-and-snaphot-hell/</guid><description>&lt;p&gt;&lt;img alt="ZFS on TrueOS: Why We Love OpenZFS - TrueOS" loading="lazy" src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.percona.com%2Fblog%2Fwp-content%2Fuploads%2F2017%2F11%2FOpenzfs.svg.png&amp;f=1&amp;nofb=1"&gt;&lt;/p&gt;
&lt;p&gt;This page is to document my trials with zfs snapshots for backup purposes. There a problem I found that entails when incremental snapshot sends are performed when the receive side has changed in some way. I&amp;rsquo;ll provide complete details soon. Good news my zfs retention script looks to be running well. I&amp;rsquo;ll document that as well soon. Here&amp;rsquo;s a teaser&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://www.kenops.io/uploads/2020/10/image-1024x575.png"&gt;&lt;/p&gt;</description></item><item><title>Rock64 System on a Chip (SoC) Review</title><link>https://www.kenops.io/posts/rock64-system-on-a-chip-soc-review/</link><pubDate>Thu, 04 Jun 2020 07:42:09 +0000</pubDate><guid>https://www.kenops.io/posts/rock64-system-on-a-chip-soc-review/</guid><description>&lt;p&gt;I&amp;rsquo;ll review my experience with this SoC shortly&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://www.kenops.io/uploads/2020/06/image-1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://www.kenops.io/uploads/2020/06/image-2.png"&gt;&lt;/p&gt;</description></item><item><title>Living on a Raspberry Pi!</title><link>https://www.kenops.io/posts/living-on-a-raspberry-pi/</link><pubDate>Sun, 05 Mar 2017 01:52:59 +0000</pubDate><guid>https://www.kenops.io/posts/living-on-a-raspberry-pi/</guid><description>&lt;p&gt;This feels a little weird!
Playing with the overclocking and it really makes a difference!  The settings below look stable but make the proc very hot (over 85 degrees c.)
From /boot/config.txt:&lt;/p&gt;
&lt;h1 id="overclock-settings---disabled-until-heat-sink-is-added-170327-seank"&gt;Overclock settings - disabled until heat sink is added. 170327 SeanK&lt;/h1&gt;
&lt;p&gt;#arm_freq=1350
#core_freq=500
#over_voltage=4
#disable_splash=1
##force_turbo=1
#boot_delay=1
#sdram_freq=500
Also created a script to put the governor in ondemand mode and put it in the init.d directory: &lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;root@webpi:/sys/devices/system/cpu/cpu0/cpufreq# cat /etc/init.d/sk-perf-set-cpu-governor.sh
#!/bin/sh
#
# 20170327, Sean Kennedy
#
# From /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors:
# conservative ondemand userspace powersave performance
governor=&amp;#34;ondemand&amp;#34;
echo $governor &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
root@webpi:/sys/devices/system/cpu/cpu0/cpufreq#
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Also got ganglia to report on CPU Frequency and Temp using this init script&amp;hellip;.&lt;/p&gt;</description></item><item><title>High School 1957 vs 2009</title><link>https://www.kenops.io/posts/high-school-1957-vs-2009/</link><pubDate>Fri, 02 Oct 2009 17:21:12 +0000</pubDate><guid>https://www.kenops.io/posts/high-school-1957-vs-2009/</guid><description>&lt;p&gt;&lt;strong&gt;From a recent email spam - that was sorta funny&amp;hellip;&lt;/strong&gt;
&lt;strong&gt;Scenario 1:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Jack goes quail hunting before school and then pulls into the school parking lot with his shotgun in his truck&amp;rsquo;s gun rack.&lt;/p&gt;
&lt;p&gt;1957 - Vice Principal comes over, looks at Jack&amp;rsquo;s shotgun, goes to his car and gets his new shotgun to show Jack.&lt;/p&gt;
&lt;p&gt;2009 - School goes into lock down, FBI called, Jack hauled off to jail and never sees his truck or gun again. Counselors called in for traumatized students and teachers.&lt;/p&gt;</description></item><item><title>Supersonic Electronic - Awesome!</title><link>https://www.kenops.io/posts/supersonic-electronic-awesome/</link><pubDate>Mon, 21 Sep 2009 05:55:34 +0000</pubDate><guid>https://www.kenops.io/posts/supersonic-electronic-awesome/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=MNyG-xu-7SQ"&gt;https://www.youtube.com/watch?v=MNyG-xu-7SQ&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Using rsync for replication on OS X</title><link>https://www.kenops.io/posts/using-rsync-for-replication-on-os-x/</link><pubDate>Thu, 30 Jul 2009 05:50:11 +0000</pubDate><guid>https://www.kenops.io/posts/using-rsync-for-replication-on-os-x/</guid><description>&lt;p&gt;I recently began a quest to replicate my house data with a hosting service so if my house goes up in a fire I still have my data elsewhere. The utility that seems to work the best for this is called rsync, and is available on most flavors of Unix, including Apple&amp;rsquo;s OS X. Why is it good?  Well, rsync talks to the remote host and compares file meta-data like modified times, checksums, etc. to determine if a file needs to be transmitted.  It can handle partial file retransmission which is very nice if your dealing with large files.  It&amp;rsquo;s much more efficient than other methods that clumsily send all data over the line to have the destination server determine if the data should be discarded or not.  Here&amp;rsquo;s an example of the command I use (disk1 is a directory with a bunch of directories and files):&lt;/p&gt;</description></item><item><title>The 4th Electrical Element, Memristor</title><link>https://www.kenops.io/posts/memristo/</link><pubDate>Wed, 29 Jul 2009 15:32:03 +0000</pubDate><guid>https://www.kenops.io/posts/memristo/</guid><description>&lt;p&gt;&lt;a href="http://arstechnica.com/old/content/2008/05/maintaining-moores-law-with-new-memristor-circuits.ars"&gt;&lt;img loading="lazy" src="http://media.arstechnica.com/news.media/memristor.jpg"&gt;&lt;/a&gt;&lt;img loading="lazy" src="http://upload.wikimedia.org/wikipedia/en/9/9f/Memristor.jpg"&gt;Last year HP Labs was able to create the long theorized electrical element, the Memristor.  While most people have not heard anything about the memristor, it will soon change the whole face of our electronics world.  The Memristor was a theoretical element in electronics that was postulated in the late 1960&amp;rsquo;s and was finally created in 2008.  Our entire electronics work today is only based on the other 3 elements - Resistor, Capacitor, and Inductor.
Why should you care?
Imagine your next computer with 10 terabytes of RAM, with no hard drive and no need to &amp;ldquo;load&amp;rdquo; programs.  Imagine the same computer powered off without loosing any information, requiring no voltage draw and at a fraction of the size of the smallest computers today - heck I could have described the iPhone of the future.
That&amp;rsquo;s just the tip of the iceberg.  Analog processors, extremely fast crossbars, and others are on the near horizon. 20-50 years?  No.  I&amp;rsquo;m talking about the next 2-5 years.
Here&amp;rsquo;s a few links regarding the memristor:&lt;/p&gt;</description></item><item><title>Computer Hardware Chart</title><link>https://www.kenops.io/posts/computer-hardware-chart/</link><pubDate>Tue, 21 Jul 2009 20:25:08 +0000</pubDate><guid>https://www.kenops.io/posts/computer-hardware-chart/</guid><description>&lt;p&gt;&lt;a href="http://sonic840.deviantart.com/art/Computer-hardware-poster-1-7-111402099"&gt;&lt;img loading="lazy" src="http://cache.gawker.com/assets/images/17/2009/07/504x_computer-hardware-chart.jpg" title="Computer Hardware Chart"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Tesla's B-day today</title><link>https://www.kenops.io/posts/teslas-b-day-today/</link><pubDate>Fri, 10 Jul 2009 17:27:03 +0000</pubDate><guid>https://www.kenops.io/posts/teslas-b-day-today/</guid><description>&lt;p&gt;Tesla&amp;rsquo;s birthday is today!  Here&amp;rsquo;s a cool video of the person who invented modern electricity and the death ray&amp;hellip;.&lt;/p&gt;</description></item><item><title>Tesla Motors</title><link>https://www.kenops.io/posts/tesla-motors/</link><pubDate>Thu, 04 Jun 2009 00:46:14 +0000</pubDate><guid>https://www.kenops.io/posts/tesla-motors/</guid><description>&lt;p&gt;This is my next dream car.  I saw one of these beauties in Ft. Lauderdale and it was so sexy.  100% Electric, quick charging, 0-60 in 3.9 seconds&amp;hellip; Awesome.
&lt;a href="http://www.teslamotors.com"&gt;&lt;img loading="lazy" src="http://www.teslamotors.com/images/nav2/nav_logo.jpg"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Jesse Ventura and Waterboarding...</title><link>https://www.kenops.io/posts/jesse-ventura-and-waterboarding/</link><pubDate>Wed, 13 May 2009 18:16:48 +0000</pubDate><guid>https://www.kenops.io/posts/jesse-ventura-and-waterboarding/</guid><description>&lt;p&gt;For a ex-wrestler and gov, Jesse can still impress at times&amp;hellip;
&lt;a href="http://www.boingboing.net/2009/05/13/jesse-ventura-i-coul.html"&gt;http://www.boingboing.net/2009/05/13/jesse-ventura-i-coul.html&lt;/a&gt;&lt;/p&gt;</description></item><item><title>I'm ready for Summertime</title><link>https://www.kenops.io/posts/im-ready-for-summertime/</link><pubDate>Sat, 02 May 2009 22:04:37 +0000</pubDate><guid>https://www.kenops.io/posts/im-ready-for-summertime/</guid><description/></item><item><title>Twitter Weekly Updates for 2009-04-05</title><link>https://www.kenops.io/posts/twitter-weekly-updates-for-2009-04-05/</link><pubDate>Mon, 06 Apr 2009 02:18:00 +0000</pubDate><guid>https://www.kenops.io/posts/twitter-weekly-updates-for-2009-04-05/</guid><description>&lt;ul&gt;
&lt;li&gt;Off to the Glenn to Celebrate Rachelle&amp;rsquo;s B-day. Earlier I started work on my main wing assembly for the F4U Corsair. 2 weeks to flight! &lt;a href="http://twitter.com/wijgalt/statuses/1428305220"&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Just got to my hotel in Ft. Lauderdale Florida. Feeling kinda sick. Hopefully it&amp;rsquo;s just jet crud &lt;a href="http://twitter.com/wijgalt/statuses/1434725077"&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wrapping up at the customer site in Ft Lauderdale. Going home tomorrow! &lt;a href="http://twitter.com/wijgalt/statuses/1441029543"&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Powered by &lt;a href="http://alexking.org/projects/wordpress"&gt;Twitter Tools&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Twitter Weekly Updates for 2009-03-29</title><link>https://www.kenops.io/posts/twitter-weekly-updates-for-2009-03-29/</link><pubDate>Mon, 30 Mar 2009 02:18:00 +0000</pubDate><guid>https://www.kenops.io/posts/twitter-weekly-updates-for-2009-03-29/</guid><description>&lt;ul&gt;
&lt;li&gt;Living the dream. In Tampa for work this week. &lt;a href="http://twitter.com/wijgalt/statuses/1381633171"&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using Digsby for IM, Email, and Twitter - &lt;a href="http://twitter.digsby.com"&gt;http://twitter.digsby.com&lt;/a&gt; &lt;a href="http://twitter.com/wijgalt/statuses/1404043634"&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Just sitting at home resting after digging out the Driveway from snow. Blizzard yesterday - 60 degree sunny weather today - Colorado is &amp;hellip; &lt;a href="http://twitter.com/wijgalt/statuses/1404217849"&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Working on RC planes today - Hope to get my F4U Corsair on it&amp;rsquo;s way to it&amp;rsquo;s first flight. &lt;a href="http://twitter.com/wijgalt/statuses/1413320518"&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Powered by &lt;a href="http://alexking.org/projects/wordpress"&gt;Twitter Tools&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Twitter Weekly Updates for 2009-03-22</title><link>https://www.kenops.io/posts/twitter-weekly-updates-for-2009-03-22/</link><pubDate>Mon, 23 Mar 2009 02:18:00 +0000</pubDate><guid>https://www.kenops.io/posts/twitter-weekly-updates-for-2009-03-22/</guid><description>&lt;ul&gt;
&lt;li&gt;Just flew my RC planes again. Love this stuff! &lt;a href="http://twitter.com/wijgalt/statuses/1372803605"&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Powered by &lt;a href="http://alexking.org/projects/wordpress"&gt;Twitter Tools&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Richard Cheese</title><link>https://www.kenops.io/posts/richard-cheese/</link><pubDate>Wed, 11 Mar 2009 20:33:24 +0000</pubDate><guid>https://www.kenops.io/posts/richard-cheese/</guid><description>&lt;p&gt;This cat is funny!  Thanks Rob for the recommendation.&lt;/p&gt;</description></item><item><title>Gennaro's Busted...</title><link>https://www.kenops.io/posts/gennaros-busted/</link><pubDate>Tue, 24 Feb 2009 15:32:38 +0000</pubDate><guid>https://www.kenops.io/posts/gennaros-busted/</guid><description>&lt;p&gt;&lt;img alt="gennaros" loading="lazy" src="https://www.kenops.io/wp-content/uploads/2009/02/gennaros2-300x199.jpg" title="gennaros"&gt;I just found out the Italian restaurant Gennaro&amp;rsquo;s next to Mr. Roper was closed due to a gambling ring - Awesome! LJ, one of the bartenders was shown on the news broadcast as being involved. Boy, this town is lively! I do miss the food&amp;hellip;
Here&amp;rsquo;s a link to the news story on channel 7 and the Court Case Document&amp;hellip;
&lt;a href="http://www.thedenverchannel.com/video/18755915/"&gt;http://www.thedenverchannel.com/video/18755915/&lt;/a&gt;
&lt;a href="http://www.thedenverchannel.com/download/2009/0219/18754160.pdf"&gt;http://www.thedenverchannel.com/download/2009/0219/18754160.pdf&lt;/a&gt;
&lt;img alt="Busted" loading="lazy" src="https://www.kenops.io/wp-content/uploads/2009/02/picture-1-300x183.jpg" title="Busted - LJ is on the bottom right"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://maps.google.com/maps?q=gennaros+denver&amp;amp;hl=en&amp;amp;client=safari&amp;amp;ie=UTF8&amp;amp;cid=7735809028016768591&amp;amp;ll=39.674857,-104.986382&amp;amp;spn=0.009909,0.012875&amp;amp;z=15&amp;amp;iwloc=A&amp;amp;source=embed"&gt;View Larger Map&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>