Skip to content

Instantly share code, notes, and snippets.

@PatrickLang
Last active April 9, 2021 06:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PatrickLang/d37f4c1527dfa52c5719f8d82175fc2d to your computer and use it in GitHub Desktop.
Save PatrickLang/d37f4c1527dfa52c5719f8d82175fc2d to your computer and use it in GitHub Desktop.
Fedora 34 Jam Notes

Crash adding inputs - currently not repro

Investigating issue: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/796

@wtay suggested trying jack_lsp after a failure. Installing that.

sudo dnf download --downloadonly jack-audio-connection-kit-example-clients.x86_64
sudo rpm -i --nodeps jack-audio-connection-kit-example-clients-1.9.16-2.fc34.x86_64.rpm

few things about systemd (I'm old school, used to init.d)

systemctl status --user pipewire*
systemctl restart --user pipewire.service
journalctl -fu pipewire.service

Crash with firefox concurrent

https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/803

Installation

The LiveCD was broken for a while, but now it's available again at https://openqa.fedoraproject.org/nightlies.html

The rest of the notes on here were from my investigation

Package install / LiveCD creation failures

https://buildsys.fedoraproject.org/koji/taskinfo?taskID=62342340

The current failure seems to be with studio-controls. I was able to install some of the others without issues.

09:53:51,558 DBG modules.payloads.payload.dnf.dnf_manager: Transaction include list:
['@kde-desktop-environment', '@core', '@anaconda-tools', '@audio', '@firefox', '@kde-apps', '@kde-media', '@kde-office', '@x86-baremetal-tools', 'aajohan-comfortaa-fonts', 'anaconda', 'anaconda-install-env-deps', 'anaconda-live', 'chkconfig', 'dracut-live', 'emacs', 'emacs-color-theme', 'falkon', 'fedora-jam-backgrounds', 'fedora-jam-kde-theme', 'fedora-release-kde', 'firefox', 'fuse', 'glibc-all-langpacks', 'initscripts', 'k3b', 'kde-l10n', 'kernel', 'kernel-modules', 'kernel-modules-extra', 'kernel-tools', 'mariadb-connector-c', 'mariadb-embedded', 'mariadb-server', 'mediawriter', 'multimedia-menus', 'nano', 'pipewire', 'screen', 'system-config-language', 'thunderbird', 'vim', 'kernel']
09:53:51,558 DBG modules.payloads.payload.dnf.dnf_manager: Transaction exclude list:
['@admin-tools', '@input-methods', 'akregator', 'desktop-backgrounds-basic', 'device-mapper-multipath', 'digikam', 'fcoe-utils', 'gnome-disk-utility', 'hplip', 'iok', 'isdn4k-utils', 'kaddressbook', 'kdeaccessibility*', 'kipi-plugins', 'kmail', 'kontact', 'korganizer', 'mpage', 'non-mixer', 'non-sequencer', 'non-session-manager', 'sane-backends', 'scim*', 'system-config-printer', 'system-config-services', 'system-config-users', 'xsane', 'xsane-gimp']
09:53:52,896 WRN ui.tui.spokes.software_selection: Transaction error 
 Problem: package sooperlooper-1.7.3-17.fc34.x86_64 requires libjack.so.0()(64bit), but none of the providers can be installed
  - package pipewire-jack-audio-connection-kit-0.3.22-4.fc34.i686 conflicts with jack-audio-connection-kit provided by jack-audio-connection-kit-1.9.16-2.fc34.x86_64
  - conflicting requests
  - package studio-controls-2.1.0-2.fc34.noarch requires jack-audio-connection-kit-dbus, but none of the providers can be installed
  - package pipewire-jack-audio-connection-kit-0.3.22-4.fc34.x86_64 conflicts with jack-audio-connection-kit-dbus provided by jack-audio-connection-kit-dbus-1.9.16-2.fc34.x86_64
09:53:52,896 INF threading: Thread Done: AnaCheckSoftwareThread (140410601076288)

Source seems to be at https://pagure.io/fedora-kickstarts/blob/main/f/fedora-live-jam_kde.ks , but studio-control is part of @audio. Need to find where that is defined and remove it. Instructions to build are at https://docs.fedoraproject.org/en-US/quick-docs/creating-and-using-a-live-installation-image/#proc_creating-and-using-live-cd

I'm running just a few hours behind someone else - it looks like fixes are on the way

Bug Tracking

Current Issues

Wayland + KDE + monitor switch = fail

https://bugs.kde.org/show_bug.cgi?id=420160 is still a problem. Need to use X11 session instead.

Multiple audio devices - crashing Ardour

coredumpctl list - list recent dumps coredumpctl debug <pid> - debug a past dump

This was helpful for getting backtraces, showing how the dnf debuginfo-install works. https://fedoraproject.org/wiki/StackTraces

Filed issue: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/796

Testing ideas to look into later

  • Mixxx from flathub
    • USB-Midi working?
    • Jack/pulseaudio/... working?
  • Mixxx on wayland - missing waveforms

Solved?

  • Hot plugging USB devices isn't working well. Need to run a systemctl --user restart pipewire.service to find the devices, then pavucontrol, then the KDE control panel seems to see them

Smartcard/Yubikey and browser hangs

Both Firefox and Chromium seem to hang at launch with yubikey plugged in. Not good.

(not reproducing on F34 beta)

As part of testing https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/921 , there was a suggested fix. I wanted to install this via RPMs for testing (instead of testing locally), so I needed to rebuild.

Getting & modifying source

  1. Found source linked from koji at https://src.fedoraproject.org/rpms/pipewire

  2. Cloned it

Modified specfile

Uncommented this, changed it:

#global snapdate   20210107
#global gitcommit  b17db2cebc1a5ab2c01851d29c05f79cd2f262bb
#global shortcommit %(c=%{gitcommit}; echo ${c:0:7})

to:

%undefine _disable_source_fetch
%global snapdate   20210330
%global gitcommit  f0ab2bc1dbfc9bffac2b3d3876c49513bbc27e86
%global shortcommit %(c=%{gitcommit}; echo ${c:0:7})

Then installing build prerequisites?

sudo dnf builddep pipewire.spec

Running build

spectool -g -R pipewire.spec 
rpmbuild -bs pipewire.spec

(not working)

This worked, but returned an error.

fedpkg --release f34 local

I needed to remove some stale patches, and add a new binary (pw-loopback) added recently. It worked after that.

Upgrading

cd x86_64
rpm -U <packages>

References

Initial observations:

  • Plays audio with default snd_firewire_motu module and pipewire. The same sample rate / buffer size switching issues persist in Ardour just like with USB devices
  • Not showing up using Jack driver in Mixxx
  • ffado-mixer is non-functional
  • Sample rate locked to default for pipewire (see /etc/pipewire/pipewire.conf)
  • Name shows up odd in pulseaudio - XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah... even though it is ok in aplay -l

Tips when using kernel driver

Run pavucontrol and switch the profile to "Pro Audio". The channel names make a bit more sense but there is an offset. Analog 1/2 are reported as capture_3 and capture_4

Switching to FFADO/Jack

Some good info at https://linuxgamecast.com/2020/07/interfacing-linux-motu-traveler-mki/

  1. Prevent the alsa driver from loading

Created /etc/modprobe.d/alsa-nope.conf

blacklist snd-fireworks
blacklist snd-bebob
blacklist snd-oxfw
blacklist snd-dice
blacklist snd-firewire-digi00x
blacklist snd-firewire-tascam
blacklist snd-firewire-lib
blacklist snd-firewire-transceiver
blacklist snd-fireface
blacklist snd-firewire-motu
  1. Install Jack, allowing it to remove pipewire-jack-audio-connection-kit
 sudo dnf install --allowerasing jack-audio-connection-kit
Last metadata expiration check: 3:00:10 ago on Sat 06 Mar 2021 08:07:42 PM PST.
Dependencies resolved.
================================================================================================================================================
 Package                                              Architecture             Version                          Repository                 Size
================================================================================================================================================
Installing:
 jack-audio-connection-kit                            x86_64                   1.9.16-2.fc34                    fedora                    538 k
Removing dependent packages:
 pipewire-jack-audio-connection-kit                   x86_64                   0.3.23-1.fc34                    @System                   215 k

Transaction Summary
================================================================================================================================================
Install  1 Package
Remove   1 Package

  1. Fix up realtime permissions. There are already some set in JACK, but need to add user. Starting jack was failing to get realtime priority.

(This got me on the right track https://linuxmusicians.com/viewtopic.php?t=21332)

sudo usermod -a -G jackuser patrick

This still didn't fix ffado-mixer so I'm not sure yet if it's worth it. Sometimes playback breaks too. All the articles say a realtime kernel is needed so maybe it stops playing when there is an underrun?

It does hide the device from pipewire though which means it can run different sample rate & buffer sizes.

Mixxx needs Jack started manually with qjackctl or whatever you prefer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment