summaryrefslogtreecommitdiffstats
path: root/target/linux/rb532-2.6/image
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-12-07 00:26:26 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-12-07 00:26:26 +0000
commit19021c16ffef5393aebedf009c57a86b11b996c2 (patch)
tree09f622c2cec8948505435552ac6dddf3d790ee98 /target/linux/rb532-2.6/image
parente225f119a7b136639695da38345d0c4d78abe2ea (diff)
remove custom partition table hack, add ptgen utility for generating partition tables
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5704 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/rb532-2.6/image')
-rw-r--r--target/linux/rb532-2.6/image/Makefile16
-rwxr-xr-xtarget/linux/rb532-2.6/image/gen_image.sh17
2 files changed, 18 insertions, 15 deletions
diff --git a/target/linux/rb532-2.6/image/Makefile b/target/linux/rb532-2.6/image/Makefile
index 490721446..1f3a88ba4 100644
--- a/target/linux/rb532-2.6/image/Makefile
+++ b/target/linux/rb532-2.6/image/Makefile
@@ -39,9 +39,6 @@ define Image/BuildKernel
$(CP) $(KDIR)/loader.elf $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinux
endef
-PARTITION1=\x80\x01\x01\x00\x27\x01\x20\x7b\x20\x00\x00\x00\xe0\x1e\x00\x00# 4 MB (kernel part)
-PARTITION2=\x00\x00\x01\x7c\x83\x01\xa0\x64\x00\x1f\x00\x00\x40\x7a\x00\x00# 16 MB (rootfs part)
-
define Image/cmdline/jffs2-64k
block2mtd.block2mtd=/dev/cfa2,65536 root=/dev/mtdblock0 rootfstype=jffs2
endef
@@ -56,18 +53,7 @@ endef
define Image/Build
$(STAGING_DIR)/bin/patch-cmdline $(LINUX_DIR)/vmlinux '$(strip $(call Image/cmdline/$(1))) '
- ( \
- echo -ne OWRT | dd bs=$$$$((0x1be)) conv=sync; \
- ( \
- echo -ne '$(strip $(PARTITION1))'; \
- echo -ne '$(strip $(PARTITION2))'; \
- ) | dd bs=$$$$((0x40)) conv=sync; \
- echo -ne '\x55\xaa'; \
- dd if=/dev/zero bs=$$$$((0x3e00)) conv=sync count=1; \
- dd if=$(LINUX_DIR)/vmlinux bs=$$$$((0x3dc000)) conv=sync; \
- cat $(KDIR)/root.$(1); \
- echo -ne '\xde\xad\xc0\xde'; \
- ) > $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).bin
+ ./gen_image.sh $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).bin 4 $(LINUX_DIR)/vmlinux 16 $(KDIR)/root.$(1)
endef
$(eval $(call BuildImage))
diff --git a/target/linux/rb532-2.6/image/gen_image.sh b/target/linux/rb532-2.6/image/gen_image.sh
new file mode 100755
index 000000000..e81285979
--- /dev/null
+++ b/target/linux/rb532-2.6/image/gen_image.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+OUTPUT="$1"
+KERNELSIZE="$2"
+KERNELIMAGE="$3"
+ROOTFSSIZE="$4"
+ROOTFSIMAGE="$5"
+
+rm -f "$OUTPUT"
+
+# create partition table
+set `ptgen -o "$OUTPUT" -h 16 -s 32 -t 0x27 -p ${KERNELSIZE}m -t 0x83 -p ${ROOTFSSIZE}m`
+
+KERNELOFFSET="$(($1 / 512))"
+ROOTFSOFFSET="$(($2 / 512))"
+
+dd if="$KERNELIMAGE" of="$OUTPUT" bs=512 conv=notrunc seek="$KERNELOFFSET"
+dd if="$ROOTFSIMAGE" of="$OUTPUT" bs=512 conv=notrunc seek="$ROOTFSOFFSET"