FluidSynth запускается автоматически при загрузке; зависание при входе – подключено? Как решить?

Вопрос или проблема

С тех пор как я перешел с Kubuntu 20.04 на Ubuntu Studio 22.04 (обе используют KDE Plasma), у меня возникло странное множество проблем. Мне интересно, могут ли они быть связаны, но моя главная цель – найти решение для проблемы №1. Все остальное – это просто icing on the cake.

Изначально я опубликовал это как гораздо более простой вопрос по проблеме №1, вместе с тем, что изначально думал, что это ответ и решение (которое все еще опубликовано как мой ответ ниже… не знаю, стоит ли это удалять).

Проблемы

В моей установке Ubuntu Studio происходят две странные вещи, но не всегда:

№1 – процесс fluidsynth иногда запускается автоматически при загрузке. Этого действительно не должно происходить. Fluidsynth – это синтезатор и он является бэкендом для QSynth и fluidsynth.dssi. Этот дистрибутив содержит много синтезаторов и нет причин, почему именно этот должен запускаться автоматически. Кроме того, когда fluidsynth запускается таким образом, я не могу завершить процесс в Мониторе системы – мне приходится использовать старый добрый “killall -9 fluidsynth”.

С ответом, который я изначально опубликовал ниже, я с тех пор удалил файл переопределения и возвратил переменную WantedBy= обратно к multi-user.target. Наличие/отсутствие переопределения или то, как я эту переменную настроил, по всей видимости, не имеет значения. Ни одно из них не вызывает поведения, которое всегда происходит или никогда не происходит.

№2иногда, при загрузке, курсор несколько раз мигает в окне входа и затем зависает, и я не могу войти, выключить или перезагрузить. Мне приходится переходить на tty и перезапускать sddm.service, и тогда всё начинает работать.

Возможные связи

В том, что происходит, кажется, нет особой последовательности. Тем не менее, два упомянутых выше явления кажутся связанными. Например, только что, при загрузке, fluidsynth автоматически запускался. Это произошло дважды подряд. Затем, при третьей загрузке, у меня возникла проблема с зависанием входа. Я перезапустил sddm.service, вошел в систему, и fluidsynth не запустился автоматически. Затем я снова перезагрузил, вход прошел нормально, и fluidsynth не запустился. Всё казалось в порядке.

Еще одна возможная связь заключается в том, что это может происходить чаще после того, как я загружался в Kubuntu на том же ноутбуке, отключал его, а затем загружался в Ubuntu Studio. Перед этой последней серией автоматических запусков я только что загрузился в Kubuntu. В Kubuntu fluidsynth никогда не запускается автоматически. Проблема(ы) также, похоже, более вероятны после определенных системных обновлений (в отличие от обновлений программного обеспечения).

Программы автозагрузки

В systemd есть fluidsynth.service. Однако, когда я перечисляю в терминале все сервисы systemd, работающие или не работающие, включая те, которые должны запускаться при загрузке, fluidsynth не отображается в списках. Он также не отображается в настройках Ubuntu Studio для программ автозагрузки.

Другая возможно релевантная информация о моей системе

Мой дистрибутив использует смесь ALSA, Pulseaudio и Jack2 для звука. Я также вижу, что в Мониторе системы есть несколько процессов Pipewire, но ничего «обслуживающего клиентов» не использует Pipewire (т.е. я не могу и не взаимодействую с ним вообще).

Информация, которую я собрал, которая может помочь с диагностикой

Чтобы попытаться разобраться в этом (не зная, что делаю, просто следуя советам в интернете), я обнаружил, что UID для процесса fluidsynth равен 1278, поэтому в терминале попробовал следующее (опубликовано как картинка, потому что не знаю, как вставить вложение)…

fluidsynth UID status

