Artikel als PDF Gesamtansicht

7 Umstieg auf Systemd

Nachdem Arch Linux auf initscripts/sysvinit basierende Systeme offiziell nicht mehr unterstützt, habe ich mich entschlossen, systemd auch unter ALARM einzusetzen, vorerst jedoch mit der Option ggf. kurzfristig zu initscripts/sysvinit zurückkehren zu können.

Hinweis: Seit November 2012 ist systemd in den ALARM-Images voreingestellt, eine Umstellung wie nachfolgend beispielhaft gezeigt, ist nur bei älteren Installationen erforderlich. Wer allerdings tatsächlich noch ein SysVinit-basiertes System verwendet, dürfte dabei mittlerweile vor einer Herausforderung stehen und sollte stattdessen eine Re-Installation erwägen.

7.1 Netzwerkkonfiguration

Mit netcfg erhält man eine unter systemd sowie initscripts/sysvinit gleichermaßen funktionierende Netzwerkkonfiguration. Beim Erstellen von Profilen kann man sich an den im Paket enthaltenen Beispielen orientieren.

[root@alarm ~]# cp /etc/network.d/examples/ethernet-static /etc/network.d/lan

Das hier gewählte Profil für eine statische IP-Adresse ist den lokalen Gegebenheiten anzupassen.

#/etc/network.d/lan (edit)
ADDR='192.168.1.5'
GATEWAY='192.168.1.1'
DNS=('192.168.1.1')

Schließlich wird das zu verwendende Profil festgelegt.

#/etc/conf.d/netcfg
NETWORKS=(lan)

7.2 Hostname, Tastaturbelegung, Spracheinstellung

Zur Vorbereitung auf Systemd sind weitere Einstellungen von /etc/rc.conf auf die neuen Konfigurationsdateien auszulagern:

#/etc/hostname 
alarm
#/etc/vconsole.conf 
KEYMAP=de-latin1-nodeadkeys
FONT=
FONT_MAP=
#/etc/locale.conf 
LANG=de_DE.UTF-8
LC_COLLATE=C

Die entsprechenden Einträge in /etc/rc.conf habe ich auskommentiert, so dass nur noch die DAEMONS-Zeile übrig blieb.

#/etc/rc.conf 
DAEMONS=(syslog-ng net-profiles openntpd sshd crond lircd irexecd vdr rpcbind nfs-common nfs-server)

Um die Verwendbarkeit der Einstellungen unter Beibehaltung von initscripts/sysvinit zu testen, folgte ein Reboot.

7.3 Aktivierung der Services

Das Paket systemd sollte als Abhängigkeit von initscripts bereits installiert sein. Die DAEMONS in /etc/rc.conf werden zwar bis auf weiteres auch von systemd berücksichtigt, zur besseren Kontrolle sollte man die zu startenden Services aber expliziert aktivieren und schließlich auch die DAEMONS-Zeile in /etc/rc.conf komplett auskommentieren. Die von mir bereitgestellten Pakete vdr und vdradmin-am-git enthalten in den aktuellen Versionen keine rc-Scripts mehr.

[root@alarm ~]# systemctl enable netcfg.service openntpd.service sshd.service cronie.service lirc.service irexec.service vdr.service rpc-idmapd.service rpc-mountd.service

Man beachte die in einzelnen Fällen vom rc-Script abweichende Namensgebung der Services. Der syslog-Dienst wird nicht benötigt, Logmeldungen können im Journal von systemd eingesehen werden. Die /etc/fstab sollte bezüglich der Systemd-Kompatibilität überprüft werden, das betrifft insbesondere, falls man es verwendet, das aufs-Dateisystem, siehe Forum.

7.4 Booten mit Systemd

Um nun beim nächsten Booten systemd tatsächlich zu verwenden, wird im Forum von Arch Linux ARM oft geraten, das Paket sysvinit kurzerhand durch systemd-sysvcompat zu ersetzen. Dabei wird das per default vom Kernel aufgerufene /sbin/init durch einen symbolischen Link auf /usr/lib/systemd/systemd ersetzt. Man kann diesen Schritt aber auch vertagen und systemd zunächst testweise per Kernelparameter aktivieren:

[root@alarm ~]# fw_setenv usb_custom_params 'init=/usr/lib/systemd/systemd'

Im Problemfall lässt sich der Parameter mit fw_setenv usb_custom_params '' wieder zurücksetzen. Falls nötig bootet man dazu ohne Speichermedium und führt obigen Befehl unter der Original-Firmware des DockStar durch. Die von sysvinit benötigten DAEMONS in /etc/rc.conf stellt man nach Mounten des USB-Sticks an einem Linux-PC wieder her.

Gibt es dagegen keine Probleme, kann schließlich systemd-sysvcompat installiert werden. Auch dann wird der o.g. Kernelparameter init nicht mehr benötigt.

Alternative Bootloaderkonfiguration Umstieg auf Systemd