suckless init (sinit) mit stretch?

Smalltalk
cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: suckless init (sinit) mit stretch?

Beitrag von cosmac » 11.05.2018 00:48:35

breakthewall hat geschrieben: ↑ zum Beitrag ↑
11.05.2018 00:12:12
KBDCALLS hat geschrieben: ↑ zum Beitrag ↑
10.05.2018 13:44:05
Das Problem ist aber auch dabei, das einige Programme mittlerweile systemd vorausetzen. Debianudisks2 hat mal ohne funktioniert. Und Udev gehört mittlerweile auch zu systemd
Die eigentliche Frage ist doch, ob man das wirklich als Problem bezeichnen kann.
Nicht wirklich bzw. nur als unbedeutendes Problem. Diese Programme laufen dann eben nicht auf meinem Rechner :) Bis jetzt hat das noch nicht gestört. Schlimmer finde ich udev, weil es ziemlich aufwendig war, das los zu werden. Und bei dbus habe ich aufgegeben.
MartinV hat geschrieben: ↑ zum Beitrag ↑
23.03.2018 10:37:59
Ich neige dazu, alles herauszuwerfen, was ich nicht verstehe; wenn mir dann etwas fehlen sollte, kann ich es ja noch einmal angucken. Policykit, logind, consolekit und dbus sind für mich sehr unklare Bereiche.
Aber zurück zum Thema: wie funktioniert bei sinit denn das "respawn", z.B. der getty-Prozesse? Das würde ich ungern selbst machen, direkt im rc-Script geht es ja nicht.

Um wieder ein wenig abzuschweifen: Braucht man überhaupt ein init-System? Natürlich braucht man diesen speziellen Prozess mit der Nummer 1. Der startet bei mir ein rcS- und ein rc-Script und da steht alles drin, was früher in /etc/init.d/ stand -- naja, fast alles (161 vs. 5898 Zeilen). Dass es zwei Scripte sind, ist auch nur Tradition.
Beware of programmers who carry screwdrivers.

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

Re: suckless init (sinit) mit stretch?

Beitrag von RobertDebiannutzer » 11.05.2018 09:46:32

@cosmac:
Ich habe respawn noch nicht umgesetzt. Für die ttys habe ich folgenden Loop in rc.init eingerichtet (bewusst POSIX-kompartibel*):

Code: Alles auswählen

	for i in 1 2 3 4 5 6; do
		if [ $i = 1 ]; then
			openvt -f -c $i -- /sbin/agetty 38400 tty$i &
		else
			openvt -c $i -- /sbin/agetty 38400 tty$i &
		fi
	done
Für tty1 habe ich die "force" Option (-f) gebraucht, wahrscheinlich, weil die Init-Meldungen tty1 für sich beanspruchen.
BTW: Ob man in stretch getty oder agetty nimmt ist egal, denn

Code: Alles auswählen

lrwxrwxrwx 1 root root 6 Mär  7 19:29 /sbin/getty -> agetty
(Jedenfalls, wenn man kein anderes getty - wie Debianfgetty z.B. - installiert, denn dann ist es vielleicht anders.)

Als respawn habe ich mir einen while-loop überlegt gehabt (ich hatte dazu im Internet ein Beispiel gefunden), doch mein dafür entworfenes /bin/respawn-script hat nicht funktioniert.** Da müsste man mal das respawn aus den ubase-tools von suckless probieren: https://git.suckless.org/ubase/tree/
Als workaround könnte man vielleicht auch den obigen openvt-Befehl in .bash_logout schreiben? Das bräuchte man dann aber wahrscheinlich die "force" Option (-f), wie sie für tty1 nötig ist.

*Die Möglichkeit, die Zahlen-Range für den for-loop wie bei bash zu schreiben, also {1..6}, würde den POSIX-Richtlinien auch keinen Abbruch tun...
**agetty erschien zwar, aber wenn ich den Benutzernamen eingegeben habe und auf Enter gedrückt habe, erschien nicht "Password: ", sondern nur eine newline und nichts ging mehr - Absturz also.
_____

