From 67427daf172ffbec429830ee97410c53095086d5 Mon Sep 17 00:00:00 2001 From: Pali Rohár Date: Sat, 1 May 2021 15:34:22 +0200 Subject: local: Fix calling nanddump In last 15 years nanddump changed its command line arguments. Argument -b (omit bad blocks) was completely removed and argument -o (omit oob data) changed its meaning to "include" oob data. So for compatibility with all nanddump versions, do not use argument -b and instead of -o use argument --omitoob which is present in all nanddump versions and has same meaning to omit oob data. This change should fix dumping firmware files on devices with recent versions of nanddump. --- doc/dumping | 5 ++--- src/local.c | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/doc/dumping b/doc/dumping index 4a629cd..b7e9cdf 100644 --- a/doc/dumping +++ b/doc/dumping @@ -30,11 +30,10 @@ Technical details: For dumping mtd partition is used tool nanddump. Here is example how to dump kernel image without padding to file zImage: - $ nanddump -o -b -s 0x00000800 -l 0x001FF800 -f zImage /dev/mtd2 + $ nanddump --omitoob -s 0x00000800 -l 0x001FF800 -f zImage /dev/mtd2 Params means: --o - "Omit oob data" --b - "Omit bad blocks" +--omitoob - "Omit oob data" -s - "Start address" -l - "Length" -f - "Output file" diff --git a/src/local.c b/src/local.c index 3813910..f9da146 100644 --- a/src/local.c +++ b/src/local.c @@ -227,13 +227,13 @@ static int local_nanddump(const char * file, int mtd, int offset, int length) { return 1; } - size = snprintf(NULL, 0, "nanddump -o -b -s %d -l %d -f %s /dev/mtd%dro", offset, length, file, mtd); + size = snprintf(NULL, 0, "nanddump --omitoob -s %d -l %d -f %s /dev/mtd%d", offset, length, file, mtd); command = malloc(size+1); if ( ! command ) return 1; - snprintf(command, size+1, "nanddump -o -b -s %d -l %d -f %s /dev/mtd%dro", offset, length, file, mtd); + snprintf(command, size+1, "nanddump --omitoob -s %d -l %d -f %s /dev/mtd%d", offset, length, file, mtd); ret = system(command); -- cgit v1.2.3