Metainformationen zur Seite
Eigenes Image erstellen (LoxBerry 0.2.x)
LoxBerry 0.2.3
Diese Anleitung bezieht sich auf LoxBerry V0.2.3. Wir empfehlen, damit keine neuen Images mehr zu erstellen.
Die Anleitung für LoxBerry 1.0 findest du hier: Eigenes Image erstellen (LoxBerry V1.x)
Der Loxberry wurde für die Hardwareplattform "Raspberry Pi" entwickelt. Der Raspberry erfreut sich einer sehr großen Verbreitung und ist dabei schon für ca. 30 Euro erhältlich. Das Entwicklerteam des Loxberry konzentriert sich daher auf die Entwicklung für den Raspberry Pi und stellt für diesen auch fertige Images bereit, die direkt auf eine SD-Karte gespeichert werden und gebootet werden können.
Der Raspberry hat aber auch erhebliche Nachteile gegenüber anderen Hardwareplattformen. Daher ist es natürlich auch möglich die Software des Loxberry auf eine andere Hardwareplattform zu portieren. Die dazu notwendigen Schritte sind Dank der ausschließlichen Verwendung von Open Source Software für den Raspberry relativ einfach.
Veröffentliche Dein selbst erstelltes Image!
Wenn Du ein Image für eine andere Hardwareplattform erstellt hast teile Deine Arbeit bitte mit anderen! Je mehr Plattformen der Loxberry unterstützt, desto größere Verbreitung wird er finden! Gerne stellen wir Dir dazu Speicherplatz auf unserem Server bereit! Bitte nimm bei Bedarf Kontakt mit uns auf: info [at] loxberry [dot] de
1. Auswahl der Distribution
Der Loxberry basiert auf der Linuxdistribution Raspbian, ein speziell für den Raspberry Pi angepasstes Debian Linux. Wir nutzen dazu das Lite-Image (Minimal Image) der Raspberry Pi Foundation. Es ist also eine sehr gute Idee ein eigenes Image ebenfalls auf Debian Linux aufzubauen. Damit sind die Anpassungen am System erheblich einfacher zu gestalten und auch die Plugin-Schnittstelle, die auch Software für ein Plugin aus dem Distributionsrepository nachinstallieren kann, wird ohne Anpassungen weiter funktionieren.
Da Debian zu den stabilsten Linuxdistributionen gehört und eine sehr große Anzahl an Hardwareplattformen unterstützt (wenn nicht sogar die größte Anzahl von allen Distributionen überhaupt), besteht eigentlich nur in Spezialfällen die Notwendigkeit auf eine andere Distribution zu wechseln. Stell Dich in diesem Fall aber auf deutliche Mehrarbeit ein! Diese Anleitung geht von einem Debiansystem aus.
2. Softwaregrundausstattung
Plugins erwarten vom Loxberry eine auf allen Systemen identische Paket- und Softwareauswahl. Damit alle Plugins auch auf Deinem eigenen Image laufen, stelle sicher, dass Dein Image mindestens (besser: exakt) die Softwareausstattung des Original-Loxberry-Images enthält.
Zu empfehlen ist zunächst ein Minimalsystem zu installieren und später die benötigten Pakete automatisch nachinstallieren zu lassen (siehe Kapitel unten).
3. Systembenutzer
Auf dem Loxberry sollten nur 2 "reale" Benutzer eingerichtet sein:
Benutzername | Passwort | Bemerkung |
root | loxberry | Systemadministrator |
loxberry | loxberry | Standardbenutzer |
Das Homeverzeichnis des Benutzers "loxberry" muss auf das Installationsverzeichnis der Loxberry-Scripte zeigen (siehe unter Punkt 5.):
KONSOLE adduser --home /opt/loxberry loxberry
WICHTIG! Das Initialpasswort für beide Accounts muss auf "loxberry" gesetzt werden. Beide Passwörter werden bei der Ersteinrichtung des Loxberry neu gesetzt.
4. Locales
Standardlocale auf dem System sowie auch für beide oben genannten Benutzer ist en_GB.UTF-8.
KONSOLE dpkg-reconfigure locales
5. Loxberry-Sourcen installieren
Standardmäßig werden die Loxberry-Quelltexte unter /opt/loxberry installiert. Du solltest nach Möglichkeit nicht davon abweichen. Obwohl Plugin-Entwickler angehalten sind nur relative Pfadangaben zu verwenden ist dieses nicht unbedingt sichergestellt. Am einfachsten kannst Du die Quellen direkt per git installieren:
KONSOLE cd /opt
KONSOLE
git clone https://github.com/mschlenstedt/Loxberry.git loxberry
KONSOLE chown -R loxberry.loxberry /opt/loxberry
KONSOLE chmod 600 /opt/loxberry/system/network/interfaces
KONSOLE chmod 600 /opt/loxberry/config/system/*
KONSOLE chown root.root /opt/loxberry/config/system/logrotate
6. Installation von benötigten Paketen
Achtung! Vor diesem Schritt muss zunächst Schritt 7.2 (siehe unten, visudo) durchgeführt werden!
Die Pakete des LoxBerry-Grundsystems findet man in der Datei /opt/loxberry/packages.txt Mit den LoxBerry-Quelltexten wird ein Skript mitgeliefert, welches die Pakete automatisch nachinstalliert.
Vor dem Update sollten die Paket-Informationen auf den aktuellen Stand gebracht werden (als "root"), damit während der folgenden Installation keine Fehler passieren (404 Not Found…).
KONSOLE apt-get update && apt-get upgrade
Des weiteren müssen noch ein paar Perl Pakete vor ab installiert werden (ebenfalls als "root"):
KONSOLE apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl
KONSOLE cpan
KONSOLE install File::HomeDir
KONSOLE install Config::Simple
Die nachfolgenden Befehle müssen als User "loxberry" ausgeführt werden! Zunächst kann man sich anschauen welche Pakete installiert werden würden:
KONSOLE /opt/loxberry/sbin/installpackages.pl --file /opt/loxberry/packages.txt --test
Wenn alles OK ist kann man die Installation automatisch starten mit:
KONSOLE /opt/loxberry/sbin/installpackages.pl --file /opt/loxberry/packages.txt
Besonderheit ntpd:
Standardmäßig ist häufig auf einem Debiansystem der ntpd (NTP Daemon) installiert, der zum Einen regelmäßig die Uhrzeit mit einem NTP-Server im Internet abgleicht und diesen Service auch im eigenen Netzwerk bereitstellen kann. Auf dem Loxberry ist dieses Verhalten aber nicht erwünscht: Der Loxberry gleicht standardmäßig die Uhrzeit mit dem Loxone Miniserver direkt ab. Alternativ kann er seihe Uhrzeit auch mit einem NTP-Server abgleichen, der Loxberry nutzt dazu aber den Befehl ntpdate. Daher muss sichergestellt sein, dass der ntpd nicht installiert ist und dafür ntpdate zur Verfügung steht:
KONSOLE apt-get remove ntp
KONSOLE update-rc.d ntp remove
KONSOLE apt-get install ntpdate
Des weiteren müssen zwei Konfigurationsdateien unter /etc vom Benutzer "loxberry" schreibbar sein:
KONSOLE chown loxberry.loxberry /etc/timezone
KONSOLE chown loxberry.loxberry /etc/localtime
Besonderheit MySQL:
Das Passwort des MySQL-Root-Accounts muss bei der Ersteinrichtung auf "loxberry" gesetzt werden.
Besonderheit Samba:
Der Loxberry-Benutzer muss zunächst als Root eingerichtet werden. Das Standardpasswort muss hier ebenfalls auf "loxberry" gesetzt werden:
KONSOLE smbpasswd -a loxberry
7. Anpassen von Systemdateien
Es müssen einige Systemdateien angepasst und neu installiert werden bzw. durch symbolische Links auf Dateien unterhalb von /opt/loxberry ersetzt werden.
7.1 Initscript
KONSOLE ln -s /opt/loxberry/sbin/loxberryinit.sh /etc/init.d/loxberry
KONSOLE update-rc.d loxberry defaults
7.2 Crontab
/etc/crontab: Zeilen hinzufügen |
\\ MAILTO=""\\
\\ #\\ # Loxberry\\ #\\ # m h dom mon dow user command\\ * * * * * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.01min > /dev/null 2>&1\\ */3 * * * * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.03min > /dev/null 2>&1\\ */5 * * * * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.05min > /dev/null 2>&1\\ */10 * * * * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.10min > /dev/null 2>&1\\ */15 * * * * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.15min > /dev/null 2>&1\\ */30 * * * * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.30min > /dev/null 2>&1\\ 13 * * * * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.hourly > /dev/null 2>&1\\ 23 4 * * * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.daily > /dev/null 2>&1\\ 33 4 * * 1 loxberry cd / && run-parts /opt/loxberry/system/cron/cron.weekly > /dev/null 2>&1\\ 43 4 1 * * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.monthly > /dev/null 2>&1\\ 53 4 1 1 * loxberry cd / && run-parts /opt/loxberry/system/cron/cron.yearly > /dev/null 2>&1\\ |
7.2 Visudo
KONSOLE visudo
/etc/visudo: Zeilen hinzufügen bzw. ändern |
\\ # Allow members of group sudo to execute any command\\
\\ #%sudo ALL=(ALL:ALL) ALL# Only for testing!\\
\\ #loxberry ALL=(ALL) NOPASSWD: ALL\\
|
7.3 Apache
KONSOLE mv /etc/apache2
/etc/apache2.old
KONSOLE ln -s /opt/loxberry/system/apache2 /etc/apache2
7.4 Network
KONSOLE mv /etc/network/interfaces /etc/network/interfaces.old
KONSOLE ln -s /opt/loxberry/system/network/interfaces /etc/network/interfaces
7.5 PAM
/etc/pam.d/common-password: Zeilen ändern |
\\ # here are the per-package modules (the "Primary" block)\\ password [success=1 default=ignore] pam_unix.so sha512\\ #password [success=1 default=ignore] pam_unix.so obscure sha512\\ |
7.6 Logrotate
KONSOLE ln -s /opt/loxberry/config/system/logrotate /etc/logrotate.d/loxberry
7.7 Samba
KONSOLE mv /etc/samba /etc/samba.old
KONSOLE ln -s /opt/loxberry/system/samba /etc/samba
7.8 VSFTPd
KONSOLE mv /etc/vsftpd.conf /etc/vsftpd.conf.old
KONSOLE ln -s /opt/loxberry/system/vsftpd/vsftpd.conf /etc/vsftpd.conf
7.9 Logrotate
/etc/logrotate.conf: Zeilen ändern |
\\ # uncomment this if you want your log files compressed\\ compress\\ |
7.10 SSMTP
KONSOLE mv /etc/ssmtp /etc/ssmtp.old
KONSOLE ln -s /opt/loxberry/system/ssmtp /etc/ssmtp