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
Letzte ÜberarbeitungBeide Seiten der Revision
firmware [17.07.2017 12:42] – [Firmware erstellen] havelockfirmware [28.01.2023 17:42] – [Fehlerbehebung] havelock
Zeile 4: Zeile 4:
 Siehe: Siehe:
   * https://wiki.freifunk.net/Freifunk_Firmware_Gluon   * https://wiki.freifunk.net/Freifunk_Firmware_Gluon
-  * Quelltest: https://github.com/freifunk-gluon/gluon+  * Quelltext: https://github.com/freifunk-gluon/gluon
   * Dokumentation: https://gluon.readthedocs.io   * Dokumentation: https://gluon.readthedocs.io
  
Zeile 10: Zeile 10:
  
   * stable - Das sollte normalerweise installiert werden   * stable - Das sollte normalerweise installiert werden
-  * beta - die nächste, kommende Version 2016.1+  * beta - die nächste, kommende Version z.B. 2017.1
   * experimental - hier werden neue Versionen und Features ausprobiert   * experimental - hier werden neue Versionen und Features ausprobiert
  
Zeile 17: 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.9 sein basierend auf Gluon 2016.2.6+  * 0.9 basierend auf Gluon 2016.2.6 
 +  * 0.9.1 - basierend auf Gluon 2016.2.7 
 +  * anschließend dann Umstieg auf 802.11s
  
  
Zeile 38: Zeile 40:
 make update make update
 make -j10 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=[stable|beta|experimental] 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 update
  
Zeile 57: Zeile 63:
 make clean GLUON_TARGET=ar71xx-generic GLUON_BRANCH=[stable|beta|experimental] 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 =====
  
firmware.txt · Zuletzt geändert: 12.05.2023 11:41 von havelock