From 58ae45f345826e27b17ad16c8d8a5699ec006a1f Mon Sep 17 00:00:00 2001 From: Ulf Samuelsson Date: Fri, 20 Jul 2007 08:00:19 +0000 Subject: Add optional mtd configuration (experimental - only available for Atmel targets) --- package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch | 19 ++++ package/mtd/20061007/mtd.mk | 114 +++++++++++++++++++++ package/mtd/20061007/mtd_20061007.patch | 93 +++++++++++++++++ package/mtd/20061007/mtd_acl.patch | 48 +++++++++ 4 files changed, 274 insertions(+) create mode 100644 package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch create mode 100644 package/mtd/20061007/mtd.mk create mode 100644 package/mtd/20061007/mtd_20061007.patch create mode 100644 package/mtd/20061007/mtd_acl.patch (limited to 'package/mtd/20061007') diff --git a/package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch b/package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch new file mode 100644 index 000000000..3c4d6bad6 --- /dev/null +++ b/package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch @@ -0,0 +1,19 @@ +diff -urN mtd-20061007.orig-0rig/mkfs.jffs2.c mtd-20061007.orig/mkfs.jffs2.c +--- mtd-20061007.orig-0rig/mkfs.jffs2.c 2006-10-07 17:33:37.000000000 +0200 ++++ mtd-20061007.orig/mkfs.jffs2.c 2007-04-09 02:16:06.000000000 +0200 +@@ -240,6 +242,15 @@ + { + struct filesystem_entry *e = dir; + ++ if((strlen(fullname) == 1) && (fullname[0] == '/')) { ++ /* Looking for "root" */ ++ if(e != NULL) { ++ if((strlen(e->fullname) == 1) && (e->fullname[0] == '/')) { ++ return (e); ++ } ++ } ++ } ++ + if (S_ISDIR(dir->sb.st_mode)) { + e = dir->files; + } diff --git a/package/mtd/20061007/mtd.mk b/package/mtd/20061007/mtd.mk new file mode 100644 index 000000000..006bfeb9c --- /dev/null +++ b/package/mtd/20061007/mtd.mk @@ -0,0 +1,114 @@ +############################################################# +# +# mtd provides jffs2 utilities +# +############################################################# +MTD_SOURCE=mtd_20061007.orig.tar.gz +MTD_SITE=http://ftp.debian.org/debian/pool/main/m/mtd +MTD_HOST_DIR := $(TOOL_BUILD_DIR)/mtd_orig +MTD_DIR:=$(BUILD_DIR)/mtd_orig +MTD_CAT:=zcat +MTD_DATE:=20061007 + +############################################################# +# +# Build mkfs.jffs2 for use on the local host system if +# needed by target/jffs2root. +# +############################################################# +MKFS_JFFS2 := $(MTD_HOST_DIR)/mkfs.jffs2 + +$(DL_DIR)/$(MTD_SOURCE): + $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE) + +$(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE) + $(ZCAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) - + mv $(TOOL_BUILD_DIR)/$(shell tar tzf $(DL_DIR)/$(MTD_SOURCE) | head -n 1 \ + | xargs basename) $(MTD_HOST_DIR) + toolchain/patch-kernel.sh $(MTD_HOST_DIR) \ + package/mtd/$(MTD_DATE) \*.patch + touch $@ + +$(MTD_HOST_DIR)/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked + CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \ + $(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR) mkfs.jffs2 + +mtd-host: $(MKFS_JFFS2) + +mtd-host-source: $(DL_DIR)/$(MTD_SOURCE) + +mtd-host-clean: + -$(MAKE) -C $(MTD_HOST_DIR) clean + +mtd-host-dirclean: + rm -rf $(MTD_HOST_DIR) + +############################################################# +# +# build mtd for use on the target system +# +############################################################# +$(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE) + $(ZCAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + mv $(BUILD_DIR)/$(shell tar tzf $(DL_DIR)/$(MTD_SOURCE) \ + | head -n 1 | xargs basename) $(MTD_DIR) + toolchain/patch-kernel.sh $(MTD_DIR) \ + package/mtd/$(MTD_DATE) \*.patch + touch $@ + +MTD_TARGETS_n := +MTD_TARGETS_y := + +MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASE) += flash_erase +MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASEALL) += flash_eraseall +MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_INFO) += flash_info +MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_LOCK) += flash_lock +MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_UNLOCK) += flash_unlock +MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASHCP) += flashcp +MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS2) += mkfs.jffs2 +MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS) += mkfs.jffs +MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS2DUMP) += jffs2dump +#MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS3DUMP) += jffs3dump +MTD_TARGETS_$(BR2_PACKAGE_MTD_SUMTOOL) += sumtool +MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_CHECK) += ftl_check +MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_FORMAT) += ftl_format +MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTLDUMP) += nftldump +MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTL_FORMAT) += nftl_format +MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDDUMP) += nanddump +MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDWRITE) += nandwrite +MTD_TARGETS_$(BR2_PACKAGE_MTD_MTD_DEBUG) += mtd_debug +MTD_TARGETS_$(BR2_PACKAGE_MTD_DOCFDISK) += docfdisk +MTD_TARGETS_$(BR2_PACKAGE_MTD_DOC_LOADBIOS) += doc_loadbios + +MTD_BUILD_TARGETS := $(addprefix $(MTD_DIR)/, $(MTD_TARGETS_y)) + +$(MTD_BUILD_TARGETS): $(MTD_DIR)/.unpacked + mkdir -p $(TARGET_DIR)/usr/sbin + $(MAKE) CFLAGS="-I. -I./include -I$(LINUX_HEADERS_DIR)/include -I$(STAGING_DIR)/include $(TARGET_CFLAGS)" \ + CROSS= CC=$(TARGET_CC) LINUXDIR=$(LINUX_DIR) WITHOUT_XATTR=1 -C $(MTD_DIR) + +MTD_TARGETS := $(addprefix $(TARGET_DIR)/usr/sbin/, $(MTD_TARGETS_y)) + +$(MTD_TARGETS): $(TARGET_DIR)/usr/sbin/% : $(MTD_DIR)/% + cp -f $< $@ + $(STRIP) $@ + +mtd: zlib $(MTD_TARGETS) + +mtd-source: $(DL_DIR)/$(MTD_SOURCE) + +mtd-clean: + -$(MAKE) -C $(MTD_DIR) clean + +mtd-dirclean: + rm -rf $(MTD_DIR) + + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(strip $(BR2_PACKAGE_MTD)),y) +TARGETS+=mtd +endif diff --git a/package/mtd/20061007/mtd_20061007.patch b/package/mtd/20061007/mtd_20061007.patch new file mode 100644 index 000000000..23654fea6 --- /dev/null +++ b/package/mtd/20061007/mtd_20061007.patch @@ -0,0 +1,93 @@ +diff -urN mtd-20061007.orig/Makefile mtd-20061007.orig.patch/Makefile +--- mtd-20061007.orig/Makefile 2006-10-07 16:33:37.000000000 +0100 ++++ mtd-20061007.orig.patch/Makefile 2007-01-09 14:06:22.000000000 +0000 +@@ -9,12 +9,10 @@ + #CROSS=arm-linux- + CC := $(CROSS)gcc + CFLAGS := -I./include -O2 -Wall ++BUILDDIR := . + +-ifeq ($(origin CROSS),undefined) +- BUILDDIR := . +-else +-# Remove the trailing slash to make the directory name +- BUILDDIR := $(CROSS:-=) ++ifeq ($(WITHOUT_XATTR), 1) ++ CFLAGS += -DWITHOUT_XATTR + endif + + RAWTARGETS = ftl_format flash_erase flash_eraseall nanddump doc_loadbios \ +diff -urN mtd-20061007.orig/mkfs.jffs2.c mtd-20061007.orig.patch/mkfs.jffs2.c +--- mtd-20061007.orig/mkfs.jffs2.c 2006-10-07 16:33:37.000000000 +0100 ++++ mtd-20061007.orig.patch/mkfs.jffs2.c 2007-01-09 11:18:33.000000000 +0000 +@@ -64,8 +64,10 @@ + #include + #include + #include +-#include +-#include ++#ifndef WITHOUT_XATTR ++ #include ++ #include ++#endif + #include + #define crc32 __complete_crap + #include +@@ -1030,6 +1032,7 @@ + padword(); + } + ++#ifndef WITHOUT_XATTR + typedef struct xattr_entry { + struct xattr_entry *next; + uint32_t xid; +@@ -1258,6 +1261,9 @@ + padword(); + } + } ++#else /* WITHOUT_XATTR */ ++#define write_xattr_entry(x) ++#endif + + static void recursive_populate_directory(struct filesystem_entry *dir) + { +@@ -1416,9 +1422,11 @@ + {"test-compression", 0, NULL, 't'}, + {"compressor-priority", 1, NULL, 'y'}, + {"incremental", 1, NULL, 'i'}, ++#ifndef WITHOUT_XATTR + {"with-xattr", 0, NULL, 1000 }, + {"with-selinux", 0, NULL, 1001 }, + {"with-posix-acl", 0, NULL, 1002 }, ++#endif + {NULL, 0, NULL, 0} + }; + +@@ -1451,9 +1459,11 @@ + " -q, --squash Squash permissions and owners making all files be owned by root\n" + " -U, --squash-uids Squash owners making all files be owned by root\n" + " -P, --squash-perms Squash permissions on all files\n" ++#ifndef WITHOUT_XATTR + " --with-xattr stuff all xattr entries into image\n" + " --with-selinux stuff only SELinux Labels into jffs2 image\n" + " --with-posix-acl stuff only POSIX ACL entries into jffs2 image\n" ++#endif + " -h, --help Display this help text\n" + " -v, --verbose Verbose operation\n" + " -V, --version Display version information\n" +@@ -1772,6 +1782,7 @@ + perror_msg_and_die("cannot open (incremental) file"); + } + break; ++#ifndef WITHOUT_XATTR + case 1000: /* --with-xattr */ + enable_xattr |= (1 << JFFS2_XPREFIX_USER) + | (1 << JFFS2_XPREFIX_SECURITY) +@@ -1786,6 +1797,7 @@ + enable_xattr |= (1 << JFFS2_XPREFIX_ACL_ACCESS) + | (1 << JFFS2_XPREFIX_ACL_DEFAULT); + break; ++#endif + } + } + if (out_fd == -1) { diff --git a/package/mtd/20061007/mtd_acl.patch b/package/mtd/20061007/mtd_acl.patch new file mode 100644 index 000000000..953786eb1 --- /dev/null +++ b/package/mtd/20061007/mtd_acl.patch @@ -0,0 +1,48 @@ +Author: Ulf Samuelsson +Date: 2007-01-25 + +Log: +Patch adding "sys/acl.h" needed to compile mtd. + +Modified: + package/mtd/mtd_acl.patch + +Changeset + package/mtd/mtd_acl.patch + +diff -urN mtd_orig-0rig/include/sys/acl.h mtd_orig/include/sys/acl.h +--- mtd_orig-0rig/include/sys/acl.h 1970-01-01 01:00:00.000000000 +0100 ++++ mtd_orig/include/sys/acl.h 2007-01-17 20:11:22.000000000 +0100 +@@ -0,0 +1,32 @@ ++/* ++ File: linux/posix_acl.h ++ ++ (C) 2002 Andreas Gruenbacher, ++*/ ++ ++ ++#ifndef __LINUX_POSIX_ACL_H ++#define __LINUX_POSIX_ACL_H ++ ++#define ACL_UNDEFINED_ID (-1) ++ ++/* a_type field in acl_user_posix_entry_t */ ++#define ACL_TYPE_ACCESS (0x8000) ++#define ACL_TYPE_DEFAULT (0x4000) ++ ++/* e_tag entry in struct posix_acl_entry */ ++#define ACL_USER_OBJ (0x01) ++#define ACL_USER (0x02) ++#define ACL_GROUP_OBJ (0x04) ++#define ACL_GROUP (0x08) ++#define ACL_MASK (0x10) ++#define ACL_OTHER (0x20) ++ ++/* permissions in the e_perm field */ ++#define ACL_READ (0x04) ++#define ACL_WRITE (0x02) ++#define ACL_EXECUTE (0x01) ++//#define ACL_ADD (0x08) ++//#define ACL_DELETE (0x10) ++ ++#endif /* __LINUX_POSIX_ACL_H */ -- cgit v1.2.3