Running Bedrock Linux


Checking in here with a new post to say I managed to run Bedrock Linux on uConsole.

Bedrock Linux is technically a meta-distribution, but I think having additional ways to run Linux is a good thing. What’s special about Bedrock is that your install can finally be a combination of distros. Got a Debian install but want to get stuff found in Arch? With Bedrock, now that is possible. Is that Firefox update on Arch taking too long to arrive? Why not grab the one in Alpine instead?

However, while having a solution for distro-hopping is nice and all, it comes with its quirks and responsibilities. For one, distros you install are crudely “containerized”, and some duplicates across distros are inevitable. Fortunately, Bedrock offers methods to disambiguate and reduce chances of scrambling your system. Also, some components will stop working and refuse to run, most notably btrfs and advanced features related to it.

Installing Bedrock is incredibly easy. Simply download the script for aarch64, and run as root. You will be asked to type Not reversible! to accept the risk and hijack your install.

On your next reboot, you’ll notice your uConsole screen will be blank. Don’t panic. The output is on the HDMI, and it is asking what init system you want to run on. That is the sign the Bedrock Linux install is successful. Get creative with your setup.

(As for me, I’ll get to exploring it as soon as I fix my botched wireless install. Then I’ll report my adventures here as I go.)

1 Like

Time for a first update.

So the situation is kinda bad, but it resolves in about a minute. Here’s why:

  1. The display output is on the HDMI, yes. But the keyboard doesn’t work. And so doesn’t the USB. The Bedrock screen takes 30 seconds to wait for a keyboard and another 30 to select the distro to startup from. I’m thinking that in order to solve this, we import the necessary drivers to the bedrock side. I can ask in another forum for help. Or, as a stopgap measure, you can define the distro to start from.
  2. I have tried installing an app to test the cross-distro functionality, but I’m faced with errors concerning missing GL drivers. I also tried installing mpv through the guest distro, but I’m continually hounded by “missing” libraries found in glslang, even after fulfilling the install.
  3. Bedrock makes the system noticeably slower. I may have to call on a process viewer and compare against a distro without Bedrock. Thank goodness for 8GB of RAM.

Answering the previous post, here’s what I discovered:

  • I found /bedrock/etc/bedrock.conf, which is responsible for the initial environment. In the file’s [init] section, there is a parameter that indicates which modules to load. This must be the way to enable the display, the USB, and the keyboard:
# Kernel modules to load before assuming keyboard is available.
modules = usbhid, hid, hid_generic, hid_microsoft
  • I realized I’ve been taking advantage of Bedrock’s cross-distro functionality all along. My base Arch install did not come with less pre-installed. But somehow I’m using it just fine. Passing a pacman -Qs less returned nothing, and that’s when I learned I’ve been using less from the Alpine install. Neat.
  • Related to the previous bullet, to solve the missing drivers issues to run the GTK apps I installed on Alpine, I have two options: (a) Install those drivers for the Alpine install, duplicates be damned; or (b) create symlinks to point those apps to use the Arch libraries. I chose the former since I can’t be bothered yet to patch my bedrock.conf file, but I’m willing to revisit that if I feel diligent.
  • I checked the process viewer for memory consumption and processor usage… and found nothing strange. Maybe I’m just an oaf to drill down the problem, or I’m simply inexperienced in that aspect. I sort of figured there is going to be a performance penalty for willfully scrambling the system to avoid distro-hopping; but to quote a lame duck orange-flavored president, it is what it is.