Through the Looking Glass
Fuchsia on the Pixelbook
So, I finally got Fuchsia installed on the Pixelbook (about 15 minutes before writing this). This will be a short post about how I got it running and a basic overview of using Fuchsia, and later on I’ll try to write more about the operating system itself to clarify my understanding.
Fuchsia is a new operating system from Google. The best part is it isn’t Linux (or Unix) under the hood, but it does conform to the POSIX standard (or at least, it will). It’s still very much in development.
Working with it right now involves a host build machine - I’m using my T480 - and the target hardware. You can also run it in Qemu, but that doesn’t let you run the UI layer, which may or may not be useful. I’ve ordered a Khadas VIM2 but it’s still in China. I tried to get it installed on my T440s, but that failed due to EFI issues. Being impatient, I decided to bite the bullet and install it on my Pixelbook. This involves wiping the machine and setting it up in developer mode, so there’s that.
Of course, Google projects use weird Google-y build systems (my experience with Bazel was kind of unpleasant) and repo management, and this is no exception. You have to install their repo management tool
jiri and the Fuchsia build tool
fx; I’m using direnv hooks to set it up when I
cd into the source directory.
For this post, there’s a few things to keep in mind:
- The host machine runs a server (e.g. via
fx serve) that sends updates to the device. This is required to update the software on the target right now.
- The process of updating the install is called “paving.”
I followed the steps in the Fuchsia docs but was hung up by needing an Ethernet connection to the host laptop. The docs didn’t mention this (so I submitted a PR to update the docs) and I stopped by Best Buy on my way home from work to pick up a USB-C to Ethernet adapter; I’m connected directly to my laptop using the Ubuntu shared network connection feature as I only have wireless at home. After connecting everything, the paver finally did its thing and got my pixelbook all setup.
Wireless doesn’t work yet, though. I’m not sure if it’s due to needing to add a driver to the build (e.g. does the driver exist) or whether that’s something I’ll have to do.
Okay, so the honest truth is that Fuchsia is quite far from being a usable system.
- Installing packages seems to be done on the host:
fx build-push <package>.
- I haven’t found an editor yet.
- I haven’t figured out how to get rust or even go installed. Dart is installed, though.
I’m sure as I explore more in the coming weeks, I’ll figure these things out.