07 April 2023

Hiding mount icons for ZFS disk


As I was tired of seeing mount icons for my zfs drives on my desktop, it was time to add some more udev rules. This time i chose to set the rule by ID_SERIAL instead of KERNEL to be more confident about which drive will be ignored in case of moving them around on SATA headers.

Determine the ID_SERIAL for each of the drives:

  • udevadm info /dev/sdb | grep ID_SERIAL=
  • udevadm info /dev/sdc | grep ID_SERIAL=

Add to /etc/udev/99-hide-disks.rules (a single line for each rule):


Then have udev read from the files:
  • sudo udevadm control --reload


16 January 2023

First AMD build - Ryzen 7700X

  As my Intel Q6600 overclocked from 2.4GHz to 2.93 GHz was showing its age, it was time to replace this ~13 year old system that had been through many graphic card upgrades. It has also lasted thru 3 fan failures/replacements (cpu fan, back fan, and side panel fan) and the 200mm fan at the top of the Antec 900 was causing weird noises so I had it unplugged.

  I have been looking at replacing it for some time (since Intel 9th gen), but had never pulled the trigger.

  I purchased the Be Quiet 500FX case during their anniversary sale, as it met most of my criteria:

  • Good quality interior fans with at least 2 for intake and 1 for exhaust
  • USB C on the front panel
  • Glass side panel
  • Bottom mounted PSU with shroud for hiding/managing cables
  • Affordable price ($119.99, cheaper than the 500DX at the time)
  • The included RGB fans were a bonus
  • The one miss was no 5.25" bays for an optical drive, but I can use an external one
  Microcenter was running 4 promotions that were tempting:
  • Intel 11700K + Asus Z590-Plus TUF WiFi for $299.99 (recently dropped to $249.99)
  • Intel 12700K + Asus Z690-Plus TUF WiFi DDR4 for $349.99
  • Ryzen 5600 + Gigabyte X570S AORUS Pro for $329.98
  • Ryzen 5700X + Gigabyte X570S AORUS Pro for $399.98
  • Ryzen 7700X + Asus X670E-Plus TUF WiFi + 32GB G.Skill DDR5 6000 CL36 for $679.99
  The first 3 options would also require a G.Skill 32GB 3600 CL18 memory kit for $95.
  The biggest draw for the last option is the promised support for new processors through at least 2025. As I am planning to use this platform for the next 10 years or so, a simple drop in processor upgrade is a major selling point. Also the PCIe 5.0 graphics and NVMe slots, allow for upgrades for the future.
  The 11700K would be the highest power draw and also would not have PCIe 5.0. The 12700K has the high socket pressure that bends CPUs, so I would have to do the washer mod or replace the ILM as I think the bending would cause low reliability for the long term. The Ryzen 5600 would be only 6 cores and is the lowest performer. The Ryzen 5700X is getting really close to the Ryzen 7700X price once you factor in the memory price.

Other Items that I picked up to complete the build:
  • Scythe Fuma 2 Rev. B - $65.99 @ Microcenter
    • Dual tower with 2 fans
    • 8 heat pipes
  • Western Digital SN750 SE 1TB - $99.99 @ Microcenter ($79.99 after bundle discount)
    • TLC flash
    • DDR4 cache
  • Corsair HX750 Platinum - $109.99 @ Newegg
  • Asus BW-16D1X-U - $124.99 @ Microcenter
    • No Bluray playing software, but I will use VLC
  • MSI Radeon RX 480 4GB transfered over from my existing build
Build notes:
  • The power supply cables could use an extra inch or two to make building easier (or perhaps cable extensions)
  • The 24 pin motherboard power cable was too stiff to route like normal through the cable bar and had to go diagonally through the top
    • cable extensions could solve this "problem"
  • I had to move one of the fans to fan header 1 on the Be Quiet fan controller to get the motherboard to detect the PWM control
  • I had to remove the back fan to be able to not scrape the motherboard on the standoffs while installing it
  • I should have plugged in the 2x 8 pin EPS cables before mounting the motherboard

09 December 2022

FAHControl on Chromebook

As I wanted to be able to control my folding from my Chromebook, but the official FAH Control still has a Python2 dependency, I had to use a workaround to get it to work.
  1. Download:
  2. Install some requirements:
    • In a linux terminal run:
    • sudo apt install python3-gi gir1.2-gtk-3.0
  3. Right click the deb file and select install with Linux
Now I wanted to add an icon to the launcher for being able to quickly launch it
  1. Get a suitable icon. Here is what I chose
  2. Move the icon file into the "Linux files" directory
  3. Create the applications directory:
    • mkdir -p .local/share/applications
  4. Create the shortcut
    • touch .local/share/applications/FAHControl.desktop
  5. Put the following in it

[Desktop Entry]


Comment=Folding at Home Control interface


X-GNOME-FullName=Folding at Home Conrol







Ventoy: Ultimate Boot USB

I learned about Ventoy from ThioJoe on Youtube in this video. It is a bootable USB image that allows you to place ISOs on the drive and then choose which one to boot. This allows one USB drive to act as a master install/rescue/debug drive.