Man muss in Debian auf einige Programme verzichten, wenn man systemd ganz runter haben möchte (außer Debianlibsystemd0, das geht nicht. Aber das hatten wir ja schon im anderen Thread diskutiert, gemeinsam mit einigen Auswirkungen.
Zusammenfassung: Alles was von gvfs oder polkit abhängt, ist nicht mehr. Und ohne systemd-logind muss man an einigen Stellen Hand anlegen, z.B. bei den Permissions von /usr/lib/xorg/Xorg.

Wenn man auch udev entfernen möchte, gerät man wohl ziemlich ins Schwitzen?

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

Re: suckless init (sinit) mit stretch?

Beitrag von MartinV » 11.05.2018 10:17:46

RobertDebiannutzer hat geschrieben: ↑ zum Beitrag ↑
11.05.2018 09:46:32
Zusammenfassung: Alles was von gvfs oder polkit abhängt, ist nicht mehr.
policykit kann man auch manuell als root starten. Es ist nicht in PATH, aber ausführbar als

Code: Alles auswählen

/usr/lib/policykit-1/polkitd
dbus kann man starten mit

Code: Alles auswählen

dbus-daemon --system
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

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

Re: suckless init (sinit) mit stretch?

Beitrag von RobertDebiannutzer » 11.05.2018 11:13:16

Mag ja alles sein, doch man muss Debianpolicykit-1 erstmal installieren können:

Code: Alles auswählen

Depends: dbus, libpam-systemd, libc6 (>= 2.7), libglib2.0-0 (>= 2.37.3), libpam0g (>= 0.99.7.1), libpolkit-agent-1-0 (= 0.105-18), libpolkit-backend-1-0 (= 0.105-18), libpolkit-gobject-1-0 (= 0.105-18)
Ohne systemd als service-manager (init egal) als Abhängigkeit von libpam-systemd geht da nix.

dbus ist kein Problem.

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

Re: suckless init (sinit) mit stretch?

Beitrag von MartinV » 11.05.2018 11:27:23

Hm. Schade, daß libpam-systemd als harte Abhängigkeit definiert ist, nicht als Empfehlung.

Man könnte vielleicht mit equivs-build ein leeres fake-Paket libpam-systemd erstellen.
Oder das policykit-Paket manipulieren und die Abhängigkeit entfernen.
Oder policykit selbst kompilieren.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: suckless init (sinit) mit stretch?

Beitrag von Tintom » 11.05.2018 11:37:05

Debianpolicykit-1 hat seit Wheezy keine neue Upstream-Version mehr gesehen und Wheezy war noch vor der systemd-Ära. Vielleicht sind die Abhängigkeiten gar nicht so "stark" und man kann das mit einem Paketneubau schon lösen?!

//EDIT: MartinV war schneller

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

Re: suckless init (sinit) mit stretch?

Beitrag von MartinV » 11.05.2018 11:44:40

Tintom hat geschrieben: ↑ zum Beitrag ↑
11.05.2018 11:37:05
Vielleicht sind die Abhängigkeiten gar nicht so "stark" und man kann das mit einem Paketneubau schon lösen?!
Das müßte gehen. Soweit ich sehe, wird libpam-systemd nur gebraucht, um mit systemd-logind zu kommunizieren.
Bekommt polkit keine Antwort von logind, spuckt es beim Login eine Fehlermeldung aus ("keine session für blablub"), funktioniert aber trotzdem, soweit ich sehe. (Jedenfalls in docker Containern).
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

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

Re: suckless init (sinit) mit stretch?

Beitrag von RobertDebiannutzer » 11.05.2018 11:49:14

Das ist wohl genau das, was Devuan macht...

Wenn man polkit unter Debian haben möchte, gibt es folgende Möglichkeiten:
1. systemd als init und service-manager
2. anderes init aber systemd als service-manager, dann braucht man aber shim
3. Paket modfizieren
4. polkit deinstallieren

Punkt 3 ist schwierig, da schon relativ viel gefummelt wird am System durch die Kombi systemd/libpam-systemd/polkit.
Z.B. kann man als user /dev/sr0 ohne die Kombi* nicht nutzen, d.h. "vlc cdda:///dev/sr0" schlägt fehl. Auch wenn man in der "cdrom"-Gruppe ist! /dev/sr0 ist dann nur für root zugreifbar.
Mit der Kombi* allerdings sehen die Permission so aus: "brw-rw----+ 1 root cdrom". Ist man nun in der cdrom-Gruppe, läufts. (gvfs ist so oder so nicht nötig. Das braucht man AFAIK nur, wenn man auf Audio-CDs wie auf Datei-CDs mit dem Datei-Manager zugreifen möchte.)

*Wobei nicht klar ist, welches Teil nun für diese Änderung zuständig ist. Mal wieder ein bisschen intransparent...

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

Re: suckless init (sinit) mit stretch?

Beitrag von MartinV » 12.05.2018 18:25:52

RobertDebiannutzer hat geschrieben: ↑ zum Beitrag ↑
11.05.2018 11:49:14
Wenn man polkit unter Debian haben möchte, gibt es folgende Möglichkeiten:
5.) `elogind` und `libpam-elogind` von devuan nehmen.
RobertDebiannutzer hat geschrieben: ↑ zum Beitrag ↑
11.05.2018 11:49:14
Auch wenn man in der "cdrom"-Gruppe ist! /dev/sr0 ist dann nur für root zugreifbar.
Was zeigt denn "ls -l" für Gruppen?

