Skip to content
generated from blue-build/template

Fedora Silverblue images for my personal use. Learning project, frequent changes.

License

Notifications You must be signed in to change notification settings

askpng/solarpowered

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

☀️ solarpowered ☀️

solarpowered is a learning and hobby project. My main goal is to better understand OCI images as a concept and in practice, and to eventually end up with the ideal base image for my laptop and future devices.

These images boot and are fully functional for daily operations - further than that, I do not guarantee anything.

Why did you name this 'solarpowered'?

Because I like Gawain from Fate/Extra & Fate/Grand Order.

Image details

  • BlueBuild Template with actions set up. WIthout BlueBuild, I would never have come up with the idea of exploring OCI images.
  • silverblue-main as base image for solarpowered and solarpowered-ex. Only the latest Fedora relase is supported. Release versions will be bumped 1-2 months after it is made available for public.

Build status

solarpowered / T480(s) image solarpowered-ex / desktop image
Status build-ublue build-ublue
Description This image contains fingerprint drivers and power management tools for Lenovo T480/s. This image is built to support my AMD computer. Intended for daily use, multimedia, and gaming.
Functional status Fully functional Fully functional
Scheduled build 17:00 UTC on Thursdays 17:00 UTC on Mondays & Thursdays

solarpowered for T480(s)

This image supports Lenovo T480(s) and contains:

  • igt-gpu-tools
  • python-validity forked by sneexy
  • tlp and tlp-rdw

tlp.service is enabled by default with TLP default configs. systemd-rfkill.{service,socket} is disabled by default.

  • throttled

throttled is shipped with the defaults but slightly different configuration structure. I use universal values for AC and battery so there is no [UNDERVOLT.AC] nor [UNDERVOLT.BATTERY], only [UNDERVOLT]. Documented in the throttled README.

  • zcfan

Before enabling zcfan, run rpm-ostree kargs --append=thinkpad_acpi.fan_control=1 and reboot for it to work. If you are running a full Intel T480(s), you can also run ujust t480s-set-kargs to apply it with other kernel parameters to enable GuC a& FBC and reboot. Then, run sudo systemctl enable --now zcfan.

The following packages are explicitly removed from the base image due to conflicts.

  • fprintd
  • fprintd-pam
  • tuned and tuned-ppd
  • thermald

solarpowered-ex: Desktop exclusive packages

This configuration is intended to support my desktop configuration. Changes to this image is frequent.

Desktop configuration details
Type Model
Motherboard ASRock B550M WiFi SE
CPU AMD Ryzen 5 5600
GPU Sapphire AMD Navi 23 Radeon RX 6600
Wireless adapter Intel Dual Band Wireless-AC 3168NGW
Bluetooth adapter Intel Wireless-AC 3168 Bluetooth
Storage Solidigm P41 Plus 1 TB
Controller Fantech Nova PRO WGP14V2 recognized as Sony DualShock 4 [CUH-ZCT2x]
Webcam/Mic 0c45:636b Microdia Lumi Cam

This image contains:

Kernel

The Fedora default kernel is replaced with kernel-fsync.

NOTE: Make sure to enable initramfs regeneration by running rpm-ostree initramfs before rebasing to prevent boot failure.

B550 suspend fix

This image includes the fix to B550 boards suspend issue. Enable the fix with the following command:

sudo systemctl enable --now b550-suspend-fix.service

Automatic updates

Better writeup planned!

System updates are handled by rpm-ostreed-automatic.service. To override the timer settings, create /etc/systemd/system/rpm-ostreed-automatic.timer.d/override.conf.

Other updates are handled by topgrade.service. Enable with sudo systemctl enable --now topgrade.{timer,service}. To override the timer settings, create /etc/systemd/system/topgrade.timer/override.conf.

Installation

You can install by rebasing from Silverblue or generating an ISO file yourself. If you decide to give this a go, and would like to provide feedback and/or suggestions, feel free to open a new issue!

Rebase

To rebase from a Silverblue installation, follow the steps below.

T480(s) image

  1. Rebase to the unsigned image to get the proper signing keys + policies installed and reboot automatically:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/askpng/solarpowered:latest --reboot
  1. Rebase to the signed image and reboot automatically:
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/askpng/solarpowered:latest --reboot

EX/desktop image

  1. Rebase to the unsigned image to get the proper signing keys + policies installed and reboot automatically:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/askpng/solarpowered-ex:latest --reboot
  1. Rebase to the signed image and reboot automatically:
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/askpng/solarpowered-ex:latest --reboot

ISO

An ISO file for a fresh install can be generated using docker or podman from a Silverblue system.

Docker: solarpowered

mkdir ./iso-output
sudo docker run --rm --privileged --volume ./iso-output:/build-container-installer/build --pull=always \
ghcr.io/jasonn3/build-container-installer:latest \
IMAGE_REPO=ghcr.io/askpng \
IMAGE_NAME=solarpowered \
IMAGE_TAG=latest \
VARIANT=Silverblue

Docker: solarpowered-ex

mkdir ./iso-output
sudo docker run --rm --privileged --volume ./iso-output:/build-container-installer/build --pull=always \
ghcr.io/jasonn3/build-container-installer:latest \
IMAGE_REPO=ghcr.io/askpng \
IMAGE_NAME=solarpowered-ex \
IMAGE_TAG=latest \
VARIANT=Silverblue

Podman: solarpowered

mkdir ./iso-output
sudo podman run --rm --privileged --volume ./iso-output:/build-container-installer/build --security-opt label=disable --pull=newer \
ghcr.io/jasonn3/build-container-installer:latest \
IMAGE_REPO=ghcr.io/askpng \
IMAGE_NAME=solarpowered \
IMAGE_TAG=latest \
VARIANT=Silverblue

Podman: solarpowered-ex

mkdir ./iso-output
sudo podman run --rm --privileged --volume ./iso-output:/build-container-installer/build --security-opt label=disable --pull=newer \
ghcr.io/jasonn3/build-container-installer:latest \
IMAGE_REPO=ghcr.io/askpng \
IMAGE_NAME=solarpowered-ex \
IMAGE_TAG=latest \
VARIANT=Silverblue

Verification

These images are signed with Sigstore's cosign.

Verify cosign.pub

Download the cosign.pub file from this repo and run the following command within the same directory:

cosign verify --key cosign.pub ghcr.io/askpng/solarpowered