From ab8f1568381cc264878cbe6b88997e21a59b495f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 20 May 2009 00:47:50 +0200 Subject: [PATCH] added more busybox patches, switch to standard mesa, libdrm, openchrome driver for jetway_j7f5m project --- .../patches/50_busybox-1.14.0-awk.diff | 21 +++++ .../patches/50_busybox-1.14.0-depmod.diff | 90 ++++++++++++++++++ .../patches/50_busybox-1.14.0-gzip.diff | 91 +++++++++++++++++++ .../patches/50_busybox-1.14.0-libbb.diff | 35 +++++++ .../patches/50_busybox-1.14.0-sysctl.diff | 18 ++++ projects/jetway_j7f5m/linux/linux.i386.conf | 17 ++-- projects/jetway_j7f5m/options | 14 ++- 7 files changed, 272 insertions(+), 14 deletions(-) create mode 100644 packages/sysutils/busybox/patches/50_busybox-1.14.0-awk.diff create mode 100644 packages/sysutils/busybox/patches/50_busybox-1.14.0-depmod.diff create mode 100644 packages/sysutils/busybox/patches/50_busybox-1.14.0-gzip.diff create mode 100644 packages/sysutils/busybox/patches/50_busybox-1.14.0-libbb.diff create mode 100644 packages/sysutils/busybox/patches/50_busybox-1.14.0-sysctl.diff diff --git a/packages/sysutils/busybox/patches/50_busybox-1.14.0-awk.diff b/packages/sysutils/busybox/patches/50_busybox-1.14.0-awk.diff new file mode 100644 index 0000000000..ef194eaf83 --- /dev/null +++ b/packages/sysutils/busybox/patches/50_busybox-1.14.0-awk.diff @@ -0,0 +1,21 @@ +--- busybox-1.14.0/editors/awk.c Tue Apr 14 01:43:09 2009 ++++ busybox-1.14.0-awk/editors/awk.c Mon May 18 23:49:29 2009 +@@ -1571,13 +1571,14 @@ + n++; /* we saw yet another delimiter */ + } else { + pmatch[0].rm_eo = l; +- if (s[l]) pmatch[0].rm_eo++; ++ if (s[l]) ++ pmatch[0].rm_eo++; + } + memcpy(s1, s, l); + /* make sure we remove *all* of the separator chars */ +- while (l < pmatch[0].rm_eo) { +- s1[l++] = '\0'; +- } ++ do { ++ s1[l] = '\0'; ++ } while (++l < pmatch[0].rm_eo); + nextword(&s1); + s += pmatch[0].rm_eo; + } while (*s); diff --git a/packages/sysutils/busybox/patches/50_busybox-1.14.0-depmod.diff b/packages/sysutils/busybox/patches/50_busybox-1.14.0-depmod.diff new file mode 100644 index 0000000000..c66aba34c4 --- /dev/null +++ b/packages/sysutils/busybox/patches/50_busybox-1.14.0-depmod.diff @@ -0,0 +1,90 @@ +--- busybox-1.14.0/modutils/depmod.c Tue Apr 14 01:42:55 2009 ++++ busybox-1.14.0-depmod/modutils/depmod.c Mon May 18 22:37:14 2009 +@@ -40,26 +40,28 @@ + ARG_r = (1<<6) /* Compat dummy. Linux Makefile uses it */ + }; + +-static int FAST_FUNC parse_module(const char *fname, struct stat *sb, +- void *data, int UNUSED_PARAM depth) ++static int FAST_FUNC parse_module(const char *fname, struct stat *sb UNUSED_PARAM, ++ void *data, int depth UNUSED_PARAM) + { ++ char modname[MODULE_NAME_LEN]; + module_info **first = (module_info **) data; + char *image, *ptr; + module_info *info; +- size_t len = sb->st_size; ++ /* Arbitrary. Was sb->st_size, but that breaks .gz etc */ ++ size_t len = (64*1024*1024 - 4096); + + if (strrstr(fname, ".ko") == NULL) + return TRUE; + + image = xmalloc_open_zipped_read_close(fname, &len); +- info = xzalloc(sizeof(module_info)); ++ info = xzalloc(sizeof(*info)); + + info->next = *first; + *first = info; + + info->dnext = info->dprev = info; + info->name = xasprintf("/%s", fname); +- info->modname = filename2modname(fname, NULL); ++ info->modname = xstrdup(filename2modname(fname, modname)); + for (ptr = image; ptr < image + len - 10; ptr++) { + if (strncmp(ptr, "depends=", 8) == 0) { + char *u; +@@ -69,12 +71,14 @@ + if (*u == '-') + *u = '_'; + ptr += string_to_llist(ptr, &info->dependencies, ","); +- } else if (ENABLE_FEATURE_MODUTILS_ALIAS && +- strncmp(ptr, "alias=", 6) == 0) { ++ } else if (ENABLE_FEATURE_MODUTILS_ALIAS ++ && strncmp(ptr, "alias=", 6) == 0 ++ ) { + llist_add_to(&info->aliases, xstrdup(ptr + 6)); + ptr += strlen(ptr); +- } else if (ENABLE_FEATURE_MODUTILS_SYMBOLS && +- strncmp(ptr, "__ksymtab_", 10) == 0) { ++ } else if (ENABLE_FEATURE_MODUTILS_SYMBOLS ++ && strncmp(ptr, "__ksymtab_", 10) == 0 ++ ) { + ptr += 10; + if (strncmp(ptr, "gpl", 3) == 0 || + strcmp(ptr, "strings") == 0) +@@ -199,10 +203,17 @@ + if (!(option_mask32 & ARG_n)) + xfreopen_write("modules.alias", stdout); + for (m = modules; m != NULL; m = m->next) { ++ const char *fname = bb_basename(m->name); ++ int fnlen = strchrnul(fname, '.') - fname; + while (m->aliases) { +- printf("alias %s %s\n", ++ /* Last word can well be m->modname instead, ++ * but depmod from module-init-tools 3.4 ++ * uses module basename, i.e., no s/-/_/g. ++ * (pathname and .ko.* are still stripped) ++ * Mimicking that... */ ++ printf("alias %s %.*s\n", + (char*)llist_pop(&m->aliases), +- m->modname); ++ fnlen, fname); + } + } + #endif +@@ -210,10 +221,12 @@ + if (!(option_mask32 & ARG_n)) + xfreopen_write("modules.symbols", stdout); + for (m = modules; m != NULL; m = m->next) { ++ const char *fname = bb_basename(m->name); ++ int fnlen = strchrnul(fname, '.') - fname; + while (m->symbols) { +- printf("alias symbol:%s %s\n", ++ printf("alias symbol:%s %.*s\n", + (char*)llist_pop(&m->symbols), +- m->modname); ++ fnlen, fname); + } + } + #endif diff --git a/packages/sysutils/busybox/patches/50_busybox-1.14.0-gzip.diff b/packages/sysutils/busybox/patches/50_busybox-1.14.0-gzip.diff new file mode 100644 index 0000000000..014425b275 --- /dev/null +++ b/packages/sysutils/busybox/patches/50_busybox-1.14.0-gzip.diff @@ -0,0 +1,91 @@ +--- busybox-1.14.0/archival/gzip.c Tue Apr 14 01:42:55 2009 ++++ busybox-1.14.0-gzip/archival/gzip.c Mon May 18 22:36:12 2009 +@@ -389,19 +389,6 @@ + } + + /* =========================================================================== +- * Clear input and output buffers +- */ +-static void clear_bufs(void) +-{ +- G1.outcnt = 0; +-#ifdef DEBUG +- G1.insize = 0; +-#endif +- G1.isize = 0; +-} +- +- +-/* =========================================================================== + * Run a set of bytes through the crc shift register. If s is a NULL + * pointer, then initialize the crc shift register contents instead. + * Return the current crc in either case. +@@ -2019,7 +2006,37 @@ + { + struct stat s; + +- clear_bufs(); ++ /* Clear input and output buffers */ ++ G1.outcnt = 0; ++#ifdef DEBUG ++ G1.insize = 0; ++#endif ++ G1.isize = 0; ++ ++ /* Reinit G2.xxx */ ++ memset(&G2, 0, sizeof(G2)); ++ G2.l_desc.dyn_tree = G2.dyn_ltree; ++ G2.l_desc.static_tree = G2.static_ltree; ++ G2.l_desc.extra_bits = extra_lbits; ++ G2.l_desc.extra_base = LITERALS + 1; ++ G2.l_desc.elems = L_CODES; ++ G2.l_desc.max_length = MAX_BITS; ++ //G2.l_desc.max_code = 0; ++ G2.d_desc.dyn_tree = G2.dyn_dtree; ++ G2.d_desc.static_tree = G2.static_dtree; ++ G2.d_desc.extra_bits = extra_dbits; ++ //G2.d_desc.extra_base = 0; ++ G2.d_desc.elems = D_CODES; ++ G2.d_desc.max_length = MAX_BITS; ++ //G2.d_desc.max_code = 0; ++ G2.bl_desc.dyn_tree = G2.bl_tree; ++ //G2.bl_desc.static_tree = NULL; ++ G2.bl_desc.extra_bits = extra_blbits, ++ //G2.bl_desc.extra_base = 0; ++ G2.bl_desc.elems = BL_CODES; ++ G2.bl_desc.max_length = MAX_BL_BITS; ++ //G2.bl_desc.max_code = 0; ++ + s.st_ctime = 0; + fstat(STDIN_FILENO, &s); + zip(s.st_ctime); +@@ -2064,29 +2081,6 @@ + SET_PTR_TO_GLOBALS(xzalloc(sizeof(struct globals) + sizeof(struct globals2)) + + sizeof(struct globals)); + barrier(); +- G2.l_desc.dyn_tree = G2.dyn_ltree; +- G2.l_desc.static_tree = G2.static_ltree; +- G2.l_desc.extra_bits = extra_lbits; +- G2.l_desc.extra_base = LITERALS + 1; +- G2.l_desc.elems = L_CODES; +- G2.l_desc.max_length = MAX_BITS; +- //G2.l_desc.max_code = 0; +- +- G2.d_desc.dyn_tree = G2.dyn_dtree; +- G2.d_desc.static_tree = G2.static_dtree; +- G2.d_desc.extra_bits = extra_dbits; +- //G2.d_desc.extra_base = 0; +- G2.d_desc.elems = D_CODES; +- G2.d_desc.max_length = MAX_BITS; +- //G2.d_desc.max_code = 0; +- +- G2.bl_desc.dyn_tree = G2.bl_tree; +- //G2.bl_desc.static_tree = NULL; +- G2.bl_desc.extra_bits = extra_blbits, +- //G2.bl_desc.extra_base = 0; +- G2.bl_desc.elems = BL_CODES; +- G2.bl_desc.max_length = MAX_BL_BITS; +- //G2.bl_desc.max_code = 0; + + /* Allocate all global buffers (for DYN_ALLOC option) */ + ALLOC(uch, G1.l_buf, INBUFSIZ); diff --git a/packages/sysutils/busybox/patches/50_busybox-1.14.0-libbb.diff b/packages/sysutils/busybox/patches/50_busybox-1.14.0-libbb.diff new file mode 100644 index 0000000000..327b4ec466 --- /dev/null +++ b/packages/sysutils/busybox/patches/50_busybox-1.14.0-libbb.diff @@ -0,0 +1,35 @@ +--- busybox-1.14.0/include/libbb.h Tue Apr 14 02:50:20 2009 ++++ busybox-1.14.0-libbb/include/libbb.h Fri May 15 23:22:02 2009 +@@ -965,6 +965,12 @@ + /* How long the longest ESC sequence we know? */ + KEYCODE_BUFFER_SIZE = 4 + }; ++/* Note: fd may be in blocking or non-blocking mode, both make sense. ++ * For one, less uses non-blocking mode. ++ * Only the first read syscall inside read_key may block indefinitely ++ * (unless fd is in non-blocking mode), ++ * subsequent reads will time out after a few milliseconds. ++ */ + int read_key(int fd, smalluint *nbuffered, char *buffer) FAST_FUNC; + + +--- busybox-1.14.0/libbb/read.c Tue Apr 14 01:43:00 2009 ++++ busybox-1.14.0-libbb/libbb/read.c Fri May 15 23:22:02 2009 +@@ -229,7 +229,7 @@ + if (size > 64*1024) + size = 64*1024; + } +- xrealloc(buf, total + 1); ++ buf = xrealloc(buf, total + 1); + buf[total] = '\0'; + + if (maxsz_p) +@@ -273,7 +273,7 @@ + free(buf); + return NULL; + } +- xrealloc(buf, size + 1); ++ buf = xrealloc(buf, size + 1); + buf[size] = '\0'; + + if (maxsz_p) diff --git a/packages/sysutils/busybox/patches/50_busybox-1.14.0-sysctl.diff b/packages/sysutils/busybox/patches/50_busybox-1.14.0-sysctl.diff new file mode 100644 index 0000000000..67383864f0 --- /dev/null +++ b/packages/sysutils/busybox/patches/50_busybox-1.14.0-sysctl.diff @@ -0,0 +1,18 @@ +--- busybox-1.14.0/procps/sysctl.c Tue Apr 14 01:43:09 2009 ++++ busybox-1.14.0-sysctl/procps/sysctl.c Sun May 10 23:40:52 2009 +@@ -214,11 +214,11 @@ + // (but _whitespace_ from ends should be trimmed first (and we do it right)) + //TODO: "var==1" is mishandled (must use "=1" as a value, but uses "1") + while (config_read(parser, token, 2, 2, "# \t=", PARSE_NORMAL)) { ++ char *tp; + sysctl_dots_to_slashes(token[0]); +- /* Save ~4 bytes by using parser internals */ +- /* parser->line is big enough for sprintf */ +- sprintf(parser->line, "%s=%s", token[0], token[1]); +- sysctl_act_recursive(parser->line); ++ tp = xasprintf("%s=%s", token[0], token[1]); ++ sysctl_act_recursive(tp); ++ free(tp); + } + if (ENABLE_FEATURE_CLEAN_UP) + config_close(parser); diff --git a/projects/jetway_j7f5m/linux/linux.i386.conf b/projects/jetway_j7f5m/linux/linux.i386.conf index 6242919574..8fdf952652 100644 --- a/projects/jetway_j7f5m/linux/linux.i386.conf +++ b/projects/jetway_j7f5m/linux/linux.i386.conf @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.30-rc4 +# Linux kernel version: 2.6.30-rc6 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -1034,7 +1034,7 @@ CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_CHARDEV=y CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOBIT=y # # I2C Hardware Bus support @@ -1370,27 +1370,26 @@ CONFIG_DVB_ISL6421=m # # Graphics support # -CONFIG_AGP=m +CONFIG_AGP=y # CONFIG_AGP_ALI is not set # CONFIG_AGP_ATI is not set # CONFIG_AGP_AMD is not set # CONFIG_AGP_AMD64 is not set -CONFIG_AGP_INTEL=m +# CONFIG_AGP_INTEL is not set # CONFIG_AGP_NVIDIA is not set # CONFIG_AGP_SIS is not set # CONFIG_AGP_SWORKS is not set -CONFIG_AGP_VIA=m +CONFIG_AGP_VIA=y # CONFIG_AGP_EFFICEON is not set -CONFIG_DRM=m +CONFIG_DRM=y # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set # CONFIG_DRM_RADEON is not set -# CONFIG_DRM_I810 is not set # CONFIG_DRM_I830 is not set # CONFIG_DRM_I915 is not set # CONFIG_DRM_MGA is not set # CONFIG_DRM_SIS is not set -# CONFIG_DRM_VIA is not set +CONFIG_DRM_VIA=y # CONFIG_DRM_SAVAGE is not set # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=y @@ -1431,9 +1430,7 @@ CONFIG_FB_VESA=y # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set -# CONFIG_FB_I810 is not set # CONFIG_FB_LE80578 is not set -# CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set diff --git a/projects/jetway_j7f5m/options b/projects/jetway_j7f5m/options index 6226075634..b4ac5aeab3 100644 --- a/projects/jetway_j7f5m/options +++ b/projects/jetway_j7f5m/options @@ -4,9 +4,15 @@ MEDIACENTER=elisa # X.org drivers to use (all/ati/geode/glint/i740/intel/mga/nv/openchrome/ # radeonhd/s3/s3virge/savage/sis/tdfx/trident/vesa/vmware) # Space separated list is supported, e.g. XORG_DRIVERS="ati s3" -XORG_DRIVERS="openchrome-ttm" -DRIDRIVERS="openchrome" +#XORG_DRIVERS="openchrome-ttm" +#DRIDRIVERS="openchrome" -MESA=Mesa-openchrome -LIBDRM=libdrm-newttm +#MESA=Mesa-openchrome +#LIBDRM=libdrm-newttm + +XORG_DRIVERS="openchrome" +DRIDRIVERS="unichrome" + +MESA=Mesa +LIBDRM=libdrm