Code: Alles auswählen

ls -l /dev/sr0 /dev/cdrom /dev/cdrom0
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

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

Re: suckless init (sinit) mit stretch?

Beitrag von RobertDebiannutzer » 12.05.2018 19:24:01

MartinV hat geschrieben: ↑ zum Beitrag ↑
12.05.2018 18:25:52
5.) `elogind` und `libpam-elogind` von devuan nehmen.
Kann man einzelne Pakete von Devuan übernehmen?

"ls -l /dev/sr0 /dev/cdrom /dev/cdrom0" kann ich gerade nicht nachschauen. Bald kommt mein neues Notebook und mein jetziges geht an jemand anderes. Da diese andere Person aber nicht so Lust auf init-Veränderungen hat, habe ich wieder systemd installiert. Zum weiteren Testen muss ich also warten, bis mein neues Notebook da ist und ich wieder ein systemd-freies Debian probieren kann.
Aber laut Gedächtnis sahen die Permissions von /dev/sr0 so aus: "brw------- 1 root root" oder so "brw-rw---- 1 root root". Auf jeden Fall gehörte /dev/sr0 nur root und jemand anderes war auch zu nichts berechtigt.

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

Re: suckless init (sinit) mit stretch?

Beitrag von MartinV » 12.05.2018 23:00:50

RobertDebiannutzer hat geschrieben: ↑ zum Beitrag ↑
12.05.2018 19:24:01
MartinV hat geschrieben: ↑ zum Beitrag ↑
12.05.2018 18:25:52
5.) `elogind` und `libpam-elogind` von devuan nehmen.
Kann man einzelne Pakete von Devuan übernehmen?
Im Prinzip ja, aber ...

Ich habe gerade mal einen Versuch mit debian 9 in Virtualbox gemacht.
- Minimalinstallation ohne X.
Eine frische Installation ist einfacher zu ändern. In einem schon vollgepackten System fliegen mir die Abhängigkeiten seitenweise um die Ohren.
- apt-get install sysvinit-core
systemd-sysv wird ersetzt durch systemd-shim, soweit funktioniert alles genauso wie unter systemd. Auch systemd-logind ist noch aktiv. Zumindest soweit bietet debian 9 noch Wahlfreiheit.
Init ist jetzt SysVinit.
- eudev installieren:
Vor elogind muß udev durch eudev ersetzt werden, sonst meckert apt, weil elogind und systemd-udevd irgendwelche Überschneidungen haben.
eudev-Pakete hier:
http://deb.devuan.org/devuan/pool/main/ ... _amd64.deb
http://deb.devuan.org/devuan/pool/main/ ... _amd64.deb
- elogind installieren:
http://deb.devuan.org/devuan/pool/main/ ... _amd64.deb
http://deb.devuan.org/devuan/pool/main/ ... _amd64.deb
http://deb.devuan.org/devuan/pool/main/ ... _amd64.deb
- Außerdem nach Bedarf xserver-xorg und z.B. openbox
- Es läuft jetzt komplett ohne systemd! (Abgesehen davon, daß elogind ein systemd-fork ist, reduziert auf die logind Funktion. Alternativ könnte man consolekit oder consolekit2 probieren.)

.. aber nach einem reboot habe ich keine Internetverbindung mehr. :mrgreen:
Zuletzt geändert von MartinV am 13.05.2018 14:39:34, insgesamt 1-mal geändert.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22355
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: suckless init (sinit) mit stretch?

Beitrag von KBDCALLS » 13.05.2018 13:45:13

Und biste der Sache mal auf den Grund gegangen? Warum das so ist ?
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

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

