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.
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)
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.
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.
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.