path: root/blog/entry/pinebookpro.mdwn
diff options
authorSean Whitton <>2021-05-14 17:24:48 -0700
committerSean Whitton <>2021-05-14 17:24:48 -0700
commit52a5b15c0e2258b0cab48841baabb502163b0013 (patch)
treede49fa8f8b844944de63436beaf349527db611b5 /blog/entry/pinebookpro.mdwn
parent0060c51a5d845105afd8ac7fe11431114d7fe51b (diff)
new blog entry
Diffstat (limited to 'blog/entry/pinebookpro.mdwn')
1 files changed, 44 insertions, 0 deletions
diff --git a/blog/entry/pinebookpro.mdwn b/blog/entry/pinebookpro.mdwn
new file mode 100644
index 0000000..ad0b6ac
--- /dev/null
+++ b/blog/entry/pinebookpro.mdwn
@@ -0,0 +1,44 @@
+I recently bought a Pinebook Pro. This was mainly out of general interest,
+but also because I wanted to have a spare portable computer. When I was
+recently having some difficulty with my laptop not charging, I realised that I
+am dependent on having access to Emacs, notmuch.el and my usual git
+repositories in the way that most people are dependent on their smartphones --
+all the info I need to get things done is in there, and it's very disabling
+not to have it. So, good to have a spare.
+I decided to get the machine running the hard way, and have been working to
+add a facility to install the device-specific bootloader to
+[Consfigurator](tech/code/consfigurator). It has been good to learn about how
+ARM machines boot. The only really hard part turned out to be coming up with
+the right abstractions within Consfigurator, thanks to the hard work of the
+Debian U-Boot maintainers. This left me with a chroot and a corresponding
+disk image, properly partitioned and with the bootloader installed. It was
+only then that the difficulties began: getting a kernel and initrd combination
+which can output to the Pinebook Pro's screen and take input from its keyboard
+is not really straightforward yet, but that's required for inputting disk
+encryption passwords, which are required on portable devices. I don't have
+the right hardware to make a serial connection to the machine, so all this
+took a lot of trial and error. I've ended up using Manjaro's patched upstream
+kernel build for now, because that compiles in the right drivers, and
+debugging an initrd without a serial connection is far too inefficient.
+What I keep having to remind myself is that this device isn't really a laptop
+in the usual sense -- it's a single board computer that's powering several
+pieces of hardware which together roughly constitute a laptop. I think
+something which epitomises this is how the power light doesn't come on when
+you hit the power button, but only when the bootloader or operating system
+kernel thinks to turn on the LED. You start up this SBC and it loads up some
+software and then once it has got itself going -- several seconds later --
+that software starts turning on the screen, keyboard, power LEDs etc. Whereas
+on an ordinary laptop it's more than you turn on the keyboard, screen, power
+LEDs etc. all at once, and then /they/ go off and load some software. Of
+course this description is nothing like what's actually going on, but it's my
+attempt to capture how it feels as a user, who is installing operating
+systems, but otherwise treating the laptop's hardware, including things like
+boot ROMs, as a black box. There are tangible differences between what it is
+like to do that with an ordinary laptop and with the Pinebook Pro.
+Thanks to Vagrant Cascadian for all the work on U-Boot in Debian and for help
+on IRC, Cyril Brulebois for help with crossbuilding, and Birger Schacht for a
+[useful blog