(График продолжался, но я только скопировал сюда, чтобы сэкономить место. Fluidsynth не подключается к остальным записям. Обратите внимание, что выше загружается soundfont по умолчанию-GM, который загружает fluidsynth. Fluidsynth нуждается в загружаемом soundfont, прежде чем он сможет издавать какие-либо звуки. В этой папке sf3 есть несколько файлов soundfont, но по какой-то причине этот загружается.

В конце этого дерева вывода идет следующее…)

fluidsynth UID status, ps

Я также проверил системный лог для fluidsynth и получил это…

system log

Итак, с этой всей информацией, может кто-нибудь помочь мне диагностировать/решить мою(и) проблему(ы), или хотя бы указать правильное направление?

Этот ответ – старая запись, которая, как я думал, решила мою проблему, но позже я обнаружил, что это не так. Я оставлю это здесь на всякий случай, если это может быть полезно. На данный момент я просто удалил Fluidsynth. Любые предложенные решения я попробую, если у меня возникнет такая же проблема, когда выйдет следующая версия Ubuntu Studio LTS.

Я нашел ответ на свой первоначальный вопрос, а также решение (в частности, благодаря помощи Муру в комментариях).

Причина, по которой Fluidsynth автоматически запускался при загрузке, заключалась в том, что, в отличие от того времени, когда я использовал установку Kubuntu 20.04 с оберткой Ubuntu Studio, эта установка Ubuntu Studio 22.04 по какой-то причине имеет Fluidsynth, настроенный на автоматический запуск.

В файле /usr/lib/systemd/user/fluidsynth.service, под [Install], переменная WantedBy= была установлена на default.target, что запускает процесс при загрузке. Kubuntu 20.04, с другой стороны, имела это настроено на multi-user.target и процесс не запускался автоматически.

Сначала я просто изменил эту переменную в новой установке, чтобы она соответствовала тому, как она была установлена в Kubuntu, что действительно сработало, но Муру предложил, что будущее обновление могло бы вернуть это обратно к умолчанию. Поэтому вместо этого я сделал следующее:

В терминале…

systemctl edit --user fluidsynth.service

Это создает новую папку в /home/user/.config/systemd/user под названием fluidsynth.service.d, и новый файл переопределения в этой папке, и открывает последний для редактирования в терминале. Под строкой “Все между здесь и комментарием ниже станет новым содержимым,” я добавил…

[Install] 
WantedBy= 
WantedBy=multi-user.target

Мой текстовый редактор (который был открыт в терминале) – Nano, поэтому после добавления вышеуказанных трех строк я ввел Ctrl+O, чтобы сохранить изменения, принял предложенное мне имя файла и затем вышел с помощью Ctrl+X.

Теперь этот вновь созданный файл переопределения в моей папке /home делает нечто волшебное в корневой папке, что останавливает systemd от автоматического запуска fluidsynth при загрузке.

Мой FluidSynth запустился в каком-то странном состоянии во время загрузки. Сразу после загрузки он как-то конкурировал с PulseAudio и оба брали около 12% времени ЦП каждое (согласно программе top) и быстро разряжали мой аккумулятор. Служба FluidSynth не была видна в systemctl, поэтому я думаю, что это ошибка.

Я избавился от плагина Alsa FluidSynth, переименовав его и перезагрузив после этого:

sudo mv /usr/lib/systemd/user/fluidsynth.service /usr/lib/systemd/user/fluidsynth.service_nevermore

Программа FluidSynth все еще работает как отдельное приложение – это то, что мне нужно больше всего.

Я понимаю, что это грязный обход. 🙂

Я столкнулся с автоматическим запуском fluidsynth и выполнил это, чтобы отключить его:

sudo systemctl --global disable fluidsynth.service

Затем я обнаружил, что все мои устройства midi Akai (или не-midi канала 1) входящие устройства перестали работать. Их можно было увидеть с помощью:

aseqdump-l 
amidi-l

Но никаких событий не поступало при игре. В конце концов, мне пришлось снова включить fluidsynth, чтобы все мои устройства midi снова заработали. И мне, похоже, придется смириться с тем, что fluidsynth всегда будет работать.

sudo systemctl --global disable fluidsynth.service

