Wiki - Freifunk Pinneberg

Freies WLAN im Kreis Pinneberg

Benutzer-Werkzeuge

Webseiten-Werkzeuge


firmware

Dies ist eine alte Version des Dokuments!


Firmware

Die von der Community Pinneberg verwendete Firmware ist Gluon. Siehe:

Es gibt verschiedene Zweige:

  • stable - Das sollte normalerweise installiert werden
  • beta - die nächste, kommende Version z.B. 2017.1
  • experimental - hier werden neue Versionen und Features ausprobiert

Pinneberger Versionen

  • 0.7.0 - erste Version die Community basierend auf Gluon 2015.1.1
  • 0.7.1 - Version ab 28.11.2015 bastierend auf Gluon 2015.1.2
  • 0.9 - basierend auf Gluon 2016.2.6
  • 0.9.1 - basierend auf Gluon 2016.2.7
  • anschließend dann Umstieg auf 802.11s

Firmware erstellen

Voraussetzungen

aptitude install build-essential git subversion python gawk unzip libssl-dev zlib1g-dev libncurses5-dev
git clone https://github.com/freifunk-gluon/gluon.git
cd gluon
git clone git://github.com/thooge/ffpi-site.git site
cd site
git checkout [master|beta|experimental]
cd ..
 
git checkout v2015.1.2
make update
make -j10 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=[stable|beta|experimental]
 
# Falls die Versin < 2017 ist, muß die Datei modules angepaßt werden:
# Das Reporitory muß von openwrt auf chaos_calmer umgestellt werden
 
make update
 
make manifest GLUON_BRANCH=[stable|beta|experimental]

Weitere Targets

  • mpc85xx-generic - TLWDR4900
  • ar71xx-nand - WNDR4300
  • x86-generic
  • x86-64
  • x86-kvm_guest

Erstellen wiederholen

cd gluon
git pull
make clean GLUON_TARGET=ar71xx-generic GLUON_BRANCH=[stable|beta|experimental]
make update
make -j10 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=[stable|beta|experimental]

Fehlerbehebung

Falls der Build mit einer Fehlermeldung abbricht, kann das Kommando um V=s ergänzt werden. Damit wird eine ausführliche Protokollierung eingeschaltet.

Fehler bei m4:

cd ./openwrt-ramips/build_dir/host/m4-1.4.17
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
tools/bison/patches/110-glibc-change-work-around.patch
Subject: Workaround change in glibc
 
Temporary workaround to compile with glibc 2.28, which
deprecated some constants
 
Based on the workaround made for the tools/m4 package
 
--- a/lib/stdio-impl.h
+++ b/lib/stdio-impl.h
@@ -18,6 +18,12 @@
    the same implementation of stdio extension API, except that some fields
    have different naming conventions, or their access requires some casts.  */
 
+/* Glibc 2.28 made _IO_IN_BACKUP private.  For now, work around this
+   problem by defining it ourselves.  FIXME: Do not rely on glibc
+   internals.  */
+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
+# define _IO_IN_BACKUP 0x100
+#endif
 
 /* BSD stdio derived implementations.  */
 
--- a/lib/fseterr.c
+++ b/lib/fseterr.c
@@ -29,7 +29,7 @@
   /* Most systems provide FILE as a struct and the necessary bitmask in
      <stdio.h>, because they need it for implementing getc() and putc() as
      fast macros.  */
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
   fp->_flags |= _IO_ERR_SEEN;
 #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
   fp_->_flags |= __SERR;

siehe auch: https://forum.openwrt.org/t/solved-error-undefined-reference-to-major/108258

Firmware signieren

Benötigte Bibliotheken:

make manifest GLUON_BRANCH=[stable|beta|experimental]
contrib/sign.sh <private_key> output/images/sysupgrade/[stable|beta|experimental].manifest
firmware.1674499413.txt.gz · Zuletzt geändert: 23.01.2023 19:43 von havelock