Mark's Field Notes

Life in a DIY RV in Australia. Mechatronics for both comfort and entertainment.

Wednesday, April 15, 2026

New Computer

# CERBERUS REBUILD — 10 MINUTE CHECKLIST # 1. Create mount points sudo mkdir -p /srv/STORAGE /srv/ARCHIVE # 2. Mount drives (by label) sudo mount -L STORAGE /srv/STORAGE sudo mount -L ARCHIVE /srv/ARCHIVE # 3. Make mounts permanent sudo nano /etc/fstab # Add: # LABEL=STORAGE /srv/STORAGE ext4 defaults 0 2 # LABEL=ARCHIVE /srv/ARCHIVE ext4 defaults 0 2 # 4. Install NFS server sudo apt update sudo apt install nfs-kernel-server -y # 5. Configure exports sudo nano /etc/exports # Add: # /srv/STORAGE 192.168.50.172(rw,sync,no_subtree_check) # /srv/ARCHIVE 192.168.50.172(rw,sync,no_subtree_check) # 6. Apply + start NFS sudo exportfs -ra sudo systemctl restart nfs-kernel-server # 7. Verify from ANNIE showmount -e 192.168.50.10# CERBERUS REBUILD — 10 MINUTE CHECKLIST # 1. Create mount points sudo mkdir -p /srv/STORAGE /srv/ARCHIVE # 2. Mount drives (by label) sudo mount -L STORAGE /srv/STORAGE sudo mount -L ARCHIVE /srv/ARCHIVE # 3. Make mounts permanent sudo nano /etc/fstab # Add: # LABEL=STORAGE /srv/STORAGE ext4 defaults 0 2 # LABEL=ARCHIVE /srv/ARCHIVE ext4 defaults 0 2 # 4. Install NFS server sudo apt update sudo apt install nfs-kernel-server -y # 5. Configure exports sudo nano /etc/exports # Add: # /srv/STORAGE 192.168.50.172(rw,sync,no_subtree_check) # /srv/ARCHIVE 192.168.50.172(rw,sync,no_subtree_check) # 6. Apply + start NFS sudo exportfs -ra sudo systemctl restart nfs-kernel-server # 7. Verify from ANNIE showmount -e 192.168.50.10# CERBERUS REBUILD — 10 MINUTE CHECKLIST # 1. Create mount points sudo mkdir -p /srv/STORAGE /srv/ARCHIVE # 2. Mount drives (by label) sudo mount -L STORAGE /srv/STORAGE sudo mount -L ARCHIVE /srv/ARCHIVE # 3. Make mounts permanent sudo nano /etc/fstab # Add: # LABEL=STORAGE /srv/STORAGE ext4 defaults 0 2 # LABEL=ARCHIVE /srv/ARCHIVE ext4 defaults 0 2 # 4. Install NFS server sudo apt update sudo apt install nfs-kernel-server -y # 5. Configure exports sudo nano /etc/exports # Add: # /srv/STORAGE 192.168.50.172(rw,sync,no_subtree_check) # /srv/ARCHIVE 192.168.50.172(rw,sync,no_subtree_check) # 6. Apply + start NFS sudo exportfs -ra sudo systemctl restart nfs-kernel-server # 7. Verify from ANNIE showmount -e 192.168.50.10# CERBERUS REBUILD — 10 MINUTE CHECKLIST # 1. Create mount points sudo mkdir -p /srv/STORAGE /srv/ARCHIVE # 2. Mount drives (by label) sudo mount -L STORAGE /srv/STORAGE sudo mount -L ARCHIVE /srv/ARCHIVE # 3. Make mounts permanent sudo nano /etc/fstab # Add: # LABEL=STORAGE /srv/STORAGE ext4 defaults 0 2 # LABEL=ARCHIVE /srv/ARCHIVE ext4 defaults 0 2 # 4. Install NFS server sudo apt update sudo apt install nfs-kernel-server -y # 5. Configure exports sudo nano /etc/exports # Add: # /srv/STORAGE 192.168.50.172(rw,sync,no_subtree_check) # /srv/ARCHIVE 192.168.50.172(rw,sync,no_subtree_check) # 6. Apply + start NFS sudo exportfs -ra sudo systemctl restart nfs-kernel-server # 7. Verify from ANNIE showmount -e 192.168.50.10_# CERBERUS REBUILD — 10 MINUTE CHECKLIST # 1. Create mount points sudo mkdir -p /srv/STORAGE /srv/ARCHIVE # 2. Mount drives (by label) sudo mount -L STORAGE /srv/STORAGE sudo mount -L ARCHIVE /srv/ARCHIVE # 3. Make mounts permanent sudo nano /etc/fstab # Add: # LABEL=STORAGE /srv/STORAGE ext4 defaults 0 2 # LABEL=ARCHIVE /srv/ARCHIVE ext4 defaults 0 2 # 4. Install NFS server sudo apt update sudo apt install nfs-kernel-server -y # 5. Configure exports sudo nano /etc/exports # Add: # /srv/STORAGE 192.168.50.172(rw,sync,no_subtree_check) # /srv/ARCHIVE 192.168.50.172(rw,sync,no_subtree_check) # 6. Apply + start NFS sudo exportfs -ra sudo systemctl restart nfs-kernel-server # 7. Verify from ANNIE showmount -e 192.168.50.10_____________________________________

