Firmware selber bauen: Unterschied zwischen den Versionen

Aus Freifunk Dresden - Anwender-Wiki
Zur Navigation springen Zur Suche springen
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 19: Zeile 19:
  
 
Der Hauptserver implementiert dazu einen Linux-Container. Der Zugang dazu ist privat.
 
Der Hauptserver implementiert dazu einen Linux-Container. Der Zugang dazu ist privat.
  ssh://git@git.freifunk-dresden.de:2201/~/firmware.git
+
  https://gitlab.freifunk-dresden.de/firmware-developer/firmware
 +
alt: ssh://git@git.freifunk-dresden.de:2201/~/firmware.git
  
 
== Firmware Bauen ==
 
== Firmware Bauen ==
Zeile 31: Zeile 32:
 
'''Benötigte Softwarepakete'''
 
'''Benötigte Softwarepakete'''
  
  apt-get install git gawk
+
  apt-get install unzip wget time rsync jq gawk gettext
  apt-get install build-essential libncurses5-dev zlib1g-dev
+
  apt-get install git subversion build-essential flex python
 +
apt-get install libssl-dev libncurses5-dev zlib1g-dev zlib1g-dev gcc-multilib
  
 
=== Firmware Checkout ===
 
=== Firmware Checkout ===
Zeile 39: Zeile 41:
 
Firmware Verzeichnis anlegt.
 
Firmware Verzeichnis anlegt.
  
  git clone https://github.com/ddmesh/firmware-freifunk-dresden.git
+
  git clone https://github.com/freifunk-dresden/firmware-freifunk-dresden.git
 
  cd firmware-freifunk-dresden
 
  cd firmware-freifunk-dresden
  

Version vom 8. September 2019, 14:22 Uhr

Die Firmware kann entweder unter | Download fertig kompiliert herrunter geladen werden
oder man kann sich diese selber bauen.

Ein Knoten, welcher aus diesen 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 dies bezüglich. Dann können wir sehen in wie weit davon abgewichen werden kann.

Hinter dieser Spezifikation stecken verschiedene Ideen, um anderen Leuten eine bestimmte Funktionalität zu garantieren.

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 externem RAID5 gesichtert. Es liegt dabei aber selbst auf einem RAID 1.

Der Hauptserver implementiert dazu einen Linux-Container. Der Zugang dazu ist privat.

https://gitlab.freifunk-dresden.de/firmware-developer/firmware
alt: 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 andere 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 anlegt.

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 weiter geleitet. "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

Neue Plattformen hinzufügen