Ich musste ebenfalls von Hand auswählen, dass ich eine selbst gebaue Toolchain wollte, vermutlich musst du das auch?- Irgendwie hat (bei mir) das "select" für die Build-TC nicht funktioniert, ich musste die von Hand wählen
Jörg
Ich musste ebenfalls von Hand auswählen, dass ich eine selbst gebaue Toolchain wollte, vermutlich musst du das auch?- Irgendwie hat (bei mir) das "select" für die Build-TC nicht funktioniert, ich musste die von Hand wählen
Die Fehlermeldung sollte eigentlich klar sein, trotzdem kann ich derzeit damit nichts anfangen.freetz@speedlinux:~/sp/freetz-trunk1$ make
(cd /home/freetz/sp/freetz-trunk1/source/toolchain/target/gcc-4.2.4-uClibc-0.9.29/libtool-1.5.26; rm -rf config.cache; \
CC=/home/freetz/sp/freetz-trunk1/toolchain/target/bin/mips-linux-uclibc-gcc \
CXX=/home/freetz/sp/freetz-trunk1/toolchain/target/bin/mips-linux-uclibc-g++-uc \
CFLAGS="-O3 -march=24kec -mips16 -mdsp -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" \
PATH="/home/freetz/sp/freetz-trunk1/toolchain/target/bin:/home/freetz/sp/freetz-trunk1/toolchain/kernel/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" \
./configure \
--build=i386-pc-linux-gnu \
--host=mips-linux-uclibc \
--target=mips-linux-uclibc \
--prefix=/usr \
--disable-ltdl-install \
--enable-shared \
--enable-static \
--disable-nls \
);
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for mips-linux-uclibc-strip... mips-linux-uclibc-strip
checking for mips-linux-uclibc-gcc... /home/freetz/sp/freetz-trunk1/toolchain/target/bin/mips-linux-uclibc-gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** [/home/freetz/sp/freetz-trunk1/source/toolchain/target/gcc-4.2.4-uClibc-0.9.29/libtool-1.5.26/.configured] Error 77
freetz@speedlinux:~/sp/freetz-trunk1$
Ich musste ebenfalls von Hand auswählen, dass ich eine selbst gebaute Toolchain wollte, vermutlich musst du das auch?
Jörg
freetz@speedlinux:~/sp/freetz-trunk1$ make
(cd [B]/home/freetz/sp/freetz-trunk1/source/toolchain/target/gcc-4.2.4-uClibc-0.9.29/libtool-1.5.26[/B];
CFLAGS="-O3 -march=24kec -mips16 -mdsp -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" \
...
See `[B]config.log[/B]' for more details.
make: *** [/home/freetz/sp/freetz-trunk1/source/toolchain/target/gcc-4.2.4-uClibc-0.9.29/libtool-1.5.26/.configured] Error 77
( cd /home/guido/freetz/test/freetz-trunk_for_7390/toolchain/build/gcc-3.4.6/mips-unknown-linux-gnu/bin; \
ln -fs ../usr/bin/ccache mips-linux-cc; \
ln -fs ../usr/bin/ccache mips-linux-gcc; \
ln -fs ../usr/bin/ccache mips-unknown-linux-gnu-cc; \
ln -fs ../usr/bin/ccache mips-unknown-linux-gnu-gcc);
downloading...tools/freetz_download dl/fw .config GPL-Speedport_W722V.tar.gz "@AVM/fritz.box/fritzbox.fon_wlan_7390/x_misc/opensrc" ""
--2010-04-28 20:50:27-- ftp://ftp.avm.de/fritz.box/fritzbox.fon_wlan_7390/x_misc/opensrc/GPL-Speedport_W722V.tar.gz
=> »dl/fw/GPL-Speedport_W722V.tar.gz«
Auflösen des Hostnamen »ftp.avm.de«.... 212.42.244.90
Verbindungsaufbau zu ftp.avm.de|212.42.244.90|:21... verbunden.
Anmelden als anonymous ... Angemeldet!
==> SYST ... fertig. ==> PWD ... fertig.
==> TYPE I ... fertig. ==> CWD (1) /fritz.box/fritzbox.fon_wlan_7390/x_misc/opensrc ... fertig.
==> SIZE GPL-Speedport_W722V.tar.gz ... fertig.
==> PASV ... fertig. ==> RETR GPL-Speedport_W722V.tar.gz ...
Die Datei »»GPL-Speedport_W722V.tar.gz«« gibt es nicht.
Ist derzeit nicht gesetzt.-mips16 -mdsp
Frag ich mich auch, der W722V Source sollt eigentlich deaktiviert sein.die Datei hat ja da auch nichts zu suchen auf dem AVM-Server.
Was ich mich aber frage, wieso will er überhaupt die w722V laden?
Oder kann man das noch optimieren?
--- source/host-tools/find-squashfs/find-squashfs.c~ 2006-04-29 20:52:50.000000000 +0200
+++ source/host-tools/find-squashfs/find-squashfs.c 2010-04-29 17:25:25.000000000 +0200
@@ -3,8 +3,10 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <endian.h>
#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <arpa/inet.h>
#include <errno.h>
@@ -15,78 +17,109 @@
static void usage(name)
char name[];
{
- fprintf(stderr,"Usage: %s kernel.image\n",name);
+ fprintf(stderr,"Usage: %s [-any|-be|-le] kernel.image\n",name);
exit(1);
}
+void
+write_file (const char *fn, void *start, size_t len)
+{
+ int fd;
+ ssize_t ret;
+
+ fd = open(fn, O_WRONLY|O_CREAT, 0666);
+ if ( fd < 0 )
+ {
+ fprintf(stderr, "Create %s: %s\n", fn, strerror (errno));
+ exit(99);
+ }
+ ret = write(fd, start, len);
+ if (ret != (ssize_t)len)
+ {
+ fprintf (stderr, "Write %s: short write %ld of %ld\n", fn, (long)ret, (long)len);
+ exit (99);
+ }
+ ret = close(fd);
+ if (ret < 0)
+ {
+ fprintf (stderr, "Close %s: %s\n", fn, strerror (errno));
+ exit (99);
+ }
+ fprintf(stderr, "created %s\n", fn);
+}
+
int main(argc,argv)
int argc;
char **argv;
{
- FILE *fd;
+ int fd;
long size, count;
+ ssize_t ret;
+ int i;
uint32_t *start,*point;
-
/* start signature of squashfs */
-#if BYTE_ORDER == LITTLE_ENDIAN
- uint32_t search = 0x73717368;
-#else
- uint32_t search = 0x68737173;
-#endif
+ uint32_t search_be = ntohl (0x73717368);
+ uint32_t search_le = ntohl (0x68737173);
+ enum { MODE_BE = 1 << 0, MODE_LE = 1 << 1, MODE_ANY = MODE_BE | MODE_LE} mode = MODE_ANY;
+ const char *fn;
- if ( argc != 2 )
- usage(argv[0]);
- fd = fopen(argv[1],"r");
- if ( fd == NULL )
+
+ for (i = 1; i < argc; i++)
{
- fprintf(stderr,"Unable to open <%s> errno: %d\n",argv[1],errno);
+ if (argv[i][0] != '-')
+ break;
+ if (!strcasecmp (argv[i] + 1, "any"))
+ mode = MODE_ANY;
+ else if (!strcasecmp (argv[i] + 1, "be"))
+ mode = MODE_BE;
+ else if (!strcasecmp (argv[i] + 1, "le"))
+ mode = MODE_LE;
+ else
+ usage(argv[0]);
+ }
+ if ( argc - i != 1 )
usage(argv[0]);
+ fn = argv[i];
+ fd = open(fn, O_RDONLY);
+ if ( fd < 0 )
+ {
+ fprintf(stderr,"open <%s>: %s\n",fn,strerror(errno));
+ exit(99);
}
/* get size */
- size=fseek(fd, 0L, SEEK_END);
- size=ftell(fd);
- fprintf(stderr,"The size of <%s> is %ld\n",argv[1],size);
- fseek(fd, 0L, SEEK_SET);
+ size = lseek(fd, 0L, SEEK_END);
+ fprintf(stderr,"Size is %ld\n", size);
+ lseek(fd, 0L, SEEK_SET);
start=(uint32_t *)malloc(size);
- fread(start,size,1,fd);
- fclose(fd);
+ ret = read(fd, start, size);
+ if (ret != (ssize_t)size) {
+ fprintf (stderr, "short read %ld of %ld\n", ret, size);
+ exit (99);
+ }
+ close(fd);
for ( count=0,point=start; count < size; count+=sizeof(uint32_t),++point)
{
- if ( *point == search )
+ if ( (mode & MODE_BE) && *point == search_be)
{
- fprintf(stderr,"Squashfs signature found at %ld\n",count);
+ fprintf(stderr,"Big endian squashfs signature found at %ld\n",count);
break;
}
- }
- if ( count < size )
- {
- fd=fopen("kernel.raw","w");
- if ( fd == NULL )
- {
- fprintf(stderr,"Create kernel.raw: errno %d\n",errno);
- exit(99);
- }
- fwrite(start,1,count,fd);
- fclose(fd);
- fprintf(stderr,"kernel.raw created\n");
- fd=fopen("kernelsquashfs.raw","w");
- if ( fd == NULL )
+ if ( (mode & MODE_LE) && *point == search_le )
{
- fprintf(stderr,"Create kernelsquashfs.raw: errno %d\n",errno);
- exit(99);
+ fprintf(stderr,"Little endian squashfs signature found at %ld\n",count);
+ break;
}
- fwrite(point,1,size-count,fd);
- fclose(fd);
- fprintf(stderr,"kernelsquashfs.raw created\n");
}
- else
+ if ( count >= size )
{
fprintf(stderr,"Strange, no squashfs signature found...\n");
exit(99);
}
+ write_file ("kernel.raw", start, count);
+ write_file ("kernelsquashfs.raw", point, size - count);
free(start);
exit(0);