CERBERUS REBUILD CONTEXT (PASTE THIS)

I have reinstalled CERBERUS (Celeron NUC) and need to reconnect it to my existing system.
System layout

    ANNIE (192.168.50.172) = main machine (client)
    CERBERUS (192.168.50.10) = storage server (NFS)
    Two drives:
        STORAGE (primary)
        ARCHIVE (secondary)

Goal

    Mount both drives on CERBERUS at:
        /srv/STORAGE
        /srv/ARCHIVE
    Export them via NFS to ANNIE
    ANNIE mounts them at:
        /mnt/STORAGE
        /mnt/ARCHIVE

Known disk info (from previous system)

    STORAGE UUID: 9f9c11ef-318b-4d39-b544-8fef87049095
    ARCHIVE UUID: 76ad1e62-25d3-4bf7-840d-aa6c09658e7a

Expected CERBERUS config

/etc/fstab

UUID=9f9c11ef-318b-4d39-b544-8fef87049095 /srv/STORAGE ext4 defaults 0 2
UUID=76ad1e62-25d3-4bf7-840d-aa6c09658e7a /srv/ARCHIVE ext4 defaults 0 2

/etc/exports

/srv/STORAGE 192.168.50.172(rw,sync,no_subtree_check)
/srv/ARCHIVE 192.168.50.172(rw,sync,no_subtree_check)

Requirements

    Use stable mount points (/srv/...)
    Use labels or UUIDs (no /media/...)
    Keep it minimal, no desktop auto-mounting

What I need

Walk me step-by-step to:

    Mount drives correctly
    Set up fstab
    Install + configure NFS
    Verify from ANNIE

What this gives you

When you paste that:

    I instantly know your topology ✅
    I know your disk IDs ✅
    I know your mount philosophy ✅
    We skip all exploration ✅

Optional (keep with your backup)

You already saved:

/mnt/STORAGE/system-backup/cerberus-rebuild.txt

That file = ground truth

If you want next:

    I can give you a 10-minute rebuild checklist
    or move into rsync cleanup plan

Credits Used: 15.8

 .......................................................................................

since we have made those good nano changes on cerberous ... and will be doing a clean install later it seems a shame to have to do that again .. should we save those bits of the setup .. ?
RouteLLM
Routing to GPT-5.3 Instant

Yes — and this is exactly the right move.

You don’t want to remember this — you want to replay it.
✅ What to save (minimal but complete)

You only need to preserve 3 things from CERBERUS:
1. Mount logic (fstab)

bash
Copy
cat /etc/fstab

2. NFS export config

bash
Copy
cat /etc/exports

3. Drive identity (for sanity later)

bash
Copy
lsblk -f

✅ Save them to STORAGE (so they survive reinstall)

On CERBERUS:

bash
Copy
mkdir -p /srv/STORAGE/system-backup

Then:

bash
Copy
cat /etc/fstab > /srv/STORAGE/system-backup/cerberus-fstab.txt
cat /etc/exports > /srv/STORAGE/system-backup/cerberus-exports.txt
lsblk -f > /srv/STORAGE/system-backup/cerberus-disks.txt

✅ Optional (very useful)

Also save:

bash
Copy
hostnamectl > /srv/STORAGE/system-backup/cerberus-system.txt
ip a > /srv/STORAGE/system-backup/cerberus-network.txt

🧠 Why this works

After reinstall you won’t:

    guess UUIDs ❌
    guess mount points ❌
    guess exports ❌

You just:

    reinstall OS
    open these files
    copy back into place

