Wiki - Freifunk Pinneberg

Freies WLAN im Kreis Pinneberg

Benutzer-Werkzeuge

Webseiten-Werkzeuge


firmware

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
firmware [14.01.2016 14:55] – [Firmware erstellen] soehnke1firmware [12.05.2023 11:41] (aktuell) – [Firmware erstellen] havelock
Zeile 1: Zeile 1:
 ====== Firmware ====== ====== Firmware ======
 +
 +Die von der Community Pinneberg verwendete Firmware ist [[Gluon]].
 +Siehe:
 +  * https://wiki.freifunk.net/Freifunk_Firmware_Gluon
 +  * Quelltext: https://github.com/freifunk-gluon/gluon
 +  * Dokumentation: https://gluon.readthedocs.io
  
 Es gibt verschiedene Zweige: Es gibt verschiedene Zweige:
  
-  * stable +  * stable - Das sollte normalerweise installiert werden 
-  * beta - momentan nicht vorhanden +  * beta - die nächste, kommende Version z.B. 2017.1 
-  * experimental - die kommende Version 2015.2+  * experimental - hier werden neue Versionen und Features ausprobiert
  
 ===== Pinneberger Versionen ===== ===== Pinneberger Versionen =====
Zeile 11: Zeile 17:
   * 0.7.0 - erste Version die Community basierend auf Gluon 2015.1.1   * 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.7.1 - Version ab 28.11.2015 bastierend auf Gluon 2015.1.2
-  * die nächste Version wird 0.8 sein+  * 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 ===== ===== Firmware erstellen =====
Zeile 17: Zeile 26:
 Voraussetzungen Voraussetzungen
 <code> <code>
-aptitude install build-essential git subversion python gawk unzip libssl-dev zlib1g-dev libncurses5-dev+apt-get install build-essential git subversion python gawk unzip file libssl-dev zlib1g-dev libncurses5-dev
 </code> </code>
  
Zeile 23: Zeile 32:
 git clone https://github.com/freifunk-gluon/gluon.git git clone https://github.com/freifunk-gluon/gluon.git
 cd gluon cd gluon
-git clone git://github.com/freifunk-pinneberg/site-ffpi.git site+git clone git://github.com/thooge/ffpi-site.git site
 cd site cd site
 git checkout [master|beta|experimental] git checkout [master|beta|experimental]
Zeile 30: Zeile 39:
 git checkout v2015.1.2 git checkout v2015.1.2
 make update make update
-make -j10 GLUON_TARGET=ar71xx-generic+make -j10 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=[stable|beta|experimental]
  
-make manifest GLUON_BRANCH=stable+# 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]
 </code> </code>
  
 Weitere Targets Weitere Targets
-  * ''mpc85xx-generic'' +  * ''mpc85xx-generic'' - TLWDR4900 
-  * ''ar71xx-nand''+  * ''ar71xx-nand'' - WNDR4300
   * ''x86-generic''   * ''x86-generic''
 +  * ''x86-64''
   * ''x86-kvm_guest''   * ''x86-kvm_guest''
  
Zeile 46: Zeile 61:
 cd gluon cd gluon
 git pull git pull
-make clean GLUON_TARGET=ar71xx-generic+make clean GLUON_TARGET=ar71xx-generic GLUON_BRANCH=[stable|beta|experimental]
 make update make update
-make -j10 GLUON_TARGET=ar71xx-generic+make -j10 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=[stable|beta|experimental]
 </code> </code>
  
 +Alles löschen: ''make dirclean''
 +==== 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 aufgrund Änderungen in glibc
 +
 +Fehler bei m4:
 +<code>
 +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
 +</code>
 +
 +<file patch 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;
 +</file>
 +
 +<file patch tools/squashfs/patches/140-gcc-10-fix.patch>
 +Fixes the following build error with GCC 10:
 + /usr/bin/ld: read_fs.o:(.bss+0x0): multiple definition of `swap'; mksquashfs.o:(.bss+0x1b2a88): first defined here
 +And a compile warning.
 +
 +--- a/squashfs-tools/read_fs.c
 ++++ b/squashfs-tools/read_fs.c
 +@@ -61,7 +61,7 @@ extern int add_file(long long, long long
 +  fprintf(stderr, s, ## args); \
 +  } while(0)
 + 
 +-int swap;
 ++static int swap;
 + 
 + int read_block(int fd, long long start, long long *next, unsigned char *block, squashfs_super_block *sBlk)
 + {
 +--- a/squashfs-tools/mksquashfs.c
 ++++ b/squashfs-tools/mksquashfs.c
 +@@ -258,6 +258,7 @@ int read_sort_file(char *filename, int s
 + void sort_files_and_write(struct dir_info *dir);
 + struct file_info *duplicate(char *(get_next_file_block)(struct duplicate_buffer_handle *, unsigned int), struct duplicate_buffer_handle *file_start, long long bytes, unsigned int **block_list, long long *start, int blocks, struct fragment **fragment, char *frag_data, int frag_bytes);
 + struct dir_info *dir_scan1(char *, int (_readdir)(char *, char *, struct dir_info *));
 ++int dir_scan2(squashfs_inode *inode, struct dir_info *dir_info);
 + 
 + #define MKINODE(A) ((squashfs_inode)(((squashfs_inode) inode_bytes << 16) + (((char *)A) - data_cache)))
 + 
 +
 +</file>
 +
 +Meistens fehlt:
 +  #include <sys/sysmacros.h>
 +
 +Mögliche betroffene Dateien: 
 +  * ''make-ext4fs''
 +    * ''contents.c''
 +  * ''e2fsprogs-1.43.3''
 +    * ''lib/ext2fs/ext2fs.h''
 +    * ''e2fsck/e2fsck.h''
 +    * ''lib/blkid/blkid.h''
 +  * ''mtd-utils-1.5.1''
 +    * ''mkfs.jffs2.c''
 +    * ''ubiutils/libubi.c''
 +    * ''mkfs.ubifs/mkfs.ubifs.h'' 
 +  * ''squashfs''
 +    * ''mksquashfs.c''
 +    * ''unsquashfs.c''
 +
 +  * ''findutils'', fix wie bei bison
 +    * ''freadahead.c''
 +    * ''fseeko.c''
 +
 +siehe auch: https://forum.openwrt.org/t/solved-error-undefined-reference-to-major/108258
 ===== Firmware signieren ===== ===== Firmware signieren =====
  
 Benötigte Bibliotheken: Benötigte Bibliotheken:
-  * ''libuecc'' +  * ''[[libuecc]]'' 
-  * ''ecdsautils''+  * ''[[ecdsautils]]''
  
 <code> <code>
firmware.1452779733.txt.gz · Zuletzt geändert: 14.01.2016 14:55 von soehnke1