I am itching to perform this investigation using bootc in a fully container native way yet getting it kickstarted successfully will be helpful in the mean time.
Testing a minimal install
starting on a disconnected network using
CentOS-Stream-10-20250122.0-x86_64-dvd1.iso
kickstart where some commands affect what packages anaconda decides to install but mainly packages come from
%packages --inst-langs=en_US.UTF-8 --exclude-weakdeps
@core
#Mandatory
-grubby
-sssd-common
-sssd-kcm
-yum
#Default
NetworkManager
dnf-plugins-core
#Optional
#end group core
%end
Next get audio working
still disconnected by adding to the %package
section
acl
pipewire-alsa
pipewire-utils
sound-theme-freedesktop
wireplumber
Test for audio
Upon first regular user login:
systemctl --user status wireplumber.service
systemctl --user status pipewire.service
#this next command will hit the wireplumber socket kicking off the services
wpctl status
#this will give status for real
wpctl status
pw-play /usr/share/sounds/freedesktop/stereo/audio-channel-front-right.oga
Some notes on audio
kernel supplies sound drivers
Since the kernel has logic to load the modules that go with detected hardware, couldn’t rpm leverage that and only unpack onto the filesystem the required files for said hardware?
rpm -ql kernel-modules | grep /kernel/sound/
alsa configures the sound cards
Could be pared down to just what the hardware present requires during rpm installation?
Not sure what alsa-ucm is all about but it was not installed.
rpm -ql alsa-lib
firmware may increase functionality for some cards (I did not install any firmware for the test vm using virtio audio). Could be pared down to just what the hardware present requires during rpm installation?
rpm -ql linux-firmware alsa-firmware alsa-sof-firmware alsa-tools-firmware
systemd controls access to the resultant audio devices as well as other devices
rpm -ql systemd-udev | grep uaccess
find dev -not -type d,l | while read d;do echo $(getfacl $d);done | grep user:${USER}:
pipewire uses alsa for sound to source/sink
wireplumber configures/manages pipewire
A lot happens when switching users without logging off.
Once this moves to bootc the extra files could all be pruned effectively. Should be interesting…
I am still working on the gui strategy. I would like to use weston but so much has already been done in gnome maybe mutter without gnome-shell? If any interest is shown I’ll add to this topic as I proceed.