====== build.erfurt.freifunk.net ====== Dies ist der Firmware-Buildserver. ===== Serverinformationen ===== ==== Administratoren ==== * [[user:mape2k|mape2k]] (Inhaber/Bereitsteller) * [[user:bt909|bt909]] * [[user:suicider|suicider]] * [[user:hipposen|hipposen]] ==== IP/DNS ==== * build.erfurt.freifunk.net ==== Dienste ==== * SSH (Port 1034) * rsync (Port 873) ==== Software ==== * Debian 8 (Jessie) * Installation-Optionen: SSH-Server, Standard-Systemutilities * Tools zum Bauen der Gluon-Firmware ===== Nutzung ===== ==== Firmware ==== === Verzeichnisstruktur === Alle zum Bau notwendigen Quellen liegen im Ordner * /data/gluon Für jede Upstream-Version der Firmware gibt es ein eigenes Verzeichnis. * upstream/2014.3 * upstream/2014.3.1 * upstream/trunk Per Symlink zeigen die eigenen Branches * stable * beta * experimental auf die passenden Upstream-Verzeichnisse. Die fertigen Firmware-Images liegen im Ordner * /data/firmware-mirror === Signaturschlüssel === * Privaten Schlüssel erstellen * //**ecdsakeygen -s > secret**// * Öffentlichen Schlüssel ableiten * //**ecdsakeygen -p < secret > public**// Der private Schlüssel (secret) ist an sicherer Stelle abzuspeichern und vom Server zu löschen. Er wird nur zum Signieren der Firmware temporär auf den Server kopiert. Der öffentliche Schlüssel sollte im Wiki unter [[freifunk:firmware:|Firmware]] hinterlegt werden. === Firmware signieren === * auf Server (als Benutzer) per SSH einloggen * Firmware signieren * bei der ersten Nutzung von sudo wird das //eigene// Serverpasswort benötigt ("[sudo] password for USERNAME:") * bei "Type in secret key:" muss der eigenen private Firmware-Signaturschlüssel aus der Zwischenablage eingefügt werden * wenn alles geklappt hat gibt es keine weitere Ausgabe/Fehlermeldung * Stable-Version signieren * //**sudo -u freifunk /home/freifunk/sign.sh /data/gluon/stable/output/images/sysupgrade/stable.manifest**// * Beta-Version signieren * //**sudo -u freifunk /home/freifunk/sign.sh /data/gluon/beta/output/images/sysupgrade/beta.manifest**// * Experimental-Version signieren * //**sudo -u freifunk /home/freifunk/sign.sh /data/gluon/experimental/output/images/sysupgrade/experimental.manifest**// ==== Node-VPN === Die Konfigurationsdateien für das VPN der Nodes liegt in * /data/vpn ===== Installation ===== ==== Installierte Pakete (System) ==== * mc * screen ==== Installierte Pakete (Firmware bauen) ==== * make * git * python * bzip2 * gcc * g++ * libncurses-dev * libssl-dev * libz-dev * gawk * subversion * xz-utils * qemu-utils * time ==== Tools für Firmware-Signatur ==== === Quellen === * [[https://github.com/tcatm/ecdsautils|ecdsautils]] * [[http://git.universe-factory.net/libuecc|libuecc]] === Debian-Pakete einbinden === [[user:mape2k|mape2k]] baut mithilfe des openSUSE Build Service für ecdsautils und libuecc passende Debian-Pakete. Zur Installation muss nur das Repository und der GPG-Key des Repository eingebunden werden. * /etc/apt/sources.list.d/ecdsautils.list deb http://download.opensuse.org/repositories/home:/mape2k:/freifunk/Debian_8.0 ./ * Repository-GPG-Key einbinden * //**wget -q http://download.opensuse.org/repositories/home:/mape2k:/freifunk/Debian_8.0/Release.key -O - | apt-key add -**// === Notwendige Pakete === Jetzt einfach das folgende Paket installieren: * ecdsautils ==== Firmware-Mirror ==== === Notwendige Pakete === * rsync === Konfiguration === * /etc/rsyncd.conf uid = nobody gid = nogroup max connections = 25 socket options = SO_KEEPALIVE [firmware] path = /data/firmware-mirror/ comment = Firmware-Mirror Freifunk Erfurt read only = true === Nachbereitung / Start === * //**systemctl enable rsync.service**// * //**systemctl start rsync.service**// ==== Node-VPN-Keys ==== === Notwendige Pakete === * rsync === Konfiguration === * /etc/rsyncd.conf uid = nobody gid = nogroup max connections = 25 socket options = SO_KEEPALIVE [vpn] path = /data/vpn comment = VPN-Keys read only = true hosts allow = 62.141.56.190 2001:1b60:2:12:4328:6:0:909 88.198.234.12 2a01:4f8:201:240f:1::1 Unter "hosts allow" sind die VPN-Server zu hinterlegen. === Nachbereitung / Start === * //**systemctl enable rsync.service**// * //**systemctl start rsync.service**//