Bericht: stretch mit anderem Init-System

Smalltalk
Benutzeravatar
MartinV
Beiträge: 539
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Bericht: stretch mit anderem Init-System

Beitrag von MartinV » 20.04.2018 00:03:05

RobertDebiannutzer hat geschrieben: ↑ zum Beitrag ↑
19.04.2018 23:50:43
Also wenn ich "pax11publish -e" mache, habe ich zwar auch so eine Ausgabe, wie Du, MartinV, aber leider beendet sich pulse dann - will sagen, Prozess ist futsch.
Das klingt nach einem pulseaudio bug. Ich habe keine Ahnung, wo pulseaudio sein log schreibt.

Etwas blind geraten: Vielleicht braucht pulseaudio eine "aktive session". So etwas wird von systemd-logind, elogind, consolekit oder consolekit2 bereitgestellt. Du hast aber aktuell keines davon laufen, oder?

Hast Du einen pulseaudio socket /run/user/1000/pulse/native? Oder ähnlich, jedenfalls in XDG_RUNTIME_DIR? Läuft bei dir dbus?

Wenn es über pax11publish nicht geht, könnte man eine TCP Verbindung zu pulseaudio aufbauen Das habe ich schon mal hingetrickst, könnte ich mal nachgucken, wie genau das ging.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

RobertDebiannutzer
Beiträge: 193
Registriert: 16.06.2017 09:52:36

Re: Bericht: stretch mit anderem Init-System

Beitrag von RobertDebiannutzer » 20.04.2018 11:00:39

Der Reihe nach:
1. Richtig, irgendwas mit logind oder consolekit setze ich gerade nicht ein.
2. /run/user existiert bei mir nicht.

Ich zweifele aber daran, dass pulseaudio ein grundlegendes Problem hat, denn außer in der Sandbox von firejail funktioniert ja alles wie gewohnt.
Hier deswegen jetzt mal einfach der Log einer firefox-session, in der ich versuche, ein Video bei Youtube abzuspielen!

Code: Alles auswählen

