diff options
Diffstat (limited to 'tools')
59 files changed, 5560 insertions, 33 deletions
diff --git a/tools/Makefile b/tools/Makefile index 4326dd4ab..2ffa4971c 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -3,13 +3,35 @@ include $(TOPDIR)/rules.mk -TARGETS:=adk mkcrypt cpio mkimage genext2fs bc -ifeq ($(ADK_TARGET_ROOTFS_ISO),y) -TARGETS+=cdrtools syslinux +TARGETS:=adk mkcrypt cpio bc bzip2 m4 xz + +ifeq ($(ADK_HOST_NEED_GENEXT2FS),y) +TARGETS+=genext2fs +endif +ifeq ($(ADK_HOST_NEED_MKIMAGE),y) +TARGETS+=mkimage +endif +ifeq ($(ADK_HOST_NEED_MKISOFS),y) +TARGETS+=cdrtools +endif +ifeq ($(ADK_HOST_NEED_SYSLINUX),y) +TARGETS+=syslinux endif -ifeq ($(ADK_TARGET_LIB_EGLIBC),y) +ifeq ($(ADK_HOST_NEED_GPERF),y) TARGETS+=gperf endif +ifeq ($(ADK_HOST_NEED_JFFS2),y) +TARGETS+=mtd-utils +endif +ifeq ($(ADK_HOST_NEED_SQUASHFS),y) +TARGETS+=squashfs +endif +ifeq ($(ADK_HOST_NEED_LZOP),y) +TARGETS+=lzo lzop +endif +ifeq ($(ADK_HOST_NEED_LZMA),y) +TARGETS+=lzma +endif TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS)) TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS)) diff --git a/tools/addpattern/Makefile b/tools/addpattern/Makefile new file mode 100644 index 000000000..10ba05933 --- /dev/null +++ b/tools/addpattern/Makefile @@ -0,0 +1,4 @@ +include $(TOPDIR)/rules.mk + +all: addpattern.c + $(CC_FOR_BUILD) $(FLAGS_FOR_BUILD) -o ${STAGING_HOST_DIR}/usr/bin/addpattern addpattern.c diff --git a/tools/addpattern/addpattern.c b/tools/addpattern/addpattern.c new file mode 100644 index 000000000..8133bf26e --- /dev/null +++ b/tools/addpattern/addpattern.c @@ -0,0 +1,252 @@ +/* + * Copyright (C) 2004 Manuel Novoa III <mjn3@codepoet.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* July 29, 2004 + * + * This is a hacked replacement for the 'addpattern' utility used to + * create wrt54g .bin firmware files. It isn't pretty, but it does + * the job for me. + * + * Extensions: + * -v allows setting the version string on the command line. + * -{0|1} sets the (currently ignored) hw_ver flag in the header + * to 0 or 1 respectively. + */ + +/* January 12, 2005 + * + * Modified by rodent at rodent dot za dot net + * Support added for the new WRT54G v2.2 and WRT54GS v1.1 "flags" + * Without the flags set to 0x7, the above units will refuse to flash. + * + * Extensions: + * -{0|1|2} sets {0|1} sets hw_ver flag to 0/1. {2} sets hw_ver to 1 + * and adds the new hardware "flags" for the v2.2/v1.1 units +*/ + +/* January 1, 2007 + * + * Modified by juan.i.gonzalez at subdown dot net + * Support added for the AG241v2 and similar + * + * Extensions: + * -r #.# adds revision hardware flags. AG241v2 and similar. + * + * AG241V2 firmware sets the hw_ver to 0x44. + * + * Example: -r 2.0 + * + * Convert 2.0 to 20 to be an integer, and add 0x30 to skip special ASCII + * #define HW_Version ((HW_REV * 10) + 0x30) -> from cyutils.h +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <unistd.h> +#include <sys/stat.h> + +/**********************************************************************/ + +#define CODE_ID "U2ND" /* from code_pattern.h */ +#define CODE_PATTERN "W54S" /* from code_pattern.h */ +#define PBOT_PATTERN "PBOT" + +#define CYBERTAN_VERSION "v3.37.2" /* from cyutils.h */ + +/* WRT54G v2.2 and WRT54GS v1.1 "flags" (from 3.37.32 firmware cyutils.h) */ +#define SUPPORT_4712_CHIP 0x0001 +#define SUPPORT_INTEL_FLASH 0x0002 +#define SUPPORT_5325E_SWITCH 0x0004 + +struct code_header { /* from cyutils.h */ + char magic[4]; + char res1[4]; /* for extra magic */ + char fwdate[3]; + char fwvern[3]; + char id[4]; /* U2ND */ + char hw_ver; /* 0: for 4702, 1: for 4712 -- new in 2.04.3 */ + char unused; + unsigned char flags[2]; /* SUPPORT_ flags new for 3.37.2 (WRT54G v2.2 and WRT54GS v1.1) */ + unsigned char res2[10]; +} ; + +/**********************************************************************/ + +void usage(void) __attribute__ (( __noreturn__ )); + +void usage(void) +{ + fprintf(stderr, "Usage: addpattern [-i trxfile] [-o binfile] [-p pattern] [-g] [-b] [-v v#.#.#] [-r #.#] [-{0|1|2|4}] -h\n"); + exit(EXIT_FAILURE); +} + +int main(int argc, char **argv) +{ + char buf[1024]; /* keep this at 1k or adjust garbage calc below */ + struct code_header *hdr; + FILE *in = stdin; + FILE *out = stdout; + char *ifn = NULL; + char *ofn = NULL; + char *pattern = CODE_PATTERN; + char *pbotpat = PBOT_PATTERN; + char *version = CYBERTAN_VERSION; + int gflag = 0; + int pbotflag = 0; + int c; + int v0, v1, v2; + size_t off, n; + time_t t; + struct tm *ptm; + + hdr = (struct code_header *) buf; + memset(hdr, 0, sizeof(struct code_header)); + + while ((c = getopt(argc, argv, "i:o:p:gbv:0124hr:")) != -1) { + switch (c) { + case 'i': + ifn = optarg; + break; + case 'o': + ofn = optarg; + break; + case 'p': + pattern = optarg; + break; + case 'g': + gflag = 1; + break; + case 'b': + pbotflag = 1; + break; + case 'v': /* extension to allow setting version */ + version = optarg; + break; + case '0': + hdr->hw_ver = 0; + break; + case '1': + hdr->hw_ver = 1; + break; + case '2': /* new 54G v2.2 and 54GS v1.1 flags */ + hdr->hw_ver = 1; + hdr->flags[0] |= SUPPORT_4712_CHIP; + hdr->flags[0] |= SUPPORT_INTEL_FLASH; + hdr->flags[0] |= SUPPORT_5325E_SWITCH; + break; + case '4': + /* V4 firmware sets the flags to 0x1f */ + hdr->hw_ver = 0; + hdr->flags[0] = 0x1f; + break; + case 'r': + hdr->hw_ver = (char)(atof(optarg)*10)+0x30; + break; + + case 'h': + default: + usage(); + } + } + + if (optind != argc || optind == 1) { + fprintf(stderr, "illegal arg \"%s\"\n", argv[optind]); + usage(); + } + + if (strlen(pattern) != 4) { + fprintf(stderr, "illegal pattern \"%s\": length != 4\n", pattern); + usage(); + } + + if (ifn && !(in = fopen(ifn, "r"))) { + fprintf(stderr, "can not open \"%s\" for reading\n", ifn); + usage(); + } + + if (ofn && !(out = fopen(ofn, "w"))) { + fprintf(stderr, "can not open \"%s\" for writing\n", ofn); + usage(); + } + + if (time(&t) == (time_t)(-1)) { + fprintf(stderr, "time call failed\n"); + return EXIT_FAILURE; + } + + ptm = localtime(&t); + + if (3 != sscanf(version, "v%d.%d.%d", &v0, &v1, &v2)) { + fprintf(stderr, "bad version string \"%s\"\n", version); + return EXIT_FAILURE; + } + + memcpy(&hdr->magic, pattern, 4); + if (pbotflag) + memcpy(&hdr->res1, pbotpat, 4); + hdr->fwdate[0] = ptm->tm_year % 100; + hdr->fwdate[1] = ptm->tm_mon + 1; + hdr->fwdate[2] = ptm->tm_mday; + hdr->fwvern[0] = v0; + hdr->fwvern[1] = v1; + hdr->fwvern[2] = v2; + memcpy(&hdr->id, CODE_ID, strlen(CODE_ID)); + + off = sizeof(struct code_header); + + fprintf(stderr, "writing firmware v%d.%d.%d on %d/%d/%d (y/m/d)\n", + v0, v1, v2, + hdr->fwdate[0], hdr->fwdate[1], hdr->fwdate[2]); + + + while ((n = fread(buf + off, 1, sizeof(buf)-off, in) + off) > 0) { + off = 0; + if (n < sizeof(buf)) { + if (ferror(in)) { + FREAD_ERROR: + fprintf(stderr, "fread error\n"); + return EXIT_FAILURE; + } + if (gflag) { + gflag = sizeof(buf) - n; + memset(buf + n, 0xff, gflag); + n = sizeof(buf); + } + } + if (!fwrite(buf, n, 1, out)) { + FWRITE_ERROR: + fprintf(stderr, "fwrite error\n"); + return EXIT_FAILURE; + } + } + + if (ferror(in)) { + goto FREAD_ERROR; + } + + if (fflush(out)) { + goto FWRITE_ERROR; + } + + fclose(in); + fclose(out); + + return EXIT_SUCCESS; +} diff --git a/tools/adk/Makefile b/tools/adk/Makefile index 60a50ffba..edd559f85 100644 --- a/tools/adk/Makefile +++ b/tools/adk/Makefile @@ -3,15 +3,15 @@ include $(TOPDIR)/rules.mk -install: ${BIN_DIR}/depmaker ${BIN_DIR}/pkgrebuild ${BIN_DIR}/dkgetsz +install: ${STAGING_HOST_DIR}/usr/bin/depmaker ${STAGING_HOST_DIR}/usr/bin/pkgrebuild ${STAGING_HOST_DIR}/usr/bin/dkgetsz -${BIN_DIR}/depmaker: depmaker.c +${STAGING_HOST_DIR}/usr/bin/depmaker: depmaker.c ${CC_FOR_BUILD} ${FLAGS_FOR_BUILD} -o $@ depmaker.c -${BIN_DIR}/pkgrebuild: pkgrebuild.c strmap.c +${STAGING_HOST_DIR}/usr/bin/pkgrebuild: pkgrebuild.c strmap.c ${CC_FOR_BUILD} ${FLAGS_FOR_BUILD} -o $@ pkgrebuild.c strmap.c -${BIN_DIR}/dkgetsz: dkgetsz.c +${STAGING_HOST_DIR}/usr/bin/dkgetsz: dkgetsz.c ${CC_FOR_BUILD} ${FLAGS_FOR_BUILD} -o $@ dkgetsz.c include $(TOPDIR)/mk/tools.mk diff --git a/tools/bc/Makefile b/tools/bc/Makefile index 8d1561049..bb3c40492 100644 --- a/tools/bc/Makefile +++ b/tools/bc/Makefile @@ -11,15 +11,15 @@ PKG_SITES:= http://ftp.gnu.org/pub/gnu/bc/ include ../rules.mk -install: ${BIN_DIR}/bc +install: ${STAGING_HOST_DIR}/usr/bin/bc $(WRKBUILD)/.compiled: ${WRKDIST}/.prepared (cd ${WRKBUILD}; ./configure) ${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}' touch $@ -${BIN_DIR}/bc: $(WRKBUILD)/.compiled +${STAGING_HOST_DIR}/usr/bin/bc: $(WRKBUILD)/.compiled $(INSTALL_BIN) $(WRKBUILD)/bc/bc \ - ${BIN_DIR} + ${STAGING_HOST_DIR}/usr/bin include $(TOPDIR)/mk/tools.mk diff --git a/tools/cdrtools/Makefile b/tools/cdrtools/Makefile index 6ea90b821..6522b5760 100644 --- a/tools/cdrtools/Makefile +++ b/tools/cdrtools/Makefile @@ -11,15 +11,15 @@ PKG_SITES:= ftp://ftp.berlios.de/pub/cdrecord/ include ../rules.mk -install: ${BIN_DIR}/mkisofs +install: ${STAGING_HOST_DIR}/usr/bin/mkisofs $(WRKBUILD)/.compiled: ${WRKDIST}/.prepared #(cd ${WRKBUILD}; ./configure) ${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}' touch $@ -${BIN_DIR}/mkisofs: $(WRKBUILD)/.compiled +${STAGING_HOST_DIR}/usr/bin/mkisofs: $(WRKBUILD)/.compiled $(INSTALL_BIN) $(WRKBUILD)/mkisofs/OBJ/*/mkisofs \ - ${BIN_DIR} + ${STAGING_HOST_DIR}/usr/bin include $(TOPDIR)/mk/tools.mk diff --git a/tools/cpio/Makefile b/tools/cpio/Makefile index 290eabc8b..ffccd1480 100644 --- a/tools/cpio/Makefile +++ b/tools/cpio/Makefile @@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk -install: ${BIN_DIR}/cpio +install: ${STAGING_HOST_DIR}/usr/bin/cpio SRCS:= src/ib_open.c \ src/ib_close.c \ @@ -26,7 +26,7 @@ SRCS:= src/ib_open.c \ src/nonpax.c \ src/cpio.c -${BIN_DIR}/cpio: ${SRCS} +${STAGING_HOST_DIR}/usr/bin/cpio: ${SRCS} ${CC_FOR_BUILD} ${FLAGS_FOR_BUILD} -D_GNU_SOURCE -Isrc -o $@ $^ include $(TOPDIR)/mk/tools.mk diff --git a/tools/genext2fs/Makefile b/tools/genext2fs/Makefile index b19662941..07e24d028 100644 --- a/tools/genext2fs/Makefile +++ b/tools/genext2fs/Makefile @@ -11,15 +11,15 @@ PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=genext2fs/} include ../rules.mk -install: ${BIN_DIR}/genext2fs +install: ${STAGING_HOST_DIR}/usr/bin/genext2fs $(WRKBUILD)/.compiled: ${WRKDIST}/.prepared (cd ${WRKBUILD}; ./configure) ${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}' touch $@ -${BIN_DIR}/genext2fs: $(WRKBUILD)/.compiled +${STAGING_HOST_DIR}/usr/bin/genext2fs: $(WRKBUILD)/.compiled $(INSTALL_BIN) $(WRKBUILD)/genext2fs \ - ${BIN_DIR} + ${STAGING_HOST_DIR}/usr/bin include $(TOPDIR)/mk/tools.mk diff --git a/tools/gperf/Makefile b/tools/gperf/Makefile index 7b0d0af77..7f7d6466d 100644 --- a/tools/gperf/Makefile +++ b/tools/gperf/Makefile @@ -11,15 +11,15 @@ PKG_SITES:= http://ftp.gnu.org/pub/gnu/gperf/ include ../rules.mk -install: ${BIN_DIR}/gperf +install: ${STAGING_HOST_DIR}/usr/bin/gperf $(WRKBUILD)/.compiled: ${WRKDIST}/.prepared (cd ${WRKBUILD}; ./configure) ${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}' touch $@ -${BIN_DIR}/gperf: $(WRKBUILD)/.compiled +${STAGING_HOST_DIR}/usr/bin/gperf: $(WRKBUILD)/.compiled $(INSTALL_BIN) $(WRKBUILD)/src/gperf \ - ${BIN_DIR} + ${STAGING_HOST_DIR}/usr/bin include $(TOPDIR)/mk/tools.mk diff --git a/tools/lzma-loader/.svn/entries b/tools/lzma-loader/.svn/entries new file mode 100644 index 000000000..2934ab892 --- /dev/null +++ b/tools/lzma-loader/.svn/entries @@ -0,0 +1,300 @@ +10 + +dir +29646 +svn://svn.openwrt.org/openwrt/trunk/target/linux/brcm47xx/image/lzma-loader/src +svn://svn.openwrt.org/openwrt + + + +2010-12-02T21:27:54.805904Z +24217 +hauke + + + + + + + + + + + + + + +3c298f89-4303-0410-b956-a3cf2f4a3e73 + +head.S +file + + + + +2011-11-10T10:12:04.000000Z +566bfb5f462e85d45d1d0c4faca0dadd +2010-06-26T20:41:49.877730Z +21945 +nbd + + + + + + + + + + + + + + + + + + + + + +3585 + +decompress.c +file + + + + +2011-11-10T10:12:04.000000Z +b9ae9d76bf7f1f35ce46b5e496a02aa1 +2010-12-02T21:27:54.805904Z +24217 +hauke + + + + + + + + + + + + + + + + + + + + + +5426 + +LzmaDecode.c +file + + + + +2011-11-10T10:12:04.000000Z +14403972ddbcfadbe017a6aeb3e8fae1 +2010-06-26T20:41:49.877730Z +21945 +nbd + + + + + + + + + + + + + + + + + + + + + +17104 + +decompress.lds.in +file + + + + +2011-11-10T10:12:04.000000Z +c80cc6ad34b26e0af3c1d764218a3a61 +2010-06-26T20:41:49.877730Z +21945 +nbd + + + + + + + + + + + + + + + + + + + + + +186 + +loader.lds.in +file + + + + +2011-11-10T10:12:04.000000Z +f06b23d31242fb56a60b864b741c1266 +2010-06-26T20:41:49.877730Z +21945 +nbd + + + + + + + + + + + + + + + + + + + + + +151 + +LzmaDecode.h +file + + + + +2011-11-10T10:12:04.000000Z +12fcb710de789e54587079c021ae5e33 +2010-06-26T20:41:49.877730Z +21945 +nbd + + + + + + + + + + + + + + + + + + + + + +2465 + +Makefile +file + + + + +2011-11-10T10:12:04.000000Z +61400e27cb7c0099046d83e2146e0053 +2010-06-26T20:41:49.877730Z +21945 +nbd + + + + + + + + + + + + + + + + + + + + + +2325 + +README +file + + + + +2011-11-10T10:12:04.000000Z +b29e81088cc18e92dede243f094c4134 +2010-06-26T20:41:49.877730Z +21945 +nbd + + + + + + + + + + + + + + + + + + + + + +2464 + diff --git a/tools/lzma-loader/.svn/text-base/LzmaDecode.c.svn-base b/tools/lzma-loader/.svn/text-base/LzmaDecode.c.svn-base new file mode 100644 index 000000000..951700bdd --- /dev/null +++ b/tools/lzma-loader/.svn/text-base/LzmaDecode.c.svn-base @@ -0,0 +1,663 @@ +/* + LzmaDecode.c + LZMA Decoder + + LZMA SDK 4.05 Copyright (c) 1999-2004 Igor Pavlov (2004-08-25) + http://www.7-zip.org/ + + LZMA SDK is licensed under two licenses: + 1) GNU Lesser General Public License (GNU LGPL) + 2) Common Public License (CPL) + It means that you can select one of these two licenses and + follow rules of that license. + + SPECIAL EXCEPTION: + Igor Pavlov, as the author of this code, expressly permits you to + statically or dynamically link your code (or bind by name) to the + interfaces of this file without subjecting your linked code to the + terms of the CPL or GNU LGPL. Any modifications or additions + to this file, however, are subject to the LGPL or CPL terms. +*/ + +#include "LzmaDecode.h" + +#ifndef Byte +#define Byte unsigned char +#endif + +#define kNumTopBits 24 +#define kTopValue ((UInt32)1 << kNumTopBits) + +#define kNumBitModelTotalBits 11 +#define kBitModelTotal (1 << kNumBitModelTotalBits) +#define kNumMoveBits 5 + +typedef struct _CRangeDecoder +{ + Byte *Buffer; + Byte *BufferLim; + UInt32 Range; + UInt32 Code; + #ifdef _LZMA_IN_CB + ILzmaInCallback *InCallback; + int Result; + #endif + int ExtraBytes; +} CRangeDecoder; + +Byte RangeDecoderReadByte(CRangeDecoder *rd) +{ + if (rd->Buffer == rd->BufferLim) + { + #ifdef _LZMA_IN_CB + UInt32 size; + rd->Result = rd->InCallback->Read(rd->InCallback, &rd->Buffer, &size); + rd->BufferLim = rd->Buffer + size; + if (size == 0) + #endif + { + rd->ExtraBytes = 1; + return 0xFF; + } + } + return (*rd->Buffer++); +} + +/* #define ReadByte (*rd->Buffer++) */ +#define ReadByte (RangeDecoderReadByte(rd)) + +void RangeDecoderInit(CRangeDecoder *rd, + #ifdef _LZMA_IN_CB + ILzmaInCallback *inCallback + #else + Byte *stream, UInt32 bufferSize + #endif + ) +{ + int i; + #ifdef _LZMA_IN_CB + rd->InCallback = inCallback; + rd->Buffer = rd->BufferLim = 0; + #else + rd->Buffer = stream; + rd->BufferLim = stream + bufferSize; + #endif + rd->ExtraBytes = 0; + rd->Code = 0; + rd->Range = (0xFFFFFFFF); + for(i = 0; i < 5; i++) + rd->Code = (rd->Code << 8) | ReadByte; +} + +#define RC_INIT_VAR UInt32 range = rd->Range; UInt32 code = rd->Code; +#define RC_FLUSH_VAR rd->Range = range; rd->C |