Firmwareentwicklung-Firmware selberbauen

Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit, ihn zu verbessern, und entferne anschließend diese Markierung.

Wo?

  • Die Erweiterungen zur OpenWRT-Firmware für das Weimarnetz sowie die Bauanleitung liegen auf github.
  • Ein Repository ist z.B. das hier: https://github.com/andibraeu/weimarnetz
  • Jeder kann dieses Repository verwenden und eine Firmware daraus erstellen. Hilfe und Änderungen sind gern willkommen, wer aktiv mitentwickeln möchte kann sich das Repository auch gabeln (aka forken)

Wie?

Vorbereitungen

  • Zur Entwicklung und zum Bauen der Firmware empfiehlt sich die Nutzung von Linux.
  • auf Debian müssen diese Pakete installiert sein: build-essential libncurses5-dev m4 flex git git-core zlib1g-dev unzip subversion gawk python libssl-dev quilt
  • man sollte einen Nutzer verwenden, der nicht root ist, da die openWRT-scripte das überprüfen und es ein wenig Krampf ist, alles umzubiegen

Bauen einer Firmware

  • Alle Schritte zum Bauen einer Firmware sind grundlegend in der README des Repositories beschrieben
  • Um ein vtund ohne SSL und ohne Komprimierung zu erstellen, muss das Makefile entsprechend angepasst werden.
  • Außerdem wurden Abhängigkeiten aus der LuCI-Freifunkkonfiguration entfernt
  • Diese Dateien liegen im Repository unter openwrt-build/, später soll das kopieren automatisch erfolgen

Ablauf

  • Die im README gezeigten Schritte erstellen eine Standardfirmware, die auf die gewählte Hardware installiert werden kann
  • Änderungen am OpenWRT können über make menuconfig vorgenommen werden. Den Kernel passt man mit make kernel_menuconfig an
  • Der erste komplette Buildprozess kann je nach Rechenleistung mehrere Stunden in Anspruch nehmen. Nachfolgende Builds sind erheblich schneller (1 min auf schnellen Rechnern, 30 Minuten auf unserem Rootserver)

Probleme im Build-Prozess

  • nach Auswahl eines Hardwaremodels und kopieren der Build-Config sind immer wieder gewisse Standardwerte gesetzt, wie z.B. der b43legacy-Treiber beim Linksys

Weitere Forks

  • Basti: Entwicklung hauptsächlich für bittorf wireless
  • Storchi