Re: suckless init (sinit) mit stretch?

Beitrag von MartinV » 13.05.2018 13:52:25

KBDCALLS hat geschrieben: ↑ zum Beitrag ↑
13.05.2018 13:45:13
Und biste der Sache mal auf den Grund gegangen? Warum das so ist ?
Bis jetzt noch nicht. Ich wollte nur soweit das Experiment dokumentieren, auf die Pakete verweisen und eine soweit funktionierende Reihenfolge zeigen.

ifconfig und /etc/interfaces waren nicht vorhanden. Mit ifup und ifquery bekam ich keine Ergebnisse. Nachinstallieren konnte ich nichts mehr.

Möglicherweise verheddern sich udev-Regeln von systemd-udev mit denen von eudev.

In einem neuen Versuch könnte ich versuchen, systemd-udev zu purgen und erst dann euduv zu installieren, damit wirklich alle Regeln neu geschrieben werden.

Vielleicht fehlt auch einfach nur der sysvinit networking service.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: suckless init (sinit) mit stretch?

Beitrag von Tintom » 13.05.2018 14:41:44

MartinV hat geschrieben: ↑ zum Beitrag ↑
13.05.2018 13:52:25
ifconfig und /etc/interfaces waren nicht vorhanden. Mit ifup und ifquery bekam ich keine Ergebnisse. Nachinstallieren konnte ich nichts mehr.
Gerade mal geschaut: ifup und ifquery sind in Debianifupdown enthalten.

$ aptitude show ifupdown
Package: ifupdown
Version: 0.8.19
State: installed
Automatically installed: no
Priority: important


Wie hast du installiert? Normales Installationsmedium?

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

Re: suckless init (sinit) mit stretch?

Beitrag von MartinV » 13.05.2018 14:48:50

Tintom hat geschrieben: ↑ zum Beitrag ↑
13.05.2018 14:41:44
Wie hast du installiert? Normales Installationsmedium?
Ja: debian 9 nonfree netinstall

ifup, ifquery und ifdown waren vorhanden, zeigten mir aber kein Netzwerk an. Ich bin damit aber auch nicht vertraut.
ifconfig, mit dem ich vertrauter bin, fehlte. Ich sehe gerade, es gehört zum Paket Debiannet-tools. Das werde ich beim nächsten Anlauf mal mit installieren.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: suckless init (sinit) mit stretch?

Beitrag von Tintom » 13.05.2018 15:57:05

MartinV hat geschrieben: ↑ zum Beitrag ↑
13.05.2018 14:48:50
ifup, ifquery und ifdown waren vorhanden, zeigten mir aber kein Netzwerk an.
Achso, dann hab ich es falsch verstanden.

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

Re: suckless init (sinit) mit stretch?

Beitrag von MartinV » 13.05.2018 21:05:06

ok, neuer Versuch:

Dieses Mal habe ich vor dem reboot Debiannetwork-manager und Debiannet-tools installiert.
Jetzt geht auch das Internet.

Screenshot mit pstree: http://up.picr.de/32679097yr.png
Wie man sieht, weit und breit kein systemd.

consolekit und elogind sind zwei Programme für die gleiche Aufgabe, scheint aber nicht zu schaden. consolekit wurde bei irgendwas automatisch installiert.

Eigentlich war LXDE installiert, wodurch wohl auch ein paar nervige Dämonen wie bluetooth und avahi reiingerutscht sind.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

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

Re: suckless init (sinit) mit stretch?

Beitrag von MartinV » 13.05.2018 23:34:55

Der Mix aus debian+elogind+eudev benimmt sich komisch, so gut scheinen sich die Pakete doch nicht zu vertragen.

Beispiel: LXDE läßt sich nicht mehr installieren. Folge ich den Hinweisen von apt, lande ich bei "lxsession: benötigt policykit-1, soll aber nicht installiert werden". policykit-1 ist aber installiert!


Ich bin gerade auf eine andere interessante Möglichkeit gestoßen:
antix bietet ein nosystemd-Repository an:

Code: Alles auswählen

deb http://nl.mxrepo.com/antix/stretch/ stretch nosystemd
Das scheint auf den ersten Blick sauber zu funktionieren!

- in sources.list eintragen
- apt-get update && apt-get upgrade
- apt-get install sysvinit-core
- reboot
- apt-get purge libsystemd0
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Antworten