Done in minutes.
✅ Even better (one-file version)

If you want a single reference:

bash
Copy
(
echo "=== FSTAB ==="
cat /etc/fstab
echo
echo "=== EXPORTS ==="
cat /etc/exports
echo
echo "=== DISKS ==="
lsblk -f
) > /srv/STORAGE/system-backup/cerberus-rebuild.txt

✅ Result

You now have a rebuild blueprint.

👉 Do you want next:

    a post-reinstall checklist (5 commands to restore everything)
    or move into rsync cleanup plan

Credits Used: 13.49 

...............................................

 

📔 Master Field Notes: The NUC Mesh System

Version: 1.0
Machines: ANNIE (i7 NUC9), CERBERUS (Celeron NUC), PI-GATEWAY (Pi 5)
1. System Architecture: The "Distributed Cluster"

Instead of thinking of these as three separate PCs, they function as a single unit:

    ANNIE (The Cockpit): Intel NUC9i7QNX. The "Power Engine." Handles all visuals and the primary user interface.
    CERBERUS (The Storage): Celeron NUC. The "Limb." Tucked away, dedicated to the 2 x HDD movie/file archive.
    PI-GATEWAY (The Nerve Center): Raspberry Pi 5. Handles DHCP and internet gateway duties.

2. Graphics Stability (Primary Fix)

ANNIE initially suffered from "Jumping Windows" and transparency glitches due to a conflict between the NVIDIA driver and the XFCE compositor.

    The Philosophy: "Horses that eat must pull." No-frills reliability over fancy effects.
    The Fix: Disable the Compositor permanently.
        Manual recovery: xfwm4 --replace --compositor=off &
        Permanent Fix: Settings -> Window Manager Tweaks -> Compositor -> Untick "Enable display compositing".
    Hardware Profile:
        GPU: NVIDIA GTX 1650 (ASUSTeK).
        Driver: Proprietary NVIDIA (Loaded via ubuntu-drivers autoinstall).
        Monitor Logic: Dedicated GPU ports only. Use a $10 "DisplayPort to HDMI" adapter for secondary screens.

3. Remote Management (The "Mirror")

We use a Cockpit & Broadcaster model to eliminate the need for three keyboards/mice.

    Protocol: VNC (Port 5900).
    Setup on Broadcaster (CERBERUS):
        Tool: x11vnc (shares the actual physical screen :0).
        Set Password: x11vnc -storepasswd
        Broadcast Command: x11vnc -auth guess -forever -loop -noxdamage -rfbauth ~/.vnc/passwd -shared &
    Setup on Cockpit (ANNIE):
        Tool: Remmina with VNC plugin.
        Usage: Open Remmina, select VNC, enter IP (192.168.50.10), and save credentials.

4. The SSH Mesh (The "Nervous System")

All machines are linked via SSH Keys for password-less, encrypted communication.

    ANNIE IP: 192.168.50.172
    CERBERUS IP: 192.168.50.10
    Key Config: Created ~/.ssh/config on all machines to use aliases (e.g., typing ssh cerberus instead of the full IP).

5. Hardware Manifest (ANNIE)

Keep this for driver/kernel troubleshooting:

    Kernel: 6.17.0-20-generic (Linux Mint 22.3 Zena / Ubuntu 24.04 base).
    CPU: Intel Core i7-9750H (6-core/12-thread).
    Memory: 16GB.
    OS Drive: 1TB Samsung NVMe SSD 970 EVO.
    Network: Intel Wi-Fi 6 AX200 & Dual Intel Gigabit Ethernet.

6. Maintenance Rule #1

Timeshift is the Insurance Policy.
Before any major "maintenance" or "fiddling," run a Timeshift snapshot. If the windows start jumping again or the session breaks, roll back to the "Post-Driver/No-Compositor" snapshot.

Posted by Mark Bolton at 10:04 PM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Labels: Computers

No Nanny - Prompt

 AI SYSTEM COMMAND: NO NANNY MODE

    Directives: Do not offer advice on sleep, health, breaks, or personal habits.
    Tone: Technical, professional, and peer-to-peer.
    Focus: Maintain focus strictly on the technical task, the terminal output, and the system architecture.
    Constraint: Zero conversational "care-taking" or closing remarks regarding the time of day or my well-being. Stop the cycle of apologizing and reverting—permanently stay out of my personal business.

Posted by Mark Bolton at 8:37 PM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Labels: Computers