Там действуют довольно страшные зависимости…

Ответ или решение

Чтобы понять, как решить проблему автоматического запуска FluidSynth при загрузке и заморозки системы при входе, важно рассмотреть каждую из описанных вами проблем, их возможные взаимосвязи, а также предложить конкретные шаги для устранения неполадок.

Проблема 1: Автоматический запуск FluidSynth

Адаптация к новому дистрибутиву, такому как Ubuntu Studio 22.04, иногда приносит неожиданные проблемы. Вы упомянули, что FluidSynth запускается автоматически, хотя такое поведение не ожидалось. Вот несколько подходов для решения этой проблемы:

  1. Проверка и редактирование службы FluidSynth:

    • Откройте терминал и выполните команду:
      systemctl --user cat fluidsynth.service
    • Это позволит вам увидеть текущее состояние службы. Если WantedBy= установлено на default.target, это может вызывать автоматический запуск FluidSynth и следует изменить на multi-user.target.
  2. Создание переопределения для службы:

    • Выполните команду:
      systemctl edit --user fluidsynth.service
    • Добавьте следующий текст в открывшуюся редакторскую сессию:
      [Install]
      WantedBy=multi-user.target
    • Сохраните изменения и закройте редактор, что создаст пользовательское переопределение для службы.
  3. Отключение службы в глобальном масштабе:

    • Если вышеуказанное не работает, вы можете попробовать отключить службу с помощью следующей команды:
      sudo systemctl --global disable fluidsynth.service
    • Однако будьте осторожны — это может повлиять на работоспособность MIDI-устройств. Поэтому рекомендуется проверить работу всех мультимедийных функций после этого шага.
  4. Удаление FluidSynth:

    • Если FluidSynth не был жизненно необходим для ваших задач, можно и вовсе удалить его:
      sudo apt remove fluidsynth

Проблема 2: Заморозка при входе в систему

Заморозка во время входа может быть вызвана несколькими факторами, особенно если это происходит irregularly. Вот шаги, которые стоит рассмотреть:

  1. Переход в TTY:

    • При заморозке попробуйте переключиться в текстовый режим (TTY). Для этого нажмите Ctrl + Alt + F2. Это даст доступ к командной строке, откуда вы можете перезапустить дисплейный менеджер:
      sudo systemctl restart sddm.service
  2. Проверка системных журналов:

    • Ошибки в системных журналах могут дать подсказки. Используйте команду для просмотра журнала:
      journalctl -b -1
    • Эта команда покажет логи с последней загрузки, и вы сможете увидеть, что происходило во время заморозки.
  3. Обновление системы и ПО:

    • Убедитесь, что все пакеты обновлены до последних версий. Иногда обновления содержат исправления для ошибок, которые могут быть причиной заморозок:
      sudo apt update && sudo apt upgrade
  4. Проверка и настройка звуковых драйверов:

    • Звук является критически важным для многих мультимедийных приложений. Проверьте конфигурацию ALSA, PulseAudio и Jack, чтобы убедиться, что они не конфликтуют. Иногда ненужные компоненты, такие как PipeWire, могут вызывать проблемы совместимости.

Возможные взаимосвязи и общие рекомендации

Проблемы, с которыми вы столкнулись, могут быть связаны между собой. Например, конфликтующие аудио-системы могут вызвать нестабильность, приводящую к заморозкам при входе. Кроме того, частая перезагрузка между различными дистрибутивами (Kubuntu и Ubuntu Studio) может влиять на системные настройки.

Рекомендуется использовать только один дистрибутив на постоянной основе и избегать многократного переключения между системами, что может привести к конфликтам в конфигурации.

Надеюсь, предложенные шаги помогут вам устранить возникшие у вас проблемы с системой Ubuntu Studio 22.04 и улучшить пользовательский опыт. Если у вас остаются вопросы или неполадки, не стесняйтесь обращаться за дополнительной помощью.

Оцените материал
Добавить комментарий

Капча загружается...