08 March 2025

Lenovo Yoga 7 2-in-1 14" Touchscreen Laptop Review

 As my child had been getting into video games, we decided to get them a laptop of their own so they wouldn't need to borrow my wife's.

Here were my list of requirements:

  • Priced less than $700
  • 11-14" Screen
    • IPS or OLED
    • at least 300 nits
    • at least 45% NTSC coverage
  • A recent processor with great integrated graphics
    • AMD Ryzen 7 7840U with Radeon 780M
    • AMD Ryzen 7 8840U with Radeon 780M
    • Intel Core Ultra 7 155U
    • or newer
  • RAM >= 16GB 
  • Storage >= 512GB 
  • USB C charging
  • WiFi 7/6E with 2x2 antennas
  • Backlit keyboard (optional)
  • USB C charging on both sides (optional)


Best Buy had a sale for the Lenovo Yoga 2-in-1 14" Touchscreen Laptop (83DK000AUS / 12IAHP9), which we bought as it met most of my criteria.

  • Price: $600
  • 14" Screen 300 nits 45% NTSC coverage (~60% sRGB)
  • AMD Ryzen 7 8840U with Radeon 780M
  • RAM: 16GB
  • Storage: 1TB
  • USB C charging
  • WiFi 6E with 2x2 antennas
  • Backlit keyboard
  • USB C only on a single side :-(
  • Left ports:
    • 2 x USB C (one USB4 40Gbps)
    • 1 x HDMI 2.1
    • 1 x 3.5mm headphone/microphone combo jack
  • Right ports:
    • 1 x USB A
    • 1 x microSD
  • 3.55 lbs
  • Charger is a 65W brick style with 3 pin power cord


Compared to my wife's Lenovo Yoga 2-in-1 16" Touchscreen Laptop (82QG0001US / 16IAP7) which we bought in 2022:

  • Price: $600
  • 16" Screen 400 nits 72% NTSC coverage (100% sRGB)
  • Intel Core i5-1240P
  • RAM: 8GB
  • Storage: 256GB
  • USB C charging
  • WiFi 6E with 2x2 antennas
  • Backlit keyboard
  • USB C only on a single side :-(
  • Left ports:
    • 2 x USB C (thunderbolt)
    • 1 x USB A
    • 1 x HDMI 2.0
    • 1 x SD card reader
  • Right ports:
    • 1 x USB A
    • 1 x 3.5mm headphone/microphone combo jack
  • 4.37 lbs
  • Charger is a 65W wall-wort style with 2 folding pins


My thoughts:

  • The laptop feels sturdy and premium
  • While the screen is not for color accurate work, or as good as my wife's, it looks plenty good to my eyes when not looking side-by-side
  • The memory and storage should be sufficient for many years to come
  • GPU should be about 2x more performant than my wife's, which should be plenty to play the types of games that my child likes
  • The included 65W charger works well. Unfortunately, the laptop charges extremely slowly on our existing 45W chargers.


Child acceptance factor, in general they like it except:

  • it is too heavy (would prefer a ligher 11")
  • sometimes when starting screen share on Zoom, Zoom will stop responding


Appendix

Sources:

Other Reviews:

12 February 2025

Ensuring USB DVD order

As my USB dvd drives were being detected into a seemingly random order, I wanted to be able to control what device each was being assigned.


Adding udev rules

  • Find serials to add
    • sudo udevadm info /dev/sr0 | grep ID_SERIAL_SHORT
    • sudo udevadm info /dev/sr1 | grep ID_SERIAL_SHORT
    • sudo udevadm info /dev/sr2 | grep ID_SERIAL_SHORT
  • Create /etc/udev/rules.d/99-dvd.rules
ACTION="add", KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="first drive serial", SYMLINK+="dvd0"

ACTION="add", KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="second drive serial", SYMLINK+="dvd1"

ACTION="add", KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="third drive serial", SYMLINK+="dvd2"

  • Reboot or force rerunning the rules
    • sudo udevadm control --reload
    • sudo udevadm trigger
  • However, this did not work
  • Edit /etc/udev/rules.d/99-dvd.rules and remove the ACTION
KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="first drive serial", SYMLINK+="dvd0"

KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="second drive serial", SYMLINK+="dvd1"

KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="third drive serial", SYMLINK+="dvd2"

  • Reboot or force rerunning the rules
    • sudo udevadm control --reload
    • sudo udevadm trigger


Outcome

Success, it now creates the /dev/dvd* in a consistent order. Unfortunately, Handbrake still tries to use the /dev/sr* labels.


Appendix

Sources


14 January 2025

Recursively Mount ZFS datasets

In order to simplify mounting and unmounting my encrypted volumes, I wanted some scripts.


Recursively Mount

#!/usr/bin/env sh
dataset=$1

zfs load-key "${dataset}"
zfs list -rH -o name "${dataset}"  | xargs -L 1 zfs mount


Unmount and unload key

#!/usr/bin/env sh
dataset=$1

zfs unmount "${dataset}"
zfs unload-key "${dataset}"


Usage

# mount example
sh mount.sh storage/encrypted
Passphrase:

# unmount example
sh unmount.sh storage/encrypted


Appendix

Sources


31 December 2024

ASUS ROG Charger Dock

In order to simplify connecting my chromebook to my tv, I wanted a small dock. As Best Buy has been running sales on the ASUS ROG Charger Dock for $30, I decided to snag it.


Pros

  • Price when on sale
  • Size (about the size of a deck of cards cut in half, but twice as thick)
  • 65 Watt charging capability
  • Ports:
    • USB-C to laptop
    • USB-A
    • HDMI
  • Comes with a braided USB-C cable
  • Charges chromebook and outputs to tv with a single laptop connection


Cons

  • Limited ports (no ethernet or downstream USB-C)
  • HDMI 2.0 limits output to 4K 60Hz


Other Thoughts

  • USB-C cord was packaged with sharp bends that may lead to longevity issues


Firmware

Mine came with firmware B41 and I updated it to B59 (version 1.4.1)


Appendix

Links:


23 December 2024

Replacing drives in ZFS take two

As it had been ~3 years since the last storage upgrade and there was only about 20% free space remaining, I wanted to take advantage of Black Friday prices. From WD.com, I grabbed 2 x 16TB Red Pro drives with a 5 year warranty.


Verify the drives

  • smartctl short tests
    • smartctl -t short /dev/sdX
    • smartctl -t short /dev/sdY
  • check smartctl test status after ~5 minutes
    • smartctl -a /dev/sdX
    • smartctl -a /dev/sdY
  • badblocks
    • Does 4 iterations of a write followed by a read. For my 16TB drives, each step took ~24 hours for a total of around 8 days.
    • nohup badblocks -wsv -b 4096 /dev/sdX >16TB_serial_1.log 2>&1 &
    • nohup badblocks -wsv -b 4096 /dev/sdY >16TB_serial_2.log 2>&1 &
    • The logs will continue to grow as it runs. Mine got to 5.3MiB each for my 16TB drives after ~8 days
  • Create script to check status of verification
    • echo "" > newline.log
    • echo "cat 16TB_serial_1.log newline.log 16TB_serial_2.log newline.log" > status.sh
    • sh status.sh


Add the drives to the mirror

  • Attach the drives
    • zpool attach [POOLNAME] [EXISTING_DRIVE] [NEW_DRIVE_1]
    • zpool attach [POOLNAME] [EXISTING_DRIVE] [NEW_DRIVE_2]
  • Resilver both drives at once
    • resolves: (awaiting resilver) on [NEW_DRIVE_2]
    • zpool resilver [POOLNAME]
  • Check on resilver
    • zpool status [POOLNAME]
    • resilver in progress since Wed Dec 18 17:37:48 2024
    • I had 4.35TiB to resilver with an estimated runtime of around 7 hours, it ~7 hours and 45 minutes


Remove the old drives

I am planning on waiting at least 11 days to ensure the new drives are functioning as expected, but this is the step to remove them.

  • zpool detach [POOLNAME] [DISKNAME]


Expand the storage

  • zpool set autoexpand=on storage
  • reboot
  • zpool online -e storage [NEW_DRIVE_1]


Appendix

Sources


03 November 2024

Ubuntu VM add storage

Since my Ubuntu VM was running out of space, I needed to expand it.


Steps I used

  • Expand the storage in Proxmox
    • Proxmox web GUI -> Select the VM -> Hardware
    • Select the Hard Disk
    • Disk Action -> Resize
    • Type the number of GB to add -> Resize disk
  • Have the VM use the additional storage
    • Proxmox web GUI -> Select the VM -> Console
    • login
    • sudo cfdisk /dev/sda
      • sort (This should hopefully put your FreeSpace right after your Linux filesystem
      • resize
      • Write
    • Reboot
    • sudo resize2fs /dev/sda4


Appendix

Sources


Repair La-Z-Boy Office Chair Lumbar support

 Similar to https://www.reddit.com/r/fixit/comments/1btyyg3/lazboy_ergonamic_mesh_chair_lumbar_pad_came_off/ my lumbar support fell off on my La-Z-Boy Ergonomic Mesh Swivel Task Chair model 60021 (Joel). The lumbar support was always loose and had to constantly be readjusted to where I wanted it.


The problem

  • The single screw that holds the padding to the lumbar support arm backed all the way out which caused it to fall off.
  • There is no apparent way to easily reattach it


The solution

  1. remove the arm the padding attaches to by removing the 2 screws with an allen key
  2. separate the padding from the plastic backing by carefully pulling them apart until the 4 posts pulled out of the padding (one in each corner)
  3. attach the plastic backing to the arm using the plastic adjuster, locking washer, and screw
    • I screwed it in really tight, but if you have some thread lock you may want to use it
  4. snap the padding back onto the plastic backing by pressing it into place
  5. reattach the arm to the chair


The result

The lumbar support is reattached and now much better at staying in place (better than new)

Update: Since I did not use thread lock the lumbar support has loosened some