Reading profile /etc/firejail/firefox.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-devel.inc
Reading profile /etc/firejail/disable-programs.inc
Reading profile /etc/firejail/whitelist-common.inc
Reading profile /etc/firejail/whitelist-var-common.inc
Blacklist violations are logged to syslog
0;firejail /opt/firefox/firefox ^GFailed to symlink /home/robert/.config/pulse/3b911989521147309cd4db36269d754f-runtime to /tmp/user/1000/pulse-vo2Zua5DICj6: Permission denied
fork(): Operation not permitted
Failed to symlink /home/robert/.config/pulse/3b911989521147309cd4db36269d754f-runtime to /tmp/user/1000/pulse-t6gN7KMjmznn: Permission denied
fork(): Operation not permitted
[Child 42, MediaPlayback #2] WARNING: 7f58baf46100 Can't get cubeb context!: file /builds/worker/workspace/build/src/dom/media/AudioStream.cpp, line 358
[Child 42, MediaPlayback #2] WARNING: Decoder=7f58bdfed3e0 [OnMediaSinkAudioError]: file /builds/worker/workspace/build/src/dom/media/MediaDecoderStateMachine.cpp, line 3755
Parent pid 6995, child pid 6996

Parent is shutting down, bye...
Was ist jetzt eigentlich das Fehlverhalten? Funktionierendes Audio oder nicht-funktionierendes Audio? Immer bezogen auf die Sandbox natürlich!

Wenn ich im Terminal eine firejail-shell öffne, also eine bash-session, die mit "default.profile" gesandboxt ist, kann ich auf /tmp/user/1000 zugreifen und dort z.B. eine Datei erstellen und löschen. Auch "ln -s [irgendeine Datei] /tmp/user/1000" funktioniert.

(Habe auch mal firefox.profile aus /etc/firejail nach nopaste hochgeladen:
http://nopaste.debianforum.de/40273
oder NoPaste-Eintrag40273)

RobertDebiannutzer
Beiträge: 193
Registriert: 16.06.2017 09:52:36

Re: Bericht: stretch mit anderem Init-System

Beitrag von RobertDebiannutzer » 20.04.2018 11:05:45

Nachtrag:
Am firefox-profile von firejail liegt es nicht. Wenn ich firefox mit firejail ohne Profil sandboxe, bekomme ich:

Code: Alles auswählen

$ firejail --noprofile /opt/firefox/firefox
Parent pid 17466, child pid 17467
Child process initialized in 54.47 ms
Failed to symlink /home/robert/.config/pulse/3b911989521147309cd4db36269d754f-runtime to /tmp/user/1000/pulse-SNdmoUxDouS3: Permission denied
fork(): Operation not permitted
Failed to symlink /home/robert/.config/pulse/3b911989521147309cd4db36269d754f-runtime to /tmp/user/1000/pulse-Xybl4xKkjPve: Permission denied
fork(): Operation not permitted
[Child 37, MediaPlayback #2] WARNING: 7f7ae9741dc0 Can't get cubeb context!: file /builds/worker/workspace/build/src/dom/media/AudioStream.cpp, line 358
[Child 37, MediaPlayback #2] WARNING: Decoder=7f7ae879da60 [OnMediaSinkAudioError]: file /builds/worker/workspace/build/src/dom/media/MediaDecoderStateMachine.cpp, line 3755

Parent is shutting down, bye...

Benutzeravatar
safran
Beiträge: 94
Registriert: 02.01.2008 04:46:07
Lizenz eigener Beiträge: Artistic Lizenz

Re: Bericht: stretch mit anderem Init-System

Beitrag von safran » 20.04.2018 18:07:32

hast du mal versucht als Benutzer im Terminal vorher

Code: Alles auswählen

xhost +
und dann

Code: Alles auswählen

firejail --noprofile /opt/firefox/firefox
zu starten?

Zum Debuggen ...

RobertDebiannutzer
Beiträge: 193
Registriert: 16.06.2017 09:52:36

Re: Bericht: stretch mit anderem Init-System

Beitrag von RobertDebiannutzer » 20.04.2018 20:31:58

Warum sollte das denn helfen? Audio hat mit X doch nix zu tun...
Naja, ich hab's trotzdem mal getestet, schließlich scheinen die Wege des Audio ja unergründlich... :wink:
Aber hat keine Veränderung gebracht.
Das ist wirklich irre. Ohne firejail-sandbox kann ich ganz gemütlich alles machen wie bisher, mit firejail-sandbox klappt es nicht und ich sehe bei youtube z.B. nur noch Stummfilme. Manchmal mag das ja wünschenswert sein, aber auf Dauer...
Anyway, vielleicht krieg' ich ja diesbezüglich doch noch was raus.
Möglicherweise braucht es doch das Paket Debianrtkit, welches eine Recommendation von Debianpulseaudio ist*.
Aber eigentlich kann es nicht an pulse liegen, sondern es muss irgendwie daran liegen, dass Restriktionen der sandbox zuvor mittels "logind-Magie" umgangen wurden, was nun ohne logind eben nicht mehr geht. Vielleicht hat es was mit diesen cgroups zu tun?

*... und selber wieder polkit empfiehlt, was mich wundert, denn entweder kann es mit seinen "scheduling policies" umgehen, oder eben nicht...

Apropos Abhängigkeiten:
@MartinV: Dbus ist bei mir installiert.

Benutzeravatar
MartinV
Beiträge: 539
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Bericht: stretch mit anderem Init-System

Beitrag von MartinV » 21.04.2018 13:21:54

2. /run/user existiert bei mir nicht.
Ich bemerke, daß dieser Ordner beim Aufruf von dbus erzeugt wird, vermutlich von einem Service, den dbus startet. policykit vielleicht?
Ich frage mich, wo Dein pulseaudio socket ist, wenn nicht dort. Du könntest Deine Platte mal nach "pulse/native" durchsuchen.
Vielleicht hilft es, den socket nach /tmp/user/1000 von firejail zu verlinken, falls das irgendwie geht. Wahrscheinlich muß außerdem PULSE_SERVER gesetzt werden.
Aber eigentlich kann es nicht an pulse liegen, sondern es muss irgendwie daran liegen, dass Restriktionen der sandbox zuvor mittels "logind-Magie" umgangen wurden, was nun ohne logind eben nicht mehr geht. Vielleicht hat es was mit diesen cgroups zu tun?
Ich tippe eher auf policykit.

Code: Alles auswählen

Failed to symlink /home/robert/.config/pulse/3b911989521147309cd4db36269d754f-runtime to /tmp/user/1000/pulse-vo2Zua5DICj6: Permission denied
Failed to symlink /home/robert/.config/pulse/3b911989521147309cd4db36269d754f-runtime to /tmp/user/1000/pulse-t6gN7KMjmznn: Permission denied
Existieren diese Dateien? Was sagt "ls -l"? Vielleicht sind die Zugriffsrechte auf Dich begrenzt, aber firejail läuft als anderer User?
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

RobertDebiannutzer
Beiträge: 193
Registriert: 16.06.2017 09:52:36

Re: Bericht: stretch mit anderem Init-System

Beitrag von RobertDebiannutzer » 23.04.2018 22:11:52

Hm, als socket vermute ich bei mir:

Code: Alles auswählen

$ pactl info
Server String: /tmp/user/1000/pulse-PKdhtXMmr18n/native
[…]

Code: Alles auswählen

$ ls -lF /tmp/user/1000/pulse-PKdhtXMmr18n/
total 4
srwxrwxrwx 1 robert robert 0 Apr 23 21:55 native=
-rw------- 1 robert robert 6 Apr 23 21:55 pid
Die Dateien verschwinden übrigens nach ein paar Sekunden, wenn man keine Musik hört oder mit "pactl info" den Schlummer von pulseaudio stört.

So wie ich es verstehe, könnte man den socket auch als environment variable spezifizieren:
Aus "man pulseaudio":

Code: Alles auswählen

       $PULSE_SERVER: the server string specifying the server to connect to when a client asks for a sound server connection and doesn't explicitly ask for a specific server. The server string is a list  of
       server  addresses  separated  by whitespace which are tried in turn. A server address consists of an optional address type specifier (unix:, tcp:, tcp4:, tcp6:), followed by a path or host address. A
       host address may include an optional port number. A server address may be prefixed by a string enclosed in {}. In this case the following server address is ignored unless the prefix string equals the
       local hostname or the machine id (/etc/machine-id).
firefox läuft unter firejail nicht als anderer Benutzer.

Wegen rtkit:
Als ich meinte, dass es verwunderlich ist, dass das Paket Debianrtkit polkit empfiehlt, meinte ich:
1. polkit ist für die "scheduling policies" nötig, dann muss es eine Abhängigkeit sein, sonst ist der Sinn des Paketes rtkit (entsprechend der Beschreibung) ja nicht gegeben.
2. polkit ist nicht nötig, warum ist es dann eine "Empfehlung"?
Vielleicht probier' ich rtkit trotzdem mal...
Fakt wäre dann aber, dass firejail durch /rtkit/systemd/wasauchimmer in gewissem Maße aufgebrochen wird, oder?
Denn ohne firejail geht ja sowieso alles.

RobertDebiannutzer
Beiträge: 193
Registriert: 16.06.2017 09:52:36

Re: Bericht: stretch mit anderem Init-System

Beitrag von RobertDebiannutzer » 29.04.2018 13:09:13

Habe gerade gesehen, dass das mit rtkit auch schon anderen aufgefallen ist:
Debian Bugreport881342

Zitate daraus:
As I said on IRC, I can't think of any scenario where rtkit is useful
without dbus and polkit. […]
Withouut polkit, rtkit will start but will refuse to make any processes
realtime and is therefore a bit useless.

In my opinion, this bug is RC […].
Move dbus and polkit from Recommends to Depends

rtkit can't do much really without either of them so bump them to Depends.
Entsprechend hängt rtkit in buster/sid dann auch von policykit-1 ab:
https://packages.debian.org/buster/rtkit
https://packages.debian.org/sid/rtkit

Naja, dann lass ich das mit rtkit erstmal, bis ich herausgefunden habe, wie das nun ist mit firejail und pulse.

RobertDebiannutzer
Beiträge: 193
Registriert: 16.06.2017 09:52:36

Re: Bericht: stretch mit anderem Init-System

Beitrag von RobertDebiannutzer » 07.05.2018 16:47:59

Sieh' an, die without-systemd-wiki hat ihre Seite umgebaut...
Die neue Hauptseite enthält weniger Quark: http://without-systemd.org/wiki/index.php/Main_Page
Und hier werden die Argumente nun aufgedröselt: http://without-systemd.org/wiki/index.p ... st_systemd

Z.B. finden sich nun unter dem Punkt "Ignorance of fundamental operating system concepts", konkretere Kritikpunkte mit Links.
Muss ich mir alles mal anschauen, vielleicht ist es nun interessanter.
Aber was auch interessant wäre: Wer von den Leuten, die diese Wiki schreiben, liest hier mit?

Antworten