First Attempt of Alpine Linux on a Tegra K1 Chromebook (HP Nyan Blaze)

Hi there again! Here’s to another seemingly-one-off project.

While I’ve been getting quite a lot of traffic on my Linux on Nintendo Switch page recently, I’m sorry to say that my Nintendo Switch died and was harvested for parts by an e-recycler for fixing other switches (minus the bad RAM chips) so I won’t be able to work on that project again unless someone donated a 2017 Nintendo Switch for me to firmware mod or a Switch Lite for me to hardware mod.

That said, a neighbor recently gave me an HP Chromebook 14 also known amongst the Chromebook/Chrultrabook modding scene as nyan-blaze. This chromebook appears to have a physical write protect screw, which are fairly easy to undo, instead of a battery write protect method, so getting into developer mode and installing things shouldn’t be too difficult. The hard part comes when I want to install another distro.

So far it seems NVIDIA Tegra K1 chip support amongst ARM Linux distros is fairly limited. With that in mind, and seeing that the volunteeer postmarketOS community may have worked with this in the past, I’ll go ahead and try running that from a MicroSD card on this system.

Now it looks like the battery on this system my be dead or the cable may be shorted, as it seems to turn off immediately when unplugged. I may have to open it back up and check the battery, but first let’s try running through building and installing a postmarketOS image to a MicroSD card to chuck in here.

[12:39:39] EVERYTHING ON /dev/sdb WILL BE ERASED! CONTINUE? (y/n) [n]: y
(029929) [12:39:41] (native) calculate depends of cgpt (pmbootstrap -v for details)
(029929) [12:39:41] (native) install cgpt
(029929) [12:39:41] % sudo rm -f /home/s31bz/Documents/nyan-blaze/chroot_native/tmp/apk_progress_fifo
(029929) [12:39:41] % sudo mkfifo /home/s31bz/Documents/nyan-blaze/chroot_native/tmp/apk_progress_fifo
(029929) [12:39:41] (native) % cat /tmp/apk_progress_fifo
(029929) [12:39:41] (native) % sh -c exec 3>/tmp/apk_progress_fifo; apk --no-progress --progress-fd 3 add cgpt --no-interactive
(029929) [12:39:41] New background process: pid=36458, output=background
WARNING: opening /mnt/pmbootstrap/packages: No such file or directory
(1/1) Installing cgpt (6310032-r8)
Executing busybox-1.36.1-r25.trigger
OK: 23 MiB in 71 packages
(029929) [12:39:42] (native) partition /dev/install (boot: 256M, reserved: 0M, root: the rest)
(029929) [12:39:42] (native) % blockdev --getsz /dev/install
1048576000
(029929) [12:39:42] (native) % parted -s /dev/install mktable gpt
(029929) [12:39:42] (native) % cgpt create /dev/install
(029929) [12:39:43] (native) % cgpt add -i 1 -t kernel -b 8192 -s 32768 -l pmOS_kernel -S 1 -T 5 -P 10 /dev/install
(029929) [12:39:43] (native) % cgpt add -i 2 -t efi -b 40960 -s 524288 -l pmOS_boot /dev/install
(029929) [12:39:43] (native) % cgpt add -i 3 -t data -b 565248 -s 1048010719 -l pmOS_root /dev/install
WARNING: One of the GPT headers/entries is invalid

ERROR: please run 'cgpt repair' before adding anything.
(029929) [12:39:43] (native) % partx -a /dev/install
partx: /dev/install: error adding partitions 1-2
(029929) [12:39:43] % sudo touch /home/s31bz/Documents/nyan-blaze/chroot_native/dev/installp2
(029929) [12:39:43] % sudo mount --bind /dev/sdb2 /home/s31bz/Documents/nyan-blaze/chroot_native/dev/installp2
(029929) [12:39:43] % sudo touch /home/s31bz/Documents/nyan-blaze/chroot_native/dev/installp3
(029929) [12:39:43] % sudo mount --bind /dev/sdb3 /home/s31bz/Documents/nyan-blaze/chroot_native/dev/installp3
mount: /home/s31bz/Documents/nyan-blaze/chroot_native/dev/installp3: special device /dev/sdb3 does not exist.
       dmesg(1) may have more information after failed mount system call.
