Firmware selber bauen: Unterschied zwischen den Versionen
Diego (Diskussion | Beiträge) (Tippfehler korrigieren.) |
|||
Zeile 1: | Zeile 1: | ||
− | Die Firmware kann entweder unter [http://download.freifunk-dresden.de/ | + | Die Firmware kann entweder unter [http://download.freifunk-dresden.de/ Download] fertig kompiliert herruntergeladen werden oder man kann sich diese selber bauen. |
− | oder man kann sich diese selber bauen. | ||
− | Ein Knoten, welcher aus | + | Ein Knoten, welcher aus diesem Repository gebaut wird, taucht dann als 'Alternativer' Knoten in der Hotspot-Liste auf. |
Werden keine weiteren Anpassungen gemacht, erfüllt dieser die [[Knoten Spezifikation]]. | Werden keine weiteren Anpassungen gemacht, erfüllt dieser die [[Knoten Spezifikation]]. | ||
− | Bei Anpassungen | + | Bei Anpassungen müssen diese Spezifikationen aber weiterhin sichergestellt sein! Falls das nicht möglich ist, bitte kontaktiert Freifunk Dresden diesbezüglich. Dann können wir sehen, inwieweit davon abgewichen werden kann. |
Hinter dieser Spezifikation stecken verschiedene Ideen, um anderen Leuten eine bestimmte Funktionalität zu garantieren. | Hinter dieser Spezifikation stecken verschiedene Ideen, um anderen Leuten eine bestimmte Funktionalität zu garantieren. | ||
Zeile 16: | Zeile 15: | ||
== Internes Git-Repository == | == Internes Git-Repository == | ||
− | Das interne Repository steht nur dem Entwicklerteam zur Verfügung und enthält immer jede Änderung. Dieses Repository wird regelmässig auf einem | + | Das interne Repository steht nur dem Entwicklerteam zur Verfügung und enthält immer jede Änderung. Dieses Repository wird regelmässig auf einem externen RAID5 gesichtert. Es liegt dabei aber selbst auf einem RAID1. |
Der Hauptserver implementiert dazu einen Linux-Container. Der Zugang dazu ist privat. | Der Hauptserver implementiert dazu einen Linux-Container. Der Zugang dazu ist privat. | ||
− | https://gitlab.freifunk-dresden.de/firmware-developer/firmware | + | HTTPS: https://gitlab.freifunk-dresden.de/firmware-developer/firmware |
− | + | SSH: ssh://git@git.freifunk-dresden.de:2201/~/firmware.git | |
== Firmware Bauen == | == Firmware Bauen == | ||
=== Entwicklungsumgebung === | === Entwicklungsumgebung === | ||
− | Die Entwicklungsumgebung ist ein Linux. Die Firmware wurde bisher immer auf einem Ubuntu System entwickelt. | + | Die Entwicklungsumgebung ist ein Linux. Die Firmware wurde bisher immer auf einem Ubuntu-System entwickelt. Bei Nutzung anderer Linux-Distributionen müssen evt. weitere Softwarepakete installiert werden, die hier nicht aufgeführt sind. |
− | Bei Nutzung | ||
'''System:''' mind. Ubuntu 16.04/18.04 64bit (z. B.: Ubuntu-Mate) | '''System:''' mind. Ubuntu 16.04/18.04 64bit (z. B.: Ubuntu-Mate) | ||
Zeile 36: | Zeile 34: | ||
apt-get install libssl-dev libncurses5-dev zlib1g-dev zlib1g-dev gcc-multilib | apt-get install libssl-dev libncurses5-dev zlib1g-dev zlib1g-dev gcc-multilib | ||
− | === Firmware Checkout === | + | === Firmware-Checkout === |
− | Um die Firmware auf den eigenen Rechner zu bringen wird das Kommando ''git'' verwendet. Wechsel dazu im Usermodus auf dem Entwicklungsrechner (wo die Firmware gebaut werden soll) in ein Verzeichnis, in welchem ''git'' das eigentliche | + | Um die Firmware auf den eigenen Rechner zu bringen, wird das Kommando ''git'' verwendet. Wechsel dazu im Usermodus auf dem Entwicklungsrechner (wo die Firmware gebaut werden soll) in ein Verzeichnis, in welchem ''git'' das eigentliche Firmware-Verzeichnis anlegen soll. |
− | Firmware Verzeichnis | ||
git clone https://github.com/freifunk-dresden/firmware-freifunk-dresden.git | git clone https://github.com/freifunk-dresden/firmware-freifunk-dresden.git | ||
Zeile 45: | Zeile 42: | ||
=== Firmware konfigurieren === | === Firmware konfigurieren === | ||
− | Die Firmware kann für verschieden Plattformen (Chipsets) gebaut werden. | + | Die Firmware kann für verschieden Plattformen (Chipsets) gebaut werden. Alle aktuell unterstützten Plattformen/Geräte sind in <code>build.targets</code> definiert. Abhängig von der gewählten Plattform werden entweder gleich alle Router-Firmware-Varianten gebaut oder es muss jedes einzelne Geräte angegeben werden. |
− | Alle aktuell unterstützten Plattformen/Geräte sind in <code>build.targets</code> definiert. | ||
− | Abhängig von der gewählten Plattform | ||
− | es | ||
− | Dabei gibt es für jede dieser Zeilen ein eigenes Config-File im Verzeichnis ''lede-configs''. | + | Dabei gibt es für jede dieser Zeilen ein eigenes Config-File im Verzeichnis ''lede-configs''. Für mehr Informationen dazu siehe die Kommentare in diesem File. |
− | Für mehr Informationen dazu siehe die Kommentare in diesem File. | ||
=== Firmware bauen === | === Firmware bauen === | ||
+ | |||
Das Bauen übernimmt dann das Script <code> build.sh</code>. | Das Bauen übernimmt dann das Script <code> build.sh</code>. | ||
./build.sh all | ./build.sh all | ||
− | Alle Parameter dahinter werden an den make Prozess | + | Alle Parameter dahinter werden an den make Prozess weitergeleitet. "list" zeigt die verfügbaren Pfade an. Ohne Parameter erscheint die Hilfe. |
− | "list" zeigt die verfügbaren | + | |
~/firmware-freifunk-dresden$ ./build.sh list | ~/firmware-freifunk-dresden$ ./build.sh list | ||
ar71xx.tiny | ar71xx.tiny |
Version vom 4. Oktober 2019, 14:54 Uhr
Die Firmware kann entweder unter Download fertig kompiliert herruntergeladen werden oder man kann sich diese selber bauen.
Ein Knoten, welcher aus diesem Repository gebaut wird, taucht dann als 'Alternativer' Knoten in der Hotspot-Liste auf. Werden keine weiteren Anpassungen gemacht, erfüllt dieser die Knoten Spezifikation.
Bei Anpassungen müssen diese Spezifikationen aber weiterhin sichergestellt sein! Falls das nicht möglich ist, bitte kontaktiert Freifunk Dresden diesbezüglich. Dann können wir sehen, inwieweit davon abgewichen werden kann.
Hinter dieser Spezifikation stecken verschiedene Ideen, um anderen Leuten eine bestimmte Funktionalität zu garantieren.
Inhaltsverzeichnis
Quellcode
Github
Github enthält einen relativen stabilen Softwarestand. Jede freigegebene Software erhält einen Tag.
https://github.com/Freifunk-Dresden/firmware-freifunk-dresden
Internes Git-Repository
Das interne Repository steht nur dem Entwicklerteam zur Verfügung und enthält immer jede Änderung. Dieses Repository wird regelmässig auf einem externen RAID5 gesichtert. Es liegt dabei aber selbst auf einem RAID1.
Der Hauptserver implementiert dazu einen Linux-Container. Der Zugang dazu ist privat.
HTTPS: https://gitlab.freifunk-dresden.de/firmware-developer/firmware SSH: ssh://git@git.freifunk-dresden.de:2201/~/firmware.git
Firmware Bauen
Entwicklungsumgebung
Die Entwicklungsumgebung ist ein Linux. Die Firmware wurde bisher immer auf einem Ubuntu-System entwickelt. Bei Nutzung anderer Linux-Distributionen müssen evt. weitere Softwarepakete installiert werden, die hier nicht aufgeführt sind.
System: mind. Ubuntu 16.04/18.04 64bit (z. B.: Ubuntu-Mate)
Benötigte Softwarepakete
apt-get install unzip wget time rsync jq gawk gettext apt-get install git subversion build-essential flex python apt-get install libssl-dev libncurses5-dev zlib1g-dev zlib1g-dev gcc-multilib
Firmware-Checkout
Um die Firmware auf den eigenen Rechner zu bringen, wird das Kommando git verwendet. Wechsel dazu im Usermodus auf dem Entwicklungsrechner (wo die Firmware gebaut werden soll) in ein Verzeichnis, in welchem git das eigentliche Firmware-Verzeichnis anlegen soll.
git clone https://github.com/freifunk-dresden/firmware-freifunk-dresden.git cd firmware-freifunk-dresden
Firmware konfigurieren
Die Firmware kann für verschieden Plattformen (Chipsets) gebaut werden. Alle aktuell unterstützten Plattformen/Geräte sind in build.targets
definiert. Abhängig von der gewählten Plattform werden entweder gleich alle Router-Firmware-Varianten gebaut oder es muss jedes einzelne Geräte angegeben werden.
Dabei gibt es für jede dieser Zeilen ein eigenes Config-File im Verzeichnis lede-configs. Für mehr Informationen dazu siehe die Kommentare in diesem File.
Firmware bauen
Das Bauen übernimmt dann das Script build.sh
.
./build.sh all
Alle Parameter dahinter werden an den make Prozess weitergeleitet. "list" zeigt die verfügbaren Pfade an. Ohne Parameter erscheint die Hilfe.
~/firmware-freifunk-dresden$ ./build.sh list ar71xx.tiny ar71xx.generic x86.generic ramips.mt7621.ubiquiti-edgerouter-x ipq40xx.generic