Small issues (and fixes) when moving to Ubuntu 23.04

Page content

Recently I upgraded my main Ubuntu system from 22.10 (Kinetic Kudu) to 23.04 (Lunar Lobster). I’m used to having little downtime and only minor issues. The same applies now, except that I had some small issues. Since I can not be the only one, I wanted to share these (YMMV).

pipewire

Sound worked fine after the update, except for the volume knob of my Das Keyboard 4 (Ultimate Edition). Controlling the volume via the GUI worked fine by the way. Looking into the rc.lua of my Awesome WM config, I remembered I had a custom configuration for the volume knob.

old config

Running config with 22.10:

awful.key({}, "XF86AudioLowerVolume", function ()
    awful.spawn.with_shell("pactl set-sink-volume $( pacmd list-sinks | egrep '(name|index):' | egrep -A 1 '^.*\\* index:'  | tail -n 1 | cut -d: -f2 | tr -d '<> ' ) -5%") end),
awful.key({}, "XF86AudioRaiseVolume", function ()
    awful.spawn.with_shell("pactl set-sink-volume $( pacmd list-sinks | egrep '(name|index):' | egrep -A 1 '^.*\\* index:'  | tail -n 1 | cut -d: -f2 | tr -d '<> ' ) +5%") end),
awful.key({}, "XF86AudioMute", function ()
    awful.spawn.with_shell("pactl set-sink-mute $( pacmd list-sinks | egrep '(name|index):' | egrep -A 1 '^.*\\* index:'  | tail -n 1 | cut -d: -f2 | tr -d '<> ' ) toggle") end),

pactl was gone, but can be made available by installing pulseaudio-utils. Still pacmd will continue to error, because of pipewire (e.g. absence of pulseaudio itself):

user@host:~$ sudo apt-get install pulseaudio-utils
user@host:~$ pacmd
No PulseAudio daemon running, or not running as session daemon.

intermediate config

I found this thread (and answer) on Reddit, so I could fix my config:

awful.key({}, "XF86AudioLowerVolume", function ()
	awful.spawn.with_shell("pactl set-sink-volume @DEFAULT_SINK@ -5%") end),
awful.key({}, "XF86AudioRaiseVolume", function ()
	awful.spawn.with_shell("pactl set-sink-volume @DEFAULT_SINK@ +5%") end),
awful.key({}, "XF86AudioMute", function ()
	awful.spawn.with_shell("pactl set-sink-mute @DEFAULT_SINK@ toggle") end),

current config

Looking a bit futher, I found this thread on stack overflow, which pointed me to wireplumber, which saves me installing a “superfluous” pulseaudio-utils package. So my current config looks like this:

 awful.key({}, "XF86AudioLowerVolume", function ()
     awful.spawn.with_shell("wpctl set-volume @DEFAULT_SINK@ 5%-") end),
 awful.key({}, "XF86AudioRaiseVolume", function ()
     awful.spawn.with_shell("wpctl set-volume @DEFAULT_SINK@ 5%+") end),
 awful.key({}, "XF86AudioMute", function ()
     awful.spawn.with_shell("wpctl set-mute @DEFAULT_SINK@ toggle") end),

podman

errors

After updating, my podman containers (with several components) did not work correctly. Even running something simple, threw errors:

user@host:~/ $ podman run busybox echo "Hello world"
ERRO[0000] User-selected graph driver "vfs" overwritten by graph driver "overlay" from database - delete libpod local files to resolve.  May prevent use of images created by other tools

Other errors were for example:

WARN[0000] Error validating CNI config file /home/user/.config/cni/net.d/ra_default.conflist: [failed to find plugin "dnsname" in path [/usr/local/libexec/cni /usr/libexec/cni /usr/local/lib/cni /usr/lib/cni /opt/cni/bin]]

hmmm, updates

Looking into podman, I got updated to podman version 4.3.1 (from 3.4.4). Just to be safe, I also updated podman-compose to 1.0.6 (it’s a manual install). Hmmmm, this did not fix it, so I need to look a little deeper.

The networking backend changed from Podman 3 (CNI) to Podman 4 (aardvark / netavark). It’s still backwards compatible, but let’s move to the new stuff, since we’re fixing this anyway, making it future proof.

I was a bit presemptuous and had already deleted several bits, which I thought should have been deleted (based on stuff I read online). Warning, assume this will cause data loss!:

rm /home/user/.config/cni/net.d/*
rm -Rf /home/user/.local/share/containers

So this did not work as expected and only the CNI errors were ‘resolved’ by this.

yay, documentation

Luckily Red Hat has a great piece of documentation about this:

mkdir ${HOME}/.config/containers
cp /usr/share/containers/containers.conf ${HOME}/.config/containers/containers.conf
vim ${HOME}/.config/containers/containers.conf

Add the following to (or change) the [network] section and save the file:

network_backend="netavark"

Only thing left is to ‘reset’ the podman system. This means it resets the storage back to initial state (e.g. you lose all containers/images etc.). Warning: assume this will cause data loss! :

podman system reset

This fixed my issues and I could spin up my rootless containers again :-)