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:

 

BenutzernamePasswortBemerkung
root loxberrySystemadministrator
loxberry loxberryStandardbenutzer

 

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\\ 



# Standard
loxberry ALL = NOPASSWD: /usr/sbin/ntpdate
loxberry ALL = NOPASSWD: /bin/date
loxberry ALL = NOPASSWD: /sbin/iwlist
loxberry ALL = NOPASSWD: /usr/bin/lshw
loxberry ALL = NOPASSWD: /sbin/poweroff
loxberry ALL = NOPASSWD: /sbin/reboot
loxberry ALL = NOPASSWD: /usr/bin/apt-get
loxberry ALL = NOPASSWD: /usr/bin/dpkg

 

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