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 [12.11.2017 11:14] – [Firmware] havelockfirmware [12.05.2023 11:41] (aktuell) – [Firmware erstellen] 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 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 24: 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 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.1510481661.txt.gz · Zuletzt geändert: 12.11.2017 11:14 von havelock