Small issues (and fixes) when moving to Ubuntu 23.04
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 :-)