(029929) [12:39:43] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(029929) [12:39:43] NOTE: The failed command's output is above the ^^^ line in the log file: /home/s31bz/Documents/nyan-blaze/log.txt
(029929) [12:39:43] ERROR: Command failed (exit code 32): % sudo mount --bind /dev/sdb3 /home/s31bz/Documents/nyan-blaze/chroot_native/dev/installp3
(029929) [12:39:43] See also: <https://postmarketos.org/troubleshooting>
(029929) [12:39:43] Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/pmb/__init__.py", line 63, in main
    getattr(frontend, args.action)(args)
  File "/usr/lib/python3.12/site-packages/pmb/helpers/frontend.py", line 329, in install
    pmb.install.install(args)
  File "/usr/lib/python3.12/site-packages/pmb/install/_install.py", line 1295, in install
    install_system_image(args, 0, f"rootfs_", step, steps,
  File "/usr/lib/python3.12/site-packages/pmb/install/_install.py", line 836, in install_system_image
    pmb.install.partitions_mount(args, layout, disk)
  File "/usr/lib/python3.12/site-packages/pmb/install/partition.py", line 52, in partitions_mount
    pmb.helpers.mount.bind_file(args, source, target)
  File "/usr/lib/python3.12/site-packages/pmb/helpers/mount.py", line 72, in bind_file
    pmb.helpers.run.root(args, ["mount", "--bind", source,
  File "/usr/lib/python3.12/site-packages/pmb/helpers/run.py", line 52, in root
    return user(args, cmd, working_dir, output, output_return, check, env,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pmb/helpers/run.py", line 30, in user
    return pmb.helpers.run_core.core(args, msg, cmd, working_dir, output,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pmb/helpers/run_core.py", line 403, in core
    check_return_code(args, code, log_message)
  File "/usr/lib/python3.12/site-packages/pmb/helpers/run_core.py", line 251, in check_return_code
    raise RuntimeError(f"Command failed (exit code ): " +
RuntimeError: Command failed (exit code 32): % sudo mount --bind /dev/sdb3 /home/s31bz/Documents/nyan-blaze/chroot_native/dev/installp3

From the looks of things, it seems the postmarketOS python script may be having issues with the installed python packages as well as some other issues that I haven’t troubleshot before.

Hmm, I wonder if it’s the aspects of Python on this oddball Nobara 39 install? Perhaps I’ll go give it a try on my pure Fedora 40 install that runs on my Framework. After rebooting the Nobara desktop (after running updates) it seems it’s still failing, and I’m a bit too lazy to dig in deep and see what could be wrong on this install.

While waiting for the process of installing to a new microsd card after fully updating the Fedora 40 Framework 13 (7840U, 48gb ram) I went ahead and unscrewed all the screws that clamp the keyboard deck and bottom half together.

Looks like someone was in here previously! An electrical-taped battery connector doesn’t seem like a safe sight to behold, but that could also explain why it seems this guy doesn’t have a functioning battery. As I got this system for free, and it’s quite flimsy, I’m not about to invest any amount of money in replacing the battery etc, so I’ll just repaste the ARM CPU for now and take out that bottom-right write protect screw.

Now that I’ve removed the write protect screw, let’s see if we can finally install postmarketOS edge to this chromebook, per the instructions on the postmarketOS site.

Sadly, it looks to be that even after updating pmbootstrap and trying to install to an sdcard again on the Fedora 40 laptop, it’s a failure, possibly stemming from more python issues.

Fedora 39 Linux on the Lenovo C13 Yoga Chromebook

Greetings!

Previously, I tried a project called depthboot- which has since become defunct- to get my Chromebook I grabbed for work back in 2021 running Linux. Depthboot was interesting as it enabled you to custom-build images of various Linux distros to run on a Chromebook without any real tinkering with the coreboot BIOS needed.

There seemed to have been a falling-out amongst various developers in that project, and my focus went elsewhere. Fast forward to the end of this year, and I found the amazing group of individuals behind the Chrultrabook project!

My first step was to head over to their incredibly-well-documented guide here on how to free your Chromebook from Google’s clutches.

I unscrewed the back panel of my C13 Yoga to carefully disconnect the battery and repaste the now-two-year-old CPU to give it a cool new lease on life. I ended up becoming so engrossed in getting this to work that I didn’t end up taking many pictures- sorry for that!

The full story of my adventure is here on this Chrultrabook forum post as I figured out how to get the battery unplugged properly, run through the steps to enable developer mode, and then use the supplied script from MrChromebox to flash the “UEFI Full ROM” replacement Coreboot firmware to my C13 Yoga. It was running Google’s stock coreboot fork that only allowed for ChromeOS/ChromiumOS signed images at the time, and this would be quite more freeing.

Per the recording above, I’m now on Fedora 39 with the Cinnamon DE. I used the easy Fedora Media Writer from my desktop on Nobara to create a bog-standard F39 Cinnamon installer. After creating that installer, I waited for the system to start up, and then hit Esc at the coreboot boot screen to boot from the USB and continue the installation like you would on any other machine. Soon, I’ll try testing out Ubuntu on there too, and possibly use it to get an older Pixel phone of mine running GrapheneOS.

Q3 2023 Update

Greetings, all! Outside of hiking and the job hunt, there’s not much to update on here for now, but I am still alive and active!

The original plan was to sell a bunch of self-refurbished and wiped machines on a store here. Turns out I didn’t have enough traffic for that, due to not sticking to a posting schedule, so I went ahead and listed the original Corsair One Pro on a family member’s eBay.

As my Dell G5 5505 is casually experiencing cpu errors in the journal and dmesg logs on a bi-daily basis, I’ve gone ahead and completely wiped both drives in it. If my tinkery friend ends up not wanting it, I’ll probably gut what parts I can reuse out of it and dispose of the hull at an ewaste facility in Denver.

Next, I took the rear panel off the T440p that I’ve used for a good few years. More on my known computer timeline on my current hardware page here. I went ahead and cleaned the little fan, as well as repasted the i7-4710mq I believe it is. Looks like the SSD I had originally added to this customized beast back in the day is still rocking and working fine. Go sandisk!

One downside with the original plastering of stickers this had on the rear of the LCD panel is that isopropyl alcohol + a razor blade seem to cause damage to the rubberized coating that was on here. Now I’m waiting on a decal to cover up this coating and better protect the rear. Once the rest of the chassis for this guy is cleaned up, I’ll do a test install of Ubuntu and a test install of Windows 10 before re-wiping the drive and posting it up on eBay as well.

The next machine after these two that I’m going to work on selling is the old Oryx Pro oryp4 model that I have. It was refurbished by System76 officially in 2022 for me, though I believe it was originally released in 2018- here’s the web archive link for that page.

In the spirit of the original release for that machine, I’ll likely end up listing it with either No OS or Pop!_OS 22.04 preinstalled.
On another note, here are some cool videos and blog posts that I’ve been into recently:

Steam Machine after-build Update

Hi there again! Following up with the prior blog post here. I have a few fixes for my Steam Machine build that I may have experienced some anomalies with after initially building it and installing ChimeraOS that I’ll address here. Also, the Steam Deck might get Nix package support soon, so I’ll give some thoughts on that here.

Regarding that Steam Machine that I mentioned finally building in my last update here, I've made a few fixes that seemed to be necessary.  
After the initial install, it seemed the system was experiencing some lag.

I went ahead ahead and updated the ASRock Fatality AB350 board from P6.60 to P7.00, then finished by updating to the recent P7.40 release found here. I utilized ASRock’s quick flash utility, which doesn’t require an OS to flash the BIOS, which was nice.

After updating the BIOS, and then redoing the Battle.net install utilizing Proton instead of running it through Lutris, since the steam shortcut can no longer be made utilizing that method in ChimeraOS, Diablo IV is now showing up in the Steam Big Picture mode.

In other news, I’ve been following along with a recent Nix comment made here. This gives me hope that we’ll be seeing a dedicated “/nix” directory added by default to SteamOS soon by the developers.

My Steam Deck "deckscript" has been sitting idle for a little while, due to constant changes in SteamOS from Valve wiping out any installed pacman packages. I've expanded more info on how I plan to migrate the bash script to one that mainly installs nix packages and flatpaks, plus grabbing enhancements, in the pull request here.


Here's a short little recording below, of what happened when I tried to set up the Nix package manager on the Deck via the terminal.
I'll be able to make more progress on this once that new SteamOS release comes out and gives us a predefined `/nix` directory in the future.

I’ll also be working on migrating my Fedora post-install script and the same with my Pop!_OS script over to Ansible roles or playbooks in the future, as I’m getting back on the train that was slowly learning about that. I’m mainly learning about it at night, so it may be a little while. Pull request for that is linked here.

I’ve also gone ahead and set up Syncthing between my ChimeraOS Steam Machine (that I renamed to Illyria) as well as my desktop and gabegear-named Steam Deck. This helps me sync Yuzu save data and keys, as well as aids me in creating a serverless cloud-sync between devices for Steam games that don’t support cloud saves. More info on getting setup is available at their site here.

Finishing the Steam Machine

Heyo! I finally got all the parts together, this past weekend, to finish my older-hardware living room build for TV gaming. Click here for a full breakdown of all the parts.

Humble beginnings. This process took probably around three months to get all the parts somewhat-affordably used or free from friends.

…I might eventually end up getting custom-sleeved cables though, as this spaghetti monster of power cables is quite difficult to keep neat in this tiny case, for airflow reasons. Sadly, the CPU is currently hovering around 60-80c depending on the game that’s being played, due to its Noctua cooler being right under the PSU fan.

After building it, while quite inebriated late at night, I was honestly surprised to see everything fire up without blowing up hahaha. I’m using the vizio soundbar + subwoofer for sound through the TV and have the TV connected to it via HDMI to the AMD card. The internet is over ethernet, as I don’t want to futz with wifi attenuation issues due to the solid wall between the router and it.

I burned ChimeraOS to a USB, chose it as the boot device, and let the automated installer do its thing. On first boot-up, I signed into Steam and started installing games! My favorite part is the webUI that you can use for easily installing other games via flatpak/GOG or retro roms. I’ll add some photos of that below.