GNOME, kein Ton

Sound, Digitalkameras, TV+Video und Spiele.
inne
Beiträge: 3273
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: GNOME, kein Ton

Beitrag von inne » 21.07.2018 17:58:23

Code: Alles auswählen

 fuser -v /dev/dsp* /dev/snd/* 
                     BEN.        PID ZUGR.  BEFEHL
/dev/snd/controlC0:  timidity   1078 F.... timidity
/dev/snd/pcmC0D0p:   timidity   1078 F...m timidity
/dev/snd/seq:        timidity   1078 F.... timidity
/dev/snd/timer:      timidity   1078 f.... timidity
Ich hab das timidity nun mal deinstalliert und nun habe ich wieder Ton! Habe gestern wirklich alles mögliche installiert apt-get install multimedia-\*, das nur zur Info und @all, weil ich mich da mal etwas umsehen wollte.

Aber Danke geier22!

Das war das Problem. Ist das evtl. als Bug einzustufen oder soll das so?

:facepalm:

inne
Beiträge: 3273
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: GNOME, kein Ton

Beitrag von inne » 21.07.2018 18:10:05

inne hat geschrieben: ↑ zum Beitrag ↑
21.07.2018 17:58:23
Aber Danke geier22!
Vielen, vielen Dank natürlich :-) Und den anderen selbstverständlich auch Danke für die Hilfe!

geier22

Re: GNOME, kein Ton

Beitrag von geier22 » 21.07.2018 18:11:02

Wäre ja nun zu fragen, warum der gestartet (Autostart ?) ist, bzw nicht beendet wird (wurde) :?:
Vielleicht hätte ein "kill oder killall timidity" gereicht.
Aber Schön und Gut ---> Problem erst mal weg :mrgreen:
Ach Ja: :mrgreen:
Listening to: 'Back To San Francisco' from 'Spanish Guitar - Audiophile classic collection' by 'Nova Menco' with JRiver Media Center 24

inne
Beiträge: 3273
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: GNOME, kein Ton

Beitrag von inne » 21.07.2018 18:22:18

HaHa.

So tief stecke ich in der Multimediasache noch nicht drin. Welches Paket wofür ist usw. Aber ein systemctl disable timidity hätte wohl wirklich gereicht.
PS: Ob ich es überhaupt schaffe brauchbare Animationen und Sounds für meine kleine App zu kreiere, das steht auch noch auf einem anderen Blatt. ;-) Noch ist es ein langweilig Formular aber es soll ein Slotmaschine Look bekommen^^ Aber gut.. wieviel Elan ich da aufbringe will.

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: GNOME, kein Ton

Beitrag von smutbert » 21.07.2018 23:50:30

inne hat geschrieben: ↑ zum Beitrag ↑
21.07.2018 17:58:23
[…]
Das war das Problem. Ist das evtl. als Bug einzustufen oder soll das so?

:facepalm:
ich würde es nicht als Bug einstufen.
Solche Probleme hat man mit mehreren systemweiten Daemonen, die Töne ausgeben wollen (neben timidity zB Debianmpd und auch mit anderen Programmen, die nicht unter dem Account des lokal angemeldeten Benutzers laufen). Das liegt daran, dass Pulseaudio vom angemeldeten Benutzer gestartet wird und in der Standardkonfiguration exklusiven Zugriff auf die Soundkarte benötigt, aber nur mit den Programmen funktioniert, die vom gleichen Benutzer gestartet wurden.
Entweder also timidity oder andere (Alsa-)Anwendungen/Daemonen anderer Benutzer blockieren die Soundkarte und hindern Pulseaudio am Funktionieren oder Pulseaudio bekommt zuerst Zugriff auf die Soundkarte und verhindert, dass die Daemonen Zugriff auf die Soundkarte erhalten.

Es gibt einige Möglichkeiten das zu umgehen. Auf Anhieb fällt mir ein
  1. in der Pulseaudio-Instanz des Benutzers anderen Anwendungen, Benutzern und/oder sogar Computern den Zugriff über das Netzwerk erlauben.
  2. Pulseaudio lässt sich als systemweiter Daemon einrichten, auf den dann auch andere Daemonen/Benutzer Zugriff haben, vorausgesetzt sie sind in der Gruppe pulse-access. Dabei gehen aber einige Features von Pulseaudio verloren (aus Sicherheitsgründen).
  3. Pulseaudio so konfigurieren, dass es die Soundkarte nicht mehr exklusiv in Beschlag nimmt sondern sich den Zugriff über Alsas dmix-Plugin mit anderen Alsa-Anwendungen teilt. Auch dabei verliert man viele Funktionen von Pulseaudio.
  4. Die fraglichen Daemonen als normaler Benutzer starten, damit sie ohne weitere Maßnahmen mit der Pulseaudioinstanz des Benutzers interagieren können. Das geht imho auch mit timidity, vor allem kenne ich es aber von mpd, das automatisch unter dem Benutzeraccount gestartet wird, wenn eine benutzereigene Konfigurationsdatei existiert.
  5. Pulseaudio deinstallieren und nur mehr Alsa verwenden ☺
(ich habe mich bis jetzt je nach Anwendungsfall für 2. oder 5. entschieden, würde inzwischen wo es möglich ist statt mit 5. eher mit 4. versuchen)


Die Mitgliedschaft in der Gruppe audio sollte für den normalen Benutzer übrigens in keinem der Fälle notwendig sein, weil systemd-logind dem lokal angemeldeten Benutzer über ACLs Rechte an einigen Gerätedateien einräumt, ua den Gerätedateien von Alsa.

inne
Beiträge: 3273
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: GNOME, kein Ton

Beitrag von inne » 22.07.2018 13:33:22

smutbert hat geschrieben: ↑ zum Beitrag ↑
21.07.2018 23:50:30
Es gibt einige Möglichkeiten das zu umgehen. Auf Anhieb fällt mir ein
  1. in der Pulseaudio-Instanz des Benutzers anderen Anwendungen, Benutzern und/oder sogar Computern den Zugriff über das Netzwerk erlauben.
Mir würde diese gefallen, damit ich an Konfiguration alles in ~ von UID 1000 belassen kann.

// Kann 1. via Debianpaprefs eingerichtet werden (An diese GUI habe ich gedacht)?
// Und das wirklich ein Lösung wenn timidity-daemon hier blockiert.

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: GNOME, kein Ton

Beitrag von smutbert » 22.07.2018 13:57:47

Ja, das sollte grundsätzlich funktionieren und mit paprefs ist das möglich. Du musst halt darüber hinaus eventuell noch in der timidity-Konfiguration dafür sorgen, dass der Ton auch bei Pulseaudio landet. In »/usr/share/doc/timidity/README.Debian« ist unter „Pulseaudio“ beschrieben, wie man timidity für die Variante 2 konfiguriert und bei 1. sollte es was den Teil in der timidity-Konfiguration angeht dasselbe sein – möglicherweise ist es notwendig zusätzlich im Abschnitt pcm.pulse den Server anzugeben, auf dem Pulseaudio läuft

Code: Alles auswählen

pcm.pulse {
            type pulse
            server "localhost"
}

…

inne
Beiträge: 3273
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: GNOME, kein Ton

Beitrag von inne » 22.07.2018 14:15:06

In /etc/default/timidity das TIM_ALSASEQ=false setzen scheint erst einmal schon zu reichen.
Einen Pulseaudio-Abschnitt hats in der README hier nicht.

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: GNOME, kein Ton

Beitrag von smutbert » 22.07.2018 15:50:58

Vielleicht führt das aus irgendeinem Grund dazu, dass timidity die Soundkarte nicht dauerhaft blockiert. Wenn beide (timidity und Pulseaudio) die Soundkarte wieder „loslassen“, wenn sie nichts zu tun haben (Pulseaudio tut das), dann funktionieren die beiden zumindest abwechselnd, aber damit werden sie nicht gleichzeitig funktionieren können.

___

In der »/usr/share/doc/timidity/README.Debian« von Debiantimidity aus der Version in stretch steht bei mir am Ende eine Beschreibung, wie timidity mit einem systemweiten Pulseaudio zusammenarbeitet

Code: Alles auswählen

[…]

 Pulseaudio
 ----------

If you use a systemwide pulseaudio daemon, and you also want to run the timidity
sequencer systemwide, make sure the root user uses the correct alsa pulseaudio
configuration.  This can be done by creating a file /etc/asound.conf with the
following content:

#-- begin --
pcm.pulse {
            type pulse
}

ctl.pulse {
             type pulse
}

pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
#-- end --

And also add the root user to the pulse-access group:

# adduser root pulse-access

This will cause timidity to use pulseaudio. This is only an example; more
advanced setups might require more or different configuration. Please
consult the pulseaudio documentation.

Alternatively you could run timidity in daemon mode as user.

[…]

Ich habe aber keine Idee warum das aus der Readme verschwunden ist. Weder auf der Homepage von timidity noch im Changelog von Debian habe ich einen Hinweis darauf gefunden und ich kann mir keine brauchbare Erklärung vorstellen warum so eine Maßnahme plötzlich nicht mehr notwendig sein sollte (wenn man timidity-daemon verwenden will).

inne
Beiträge: 3273
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: GNOME, kein Ton

Beitrag von inne » 23.07.2018 09:49:24

Das tuts auch, habs jetzt so konfiguriert. Aber was bringt es root in die Gruppe pulse-access aufzunehmen, da hats doch schon alle Rechte? Das habe ich (erst einmal) weggelassen.

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: GNOME, kein Ton

Beitrag von smutbert » 23.07.2018 10:58:19

Dasselbe habe ich mir auch gedacht (ohne mir 100%ig sicher zu sein).

Das alleine sollte aber noch nicht funktionieren, denn ohne weitere Maßnahmen kann sich root ja noch nicht mit Pulseaudio verbinden (also entweder Pulseaudio als systemweiten Daemon einrichten oder in Pulseaudio Zugriff über das Netzwerk erlauben, wie du es wolltest oder bereits getan hast, dann ist es wie geschrieben möglicherweise notwendig zusätzlich localhost als Server anzugeben.)

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: GNOME, kein Ton

Beitrag von smutbert » 26.07.2018 20:18:13

Nachdem auch michaa7 ein paar Probleme hatte, habe ich mir timidity und timidity-daemon etwas genauer angesehen und nun eine etwas elegantere Lösung, die noch dazu auch problemlos funktioniert (sie stammt aus diesem Bugreport Debian Bugreport745373):

Es gibt nämlich neben dem offensichtlichen Problem, mit dem Zugriff auf die Pulseaudio-Instanz des Users, die noch dazu zum Zeitpunkt des Starts von timidity-daemon noch gar nicht läuft (was ich gar nicht bedacht habe) noch mindestens 2 weitere Schwierigkeiten.

Die Lösung besteht darin den timidity-Daemon als Benutzer beim Anmelden zu starten (bzw. automatisch starten zu lassen). Damit hat timidity automatisch Zugriff auf den Alsa-Sequencer und auf Pulseaudio, das dann beim Start auch schon läuft. Obendrein ist die Lösung wesentlich einfacher als die bisherigen Ideen:
  1. Es ist empfehlenswert alle bisherigen Änderungen an der timidity-Konfiguration und an Alsa (»/etc/asound.conf«), die aus diesem Anlass gemacht wurden, rückgängig zu machen!
  2. Debiantimidity-daemon deinstallieren. Das Paket beinhaltet lediglich ein init-Skript, das in der Lösung nicht verwendet wird (und mit Pulseaudio ohnehin nicht richtig funktioniert).
  3. Eine systemd-unit für den Start von timidity anlegen und zwar als Benutzer-unit »/etc/systemd/user/timidity.service« mit dem Inhalt

    Code: Alles auswählen

    [Unit]
    Description=TiMidity++ Daemon
    After=sound.target
    
    [Service]
    ExecStart=/usr/bin/timidity -iA -Os
    
    [Install]
    WantedBy=default.target
    
  4. Die systemd-Unit per default für alle Benutzer aktivieren

    Code: Alles auswählen

    # systemctl --user --global enable timidity.service
    
  5. und entweder neu anmelden oder die timidity-Unit starten

    Code: Alles auswählen

    $ systemctl --user start timidity.service
    
Dann sollte sich timidity beispielsweise mit aplaymidi nutzen lassen

Code: Alles auswählen

$ aplaymidi -p 128:0 meine-midi-Datei.mid

inne
Beiträge: 3273
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: GNOME, kein Ton

Beitrag von inne » 30.07.2018 14:15:13

Dann ist das timidiy-daemon Paket eigentlich falsch.. Aber gut, zwei UIDs/Prozesse können nicht den selben Port belegen usw.

gemma
Beiträge: 322
Registriert: 28.07.2010 12:19:49

Re: GNOME, kein Ton

Beitrag von gemma » 25.08.2018 01:07:22

Bei mit wars (mit ähnlichem Grundproblem, ohne tief zu forschen)
apt remove --purge alsa-oss
modprobe snd_hda_intel


PS: Evtl. für voodoo-affine die auf den Thread stoßen ;)
PPS: Für mich ist es allerdings ein Mysterium warum aplay nur als root etwas ausgegeben hat, obwohl alle (?) relevanten Gruppen für den user eingetragen sind?

Antworten