Bericht: stretch mit anderem Init-System

Smalltalk
Benutzeravatar
MartinV
Beiträge: 599
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: 267
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: 267
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: 267
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: 599
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: 267
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: 267
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: 267
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?

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

Re: Bericht: stretch mit anderem Init-System

Beitrag von RobertDebiannutzer » 17.11.2018 09:25:24

Es geht voran mit der diversity!?

Es gibt nun das "Debian Ecosystem Init Diversity Team":
https://qa.debian.org/developer.php?log ... end.org.uk

"elogind" scheint sich in Richtung "experimental" zu bewegen: https://packages.debian.org/search?suit ... ds=elogind
"sysvinit" schießt durch die Decke: https://tracker.debian.org/pkg/sysvinit

Und auch dieser Beitrag hier deutet auf Entwicklung hin:
Hi all. Sorry I'm late to this thread, but I wanted to jump in and share some updates.

1. Members of the Debian and Devuan teams are working together on the SysV init package, as well as elogind in order to keep these packages healthy and maintained in Debian. I can't speak to the systemd-shim package, but I'm happy to report that it looks like init implementation diversity is being maintained in Debian. sysv, systemd and runit all look to be healthy options for Debian 10 Buster.

2. Most of the coding bugs and documentation issues reported in Debian's issue tracker against SysV init have been dealt with upsteam. A few people are looking into script/packaging issues downstream.

3. A new version of sysvinit-core will be released around early December to give it time to get into Buster when the feature freeze hits in January. This should in turn help Devuan when their next release comes out. Not to mention MX Linux and antiX will be able to use the new, fixed (and faster) sysvinit code.

- SysV upstream dev
(Quelle: http://forums.debian.net/viewtopic.php? ... 7e#p684740)

Ich nutze im Moment sysvinit aus stretch + folgende Pakete aus Devuan-ASCII:
elogind
libelogind0
libpam-elogind
eudev
libeudev1
libeudev1:i386
(eudev hätte ich vielleicht gar nicht übernehmen müssen, da udev in stretch ja ein standalone-Paket ist.)

Ich hatte mir einfach schnell ein mini-Devuan-chroot gebaut, um die Pakete immer schön bequem herunterladen zu können.
Ob die Verwendung von Devuan-Paketen in Debian eine saubere Lösung ist, weiß ich nicht, aber im Moment läuft's bei mir. Empfehlen kann man es aber natürlich nicht.

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

Re: Bericht: stretch mit anderem Init-System

Beitrag von MartinV » 19.11.2018 20:34:33

RobertDebiannutzer hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 09:25:24
it looks like init implementation diversity is being maintained in Debian. sysv, systemd and runit all look to be healthy options for Debian 10 Buster.
RobertDebiannutzer hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 09:25:24
"elogind" scheint sich in Richtung "experimental" zu bewegen
Danke für den Bericht, eine interessante Entwicklung!
Mit elogind in Debian hätte ich nie gerechnet. Die bisherige SysVinit-Ausweichmöglichkeit sah eher wie ein Feigenblatt vor der systemd-Abhängigkeit aus, das könnte sich jetzt ändern.

Ich bin kein SysVinit-Fan, habe aber schon etwas gute Erfahrung mit runit gemacht. Schön, wenn hier wieder echte Wahlmöglichkeit in Debian entsteht!
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Antworten