__          __             __
\ \_________\ \____________\ \___
 \  _ \  _\ _  \  _\ __ \ __\   /
  \___/\__/\__/ \_\ \___/\__/\_\_\

Bedrock Linux 0.7 Poki

Bedrock Linux 0.7 Poki Compatibility and Work-Arounds

While much of Bedrock Linux "just works", some features require work-arounds or do not work at all. See the table below.

Feature How well it works Notes
cross-strata executables just works -
cross-strata application minor workaround
cross-strata bash completion mostly works install bash-completion in all strata; some completions fail.
cross-strata fish completion just works install fish in all strata
cross-strata zsh completion mostly works install zsh in all strata; some completions fail
cross-stratum login shells just works specifying stratum requires special configuration
cross-strata dbus just works -
cross-strata firmware mostly works kernel will detect firmware across strata, initrd-building software may not
cross-strata Xorg fonts just works -
cross-strata vt fonts does not work -
cross-strata Wayland fonts needs testing -
cross-strata themes mostly works themes that support XDG_DATA_DIRS work
cross-strata info pages just works -
cross-strata man pages just works -
cross-strata desktop environments does not work get your init, display manager, and desktop environment from the same stratum.
any stratum's init just works select the desired init in the init-selection menu at boot
any stratum's kernel just works install kernel from stratum then update bootloader
cross-stratum init configuration major work-around -
nvidia proprietary drivers medium work-around -
steam minor workaround
make, configure scripts, Arch AUR minor work-around prefix with `strat -r ` and install missing dependencies
SELinux does not work Bedrock disables it on hijack
AppArmor, TOMOYO, SMACK testing needed Default profiles probably will not work
ACLs do not work on /etc -
cross-stratum libraries does not work theoretically possible but unsupported due to complexity/messiness concerns
neofetch in progress see github PR to add bedrock support

Work-arounds

Application launchers

Many application launchers cache known applications and/or their icons. Some may fail to recognize new applications in /bedrock/cross/applications or icons in /bedrock/cross/icons.

Some such applications can be prompted to build the cache by removing ~/.cache/menus. Others may need to be restarted (such as by logging out and back in, or rebooting the computer).

Login shells

Linux systems typically store the full path to a login shell in /etc/passwd. Default login shell paths are local and will not be visible to another stratum's init system. Bedrock automatically changes any local login shell to a cross path in /bedrock/cross/bin/ to work around this concern.

If you would like to use a specific stratum's shell rather than the highest priority one, create a pin entry in cross-bin with the desired shell. After brl applying the new configuration, add the new pin path to /etc/shells and chsh to it.

Init configuration

Every stratum sees its own init configuration and only its own init configuration. By default, an init from one stratum will not know how to manage a service from another stratum's init.

It is possible to work-around this by hand crafting init configuration. For example, one may make a runit run directory whose run file calls strat. For another example, one may make a systemd unit file whose Exec= line calls strat.

If you find hand creating init configuration is intimidating or bothersome, consider simply picking one stratum to provide your init and get all init-related services from that stratum.

Nvidia proprietary drivers

Most Linux graphics drivers have two components:

Most F/OSS Linux graphics drivers strive to make the two components forward and backward compatible such that their versions do not have to sync up perfectly. This allows a kernel from one stratum to work with an Xorg server from another stratum. However, the proprietary Nvidia drivers require these two components be in sync. Since the kernel module is shared across strata, this means every stratum that does anything with the graphics card requires the exact same version. Bedrock does not know how to enforce this itself. To work around this, one must manually install distro-agnostic portable proprietary Nvidia in all strata.

Download the proprietary Nvidia driver. Then run

where kernel-stratum is the stratum providing your kernel. This may require a linux-headers package be installed in the kernel-stratum. Note the -r: this is important to keep the Nvidia driver installer from "cleaning" graphics related files in other strata.

Next, run

for all remaining strata that require graphics drivers.

The bedrock stratum and other strata that do not utilize the graphics acceleration do not require the Nvidia drivers.

steam

A bug in steam breaks the ability to log into its friends/chat service with Bedrock's timezone handling. To work around this, run steam with TZ set to your Olson time zone. For example:

TZ="America/New_York" steam