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 [01.10.2016 08:41] – [Firmware] havelockfirmware [12.05.2023 11:41] (aktuell) – [Firmware erstellen] havelock
Zeile 1: Zeile 1:
 ====== Firmware ====== ====== Firmware ======
  
-Die von der Community Pinneberg verwendete Firmware ist Gluon.+Die von der Community Pinneberg verwendete Firmware ist [[Gluon]].
 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.8 sein basierend auf Gluon 2016.1+  * 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 37: 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>
  
Zeile 54: 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 =====
  
firmware.1475304105.txt.gz · Zuletzt geändert: 01.10.2016 08:41 von havelock