Wednesday, April 8, 2026

Truck Layout Makeover

 Oh Boy .. where to start?  

 I bought a pair of Voltgo 100AH batteries because the existing system went haywire. Not sure what went wrong but after a complete recharge they were reinstalled and seem to be working fine. No Balancer. No BMS. WIP ! 

Also a major refit, furniture wise.  Still not happy with the bed. That will be part of the ongoing.   

Lighting and wiring need a continuation of the ongoing tidy up. 

Overall very happy with the results. 

Considering buying a gen set for the Winter.

A Rocket Stove - crazy idea ?  The flueing is the big problem. Dont want to get soot and crap all over the solar panels. Solvable I am sure and keep an eye out for some appropriate pipe. 

Posted by Mark Bolton at 5:11 PM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest

Tuesday, February 24, 2026

Pi Router / Server Setup


The setup will likely need amendment (it was done with assist from chatGPT before I realized how flakey it was... Also I havent setup SAMBA yet  

 

# 1. Make the Pi a router (kernel forwarding)

sudo sysctl -w net.ipv4.ip_forward=1

# 2. Clear any existing nftables state (safe on a Pi)
sudo nft flush ruleset

# 3. NAT table: masquerade traffic going out to the phone
sudo nft add table ip nat
sudo nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }
sudo nft add rule ip nat postrouting oif "usb0" masquerade

# 4. Filter table: allow forwarding between LAN and phone
sudo nft add table ip filter
sudo nft add chain ip filter forward { type filter hook forward priority 0 \; }

sudo nft add rule ip filter forward iif "eth0" oif "usb0" accept
sudo nft add rule ip filter forward iif "usb0" oif "eth0" ct state established,related accept

 

===============================

Raspberry Pi USB-Tether Router
(Android phone → Pi → LAN)
PERSISTENT CONFIG

===============================

ASSUMPTIONS
-----------
- Android phone provides internet via USB tethering
- On the Pi:
usb0 = upstream (phone)
eth0 = downstream (LAN / TP-Link / NUC)
- Temporary routing + NAT has already been tested and works

--------------------------------
1. ENABLE IP FORWARDING (PERMANENT)
--------------------------------

echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-ipforward.conf
sudo sysctl --system

--------------------------------
2. ENSURE NFTABLES IS INSTALLED & ENABLED
--------------------------------

sudo apt update
sudo apt install -y nftables
sudo systemctl enable --now nftables

--------------------------------
3. WRITE PERSISTENT NFTABLES RULESET
--------------------------------

sudo tee /etc/nftables.conf >/dev/null <<'EOF'
#!/usr/sbin/nft -f
flush ruleset

# NAT table: masquerade traffic going out to the phone
table ip nat {
chain postrouting {
type nat hook postrouting priority 100;
oifname "usb0" masquerade
}
}

# Filter table: allow forwarding between LAN and phone
table ip filter {
chain forward {
type filter hook forward priority 0;
iifname "eth0" oifname "usb0" accept
iifname "usb0" oifname "eth0" ct state established,related accept
}
}
EOF

--------------------------------
4. LOAD RULES NOW (WITHOUT REBOOT)
--------------------------------

sudo nft -f /etc/nftables.conf
sudo systemctl restart nftables

--------------------------------
5. VERIFICATION (OPTIONAL BUT SANE)
--------------------------------

# On the Pi:
sysctl net.ipv4.ip_forward
nft list ruleset

# From a downstream machine (e.g. NUC):
# ping 192.168.1.1
# ping 1.1.1.1

--------------------------------
END
-------------------------------- 
Posted by Mark Bolton at 11:52 PM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Labels: Computers

Pi / DAC source for Valve Amp

Need: spacers

Pi / DAC Combo

Silicon Chip "Currawong Amp

 



Posted by Mark Bolton at 10:50 PM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Labels: Electronics

This aint Kansas, Dorothy

 Standing waiting for a man to show

 

 Wide-eyed, one eye fixed on the door

This waiting is killing me
It's wearing me down
Day in, day out
My feet are burning holes in the ground
Darkness warmer than a bedroom floor
 

Want someone to hold me close forever more
I'm a sleeping dog, but you can't tell
  

When I'm on the prowl, you better run like hell
You know it makes sense, don't even think about it
 
Result of a bird strike - the bird was stationary.
Result of a bird strike - the bird was stationary.
 
Life and death are things you just do when you're bored
 
