Как вернуть звук барабанной дроби в Ubuntu 17.10, когда система готова для входа в систему

12

В Ubuntu 16.04, когда я включал компьютер, звук барабанной дроби проигрывался прямо перед тем, как мне представили интерфейс Login. После того, как я обновился до Ubuntu 17.10, звук барабанной дроби больше не воспроизводится. Я провел некоторое исследование в Интернете и попробовал следующее, что позволило воспроизвести звук барабанной дроби, но только после того, как я вошел в систему.

Я запустил Настройки запуска приложений и добавил элемент, который содержал следующее.

/usr/bin/canberra-gtk-play --id="desktop-login" -f /usr/share/sounds/ubuntu/stereo/system-ready.ogg

Но это позволило воспроизводить звук только после того, как я уже вошел в систему.

Я тоже пробовал

/usr/bin/canberra-gtk-play --id="system-ready" -f /usr/share/sounds/ubuntu/stereo/system-ready.ogg

Но это имело тот же эффект, что и другая попытка; Звук барабана звучит только после того, как я вошел в систему.

Поэтому я спрашиваю, нашел ли кто-нибудь способ включить звук барабанной дроби до того, как пользователь войдет в систему, когда пользователю будет представлен диалог входа в систему.

Я также попробовал --id = "system-bootup", который должен был поднять звук барабанной дроби намного раньше. Но даже с этой настройкой звук барабанной дроби не воспроизводился до тех пор, пока я не вошел в систему.

Ричард Фур
источник
Переход на lightdm с gdm3 может решить эту проблему. Хотя экран регистрации будет выглядеть 17.04. удачная установка lightdm dpkg-перенастроить lightdm
Артём
Если бы мы установили и использовали lightdm, и если он не работал, и если бы мы хотели вернуться к gdm3, как бы мы это сделали? Я подозреваю (без доказательств), что проблема, которую мы наблюдаем сейчас с барабанной дробью, - это (относительно незначительная) ошибка с 17.10
Ричард Фур,
подходящая чистка lightdm, dpkg-переконфигурирование gdm3
Артём
lightdm зависит от нескольких пакетов, которые нужно отодвинуть от xwayland, например, xserver-xorg *, unity * и т. д. Что делают ребята из gdm?
funicorn
Пожалуйста, скажите нам, если ответ сработал для вас, Ричард, так что тогда я могу просто поставить эту награду за это! ;-)

Ответы:

11

Вот способ использования пользовательского модуля systemd из домашнего каталога пользователя gdm.

  • Сохраните следующий файл как /var/lib/gdm3/.config/systemd/user/drumroll.service:

    [Unit]
    Description=Drumroll
    Requires=pulseaudio.socket
    After=systemd-user-sessions.service
    
    [Service]
    Type=simple
    Restart=no
    ExecStart=/usr/bin/paplay /usr/share/sounds/ubuntu/stereo/system-ready.ogg
    
    [Install]
    WantedBy=default.target
    

Вышеупомянутый системный модуль должен убедиться, что pulseaudio был запущен в пользовательском контексте gdm, и выполнить paplayкоманду (я не пробовал canberra-gtk-play, но я думаю, что она также работает).

After=systemd-user-sessions.serviceЗапустит службу только после того, как система будет готова к входу пользователей. (см. http://manpages.ubuntu.com/manpages/artful/man8/systemd-user-sessions.service.8.html )

  • Затем выполните:

    $ sudo mkdir -p /var/lib/gdm3/.config/systemd/user/default.target.wants
    $ sudo ln -s /var/lib/gdm3/.config/systemd/user/drumroll.service /var/lib/gdm3/.config/systemd/user/default.target.wants/drumroll.service
    $ sudo chown gdm:gdm /var/lib/gdm3/.config/systemd/user/{drumroll.service,default.target.wants}
    

Эти последние команды заставляют устройство запускаться автоматически при запуске сеанса systemd пользователя gdm.

  • Перезагрузитесь, чтобы проверить.

Проверить наличие ошибок немного сложно, потому что systemctl имеет ограничение на подключение либо к сеансу системы, либо к сеансу вызывающего пользователя . Сделать gdm вызывающим пользователем легко с помощью sudo, но необходимо настроить некоторую среду, чтобы можно было подключиться к сеансу пользователя systemd:

$ sudo -u gdm XDG_RUNTIME_DIR="/run/user/$(id -u gdm)" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status drumroll
● drumroll.service - Drumroll
   Loaded: loaded (/var/lib/gdm3/.config/systemd/user/drumroll.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2018-06-26 23:35:05 CEST; 36min ago
  Process: 1238 ExecStart=/usr/bin/paplay /usr/share/sounds/ubuntu/stereo/system-ready.ogg (code=exited, status=0/SUCCES
 Main PID: 1238 (code=exited, status=0/SUCCESS)

Я не пробовал это с 17.10, но с 18.04, но я не вижу причины, по которой 17.10 это не сработает.

Себастьян Старк
источник
Быстрее меня! +1!
Фабби
Я также уверен, что это будет работать с 17.10. В следующем месяце он устарел, поэтому OP все равно скоро обновится до 18.04. +1.
WinEunuuchs2Unix