Linux Instructions:

  1. Download from github: https://github.com/ventoy/Ventoy/releases
  2. Extract
    • tar xvzf ventoy-*-linux.tar.gz
  3.  run Web UI
    • cd ventory-*/
    • sudo ./VentoyWeb.sh
  4. Use browser to go to<port>
    • Format the USB drive
    • WARNING: This will delete all data/files off the USB drive
  5. Refresh local drives
    • sudo partprobe
  6. Open the USB folder and copy in ISOs

What I put on the USB drive:

02 September 2022

Saving data off a scratched DVD

I had a DVD with files on it that I needed. Unfortunately, it was giving me errors when trying to pull them off. Here is what I did to try to recover as much data as possible.

  • Install ddrescue and a gui for visualizing its progress
    • sudo apt-get install gddrescue ddrescueview
  • Run a first pass with no retries to get as much info as possible
    • ddrescue -dn -b2048 /dev/sr0 disk.img disk.mapfile
  • Retry failed blocks
    • ddrescue -d -r5 -b2048 /dev/sr0 disk.img disk.mapfile
  • Description of the options:
    • /dev/sr0: the dvd drive
    • disk.img: the file to create
    • disk.mapfile: the mapfile that keeps track of the status of the recovery
    • -d: Use direct disc access for input (aka, no caching)
    • -n: Skip the scraping phase
    • -b2048: block size of 2048, use for cdroms and dvd
      • defaults to 512
    • -r5: retry 5 passes
      • -1 for infinite passes


28 June 2022

New 27" 1440p monitor VX2758-2KP-MHD

 With the falling prices of monitors and the aging small 20" 1680x1050 LCD that I was using I decided it was time for an upgrade.

The Search

The types and models I was looking at were

  • 24" 1080p 144Hz (6bit + 2 dithering)
    • AOC 24G2 ~179.99
    • Viewsonic XG2405 ~179.99
  • 24" 1200p 75Hz
    •  Asus Proart PA248QV ~199.99
  • 27" 1440p 144Hz (8bit + 2 dithering)
    • Viewsonic VX2758-2KP-MHD ~219.99
    • LG 27GL850-B ~346.99

 The prices that I listed above are the lowest that I have seen. I went with the Viewsonic VX2758-2KP-MHD due to the increased resolution and screen real estate over a 24" for the relatively small sum of $40 especially since the prices on the 24" monitors were generally higher at the time.


  • Monitor assembled easy
  • No dead pixels
  • Good color reproduction
  • Freesync support with up to 144Hz
  • OSD does not work without input
    • doesn't allow you to change inputs
    • is somewhat remedied by it auto selecting the active input
  • OSD uses the older style non-joystick style button inputs
  • Monitor occasionally does not register displayport input and requires a power cord unplug to fix
  • Driver install does not work properly (see below)
Known downsides before purchase and other thoughts
  • No height adjustment, but I did not need this particular feature and is not expected at this price point
  • 1ms MPRT/3ms GTG pixel response is a bit of an exaggeration and would only happen at highest overdrive setting which comes with lots of inverse ghosting between 60-120Hz: https://www.youtube.com/watch?v=ukKev6cPZhY
  • Buttons are on the right side, so not optimal for dual side by side monitors as one monitor will always have its buttons blocked

Monitor Driver install

11 April 2022

Ubiquiti network setup

I wanted to follow the common security guidance of having 3 wireless networks/VLANs: Normal, IOT, and Guest

  • Normal would contain the TV, printer, computers, and google devices for casting to TV
  • IOT would contain the smart outlets, garage door sensor, and other smart devices
  • Guest would be just for visitors

Ubiquiti has a nice easy default for isolating a guest network, so I just used that.

However, I needed to add a rule to prevent the IOT and Normal networks from comunicating, because applying a similar isolation policy to the IOT network prevented the Belkin smart switches from communicating.

Add the networks

Settings -> Networks -> Add New Network

  • IOT
    • Network Name: IOT
    • Advanced
      • VLAN ID: 2
  • Guest
    • Network Name: Guest
    • Advanced
      • VLAN ID: 3
      • Device Isolation: True

Add the wireless network

Settings -> WiFi-> Add New WiFi Network
  • Add a 2.4 GHz and a 5 GHz wireless network for each of the new networks

Add the firewall rule

I followed this guide, but the screens have changed in newer version: https://help.ui.com/hc/en-us/articles/115010254227-UniFi-USG-Firewall-How-to-Disable-InterVLAN-Routing

Settings -> Traffic & Security -> Global Threat Management -> Firewall -> Create New Rule

  • Type: LAN In
  • Description: Isolate IOT from LAN
  • Enabled: True
  • Rule Applied: Before Predefined Rules
  • Action: Drop
  • IPv4 Protocol: All
  • Source
    • Source Type: Network
    • Network: IOT
    • Network Type: IPv4 Subnet
  • Destination
    • Destination Type: Network
    • Network: LAN
    • Network Type: IPv4 Subnet