Files
bootc-image/README.md

95 lines
3.5 KiB
Markdown

# custom bootc image
This repository contains all information necessary to build my very own customized bootc image.
I've attached various links I used to learn about how all of this works below, they are in no particular order.
## Build
A qcow image may be built by first calling `make oci` to build the oci image and then `make qcow` to turn it into a bootable qcow image. For hardware installation, I recommend the anaconda-iso variant.
You should adapt user & disk settings in `disk_config/user.toml` before you build your own installation iso though.
It may be necessary to create your own keys: https://github.com/CheariX/silverblue-akmods-keys
The kernel arguments need to be added manually: `rpm-ostree kargs --append=rd.driver.blacklist=nouveau,nova_core --append=modprobe.blacklist=nouveau,nova_core --append=nvidia-drm.modeset=1`
You may want to set `HOME` in the `.bashrc` or similar files to `/var/home/$USER` to display home-relative paths correctly in the shell.
## Links
- [getting started](https://docs.fedoraproject.org/en-US/bootc/building-containers)
- [Fedora Silverblue](https://fedoraproject.org/atomic-desktops/silverblue/download) is a fully prepared gnome desktop distribution.
- [cicd-bootc](https://github.com/nzwulfin/cicd-bootc) example repository with github action workflow for building images
- [universal-blue](https://universal-blue.org) prebuilt image provider (Aurora, Bazzite, Bluefin, uCore)
- [image building guidance](https://bootc-dev.github.io/bootc/building/guidance.html)
- [authentication in images](https://docs.fedoraproject.org/en-US/bootc/authentication)
- [provisioning with qemu and libvirt](https://docs.fedoraproject.org/en-US/bootc/qemu-and-libvirt)
- [fedora base images](https://docs.fedoraproject.org/en-US/bootc/base-images)
- [bootc image builder](https://github.com/osbuild/bootc-image-builder)
- [building bootc images from scratch](https://docs.fedoraproject.org/en-US/bootc/building-from-scratch)
- [building derived images](https://docs.fedoraproject.org/en-US/bootc/building-containers)
- [osbuild partitioning](https://osbuild.org/docs/user-guide/partitioning)
- [osbuild blueprint reference](https://osbuild.org/docs/user-guide/blueprint-reference)
- [filesystem guide](https://bootc-dev.github.io/bootc/filesystem.html)
It is possible to keep a revision by pinning it: `ostree admin pin 0`
## Installed Software
- man
- langpacks: en, de
- default-fonts-cjk
- Gnome + Software
- curl
- git
- btop
- nvtop
- tmux
- pciutils
- tailscale
- make
- fzf
- direnv
- xsel
- ffmpeg
- pandoc
- ansible
- sqlite
- netcat
- tor & torbrowser-launcher
- podman compose
- hugo
- Flatpak (with default repository configured)
- Chromium
- Veracrypt
- VSCode
- NVIDIA Drivers
## Referenced Sources for NVIDIA Driver Installation
### NVIDIA
- https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
- https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#handle-uninstallation
- https://developer.nvidia.com/cuda-downloads
### ublue-os
- https://github.com/ublue-os/main
- https://github.com/ublue-os/akmods
- https://github.com/ublue-os/hwe/pkgs/container/akmods-nvidia
### RPM Fusion
- https://rpmfusion.org/Howto/NVIDIA
### Bluefin
- https://github.com/ublue-os/bluefin/blob/main/build_files/base/03-install-kernel-akmods.sh
- https://github.com/ublue-os/bluefin/blob/main/build_files/base/19-initramfs.sh
### Notes
Those also include links that didn't work out in the end for various reasons, the one I use now is based on ublue-os/main scripts.