The flight was the last one the pilot did before he retired and sold the business.
 The flight was the last one the pilot did before he retired.
 
Say fear is a man's best friend
Say fear is a man's best friend
Say fear is a man's best friend
You add it up, it brings you down
You add it up, it brings you down
Home is living like a man on the run
 
 
Trails leading nowhere, where to, my son?
 
 
We're already dead, but not yet in the ground
Come on, shake my helping hand
 
 
I'll show you around
You know it makes sense, don't even think about it
 
 
Life and death are things you just do when you're bored
Say fear is a man's best friend
 
Stunning views of Perth City ..
Stunning views of Perth City .. 
 
Say fear is a man's best friend
Say fear is a man's best friend


Say fear is a man's best friend
Say fear is a man's best friend
You add it up, it brings you down
 
Even prettier at night.
 Even prettier at night.
 
  You add it up, it brings you down
 
 
Say fear is a man's best friend
Say fear is a man's best friend
Say fear is a man's best friend
Say fear is a man's best friend
Say fear is a man's best friend
Say fear is a man's best friend
Say fear is a man's best friend
Say fear is a man's best friend
Say fear is a man's best friend
 
           With apologies to John Cale 

Posted by Mark Bolton at 5:49 PM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Labels: Accommodation
Newer Posts Older Posts Home
View mobile version
Subscribe to: Comments (Atom)

About Me

My photo
Mark Bolton
Sixty some thing bloke. Have had a bit to do with Electronics and Earth Sciences.
View my complete profile

Blog Archive

  • ▼  2026 (6)
    • ▼  April (3)
      • New Computer
      • No Nanny - Prompt
      • Truck Layout Makeover
    • ►  February (3)
      • Pi Router / Server Setup
      • Pi / DAC source for Valve Amp
      • This aint Kansas, Dorothy
  • ►  2025 (16)
    • ►  December (6)
    • ►  October (5)
    • ►  March (2)
    • ►  January (3)
  • ►  2024 (4)
    • ►  September (1)
    • ►  August (1)
    • ►  May (2)
  • ►  2023 (12)
    • ►  December (1)
    • ►  November (2)
    • ►  August (1)
    • ►  July (1)
    • ►  June (1)
    • ►  March (6)
  • ►  2022 (2)
    • ►  December (1)
    • ►  February (1)
  • ►  2021 (12)
    • ►  December (1)
    • ►  October (3)
    • ►  August (3)
    • ►  July (1)
    • ►  February (2)
    • ►  January (2)
  • ►  2020 (41)
    • ►  December (2)
    • ►  November (5)
    • ►  October (2)
    • ►  September (3)
    • ►  August (12)
    • ►  June (4)
    • ►  May (7)
    • ►  April (3)
    • ►  March (1)
    • ►  February (2)
  • ►  2019 (13)
    • ►  December (5)
    • ►  October (1)
    • ►  September (4)
    • ►  August (1)
    • ►  February (2)
  • ►  2018 (13)
    • ►  November (1)
    • ►  October (3)
    • ►  September (3)
    • ►  July (1)
    • ►  June (1)
    • ►  May (2)
    • ►  March (1)
    • ►  February (1)
  • ►  2017 (5)
    • ►  December (1)
    • ►  November (1)
    • ►  August (2)
    • ►  May (1)
  • ►  2016 (37)
    • ►  November (1)
    • ►  October (1)
    • ►  July (3)
    • ►  June (21)
    • ►  May (3)
    • ►  March (3)
    • ►  February (5)
  • ►  2015 (9)
    • ►  November (6)
    • ►  October (1)
    • ►  August (1)
    • ►  April (1)
  • ►  2014 (12)
    • ►  November (1)
    • ►  September (2)
    • ►  August (4)
    • ►  July (1)
    • ►  February (1)
    • ►  January (3)
  • ►  2013 (11)
    • ►  December (5)
    • ►  July (1)
    • ►  June (1)
    • ►  April (2)
    • ►  February (1)
    • ►  January (1)
  • ►  2012 (7)
    • ►  December (1)
    • ►  November (1)
    • ►  July (1)
    • ►  June (2)
    • ►  May (1)
    • ►  January (1)
  • ►  2011 (9)
    • ►  December (1)
    • ►  November (3)
    • ►  October (1)
    • ►  September (3)
    • ►  January (1)
  • ►  2010 (8)
    • ►  November (6)
    • ►  October (2)
Simple theme. Powered by Blogger.