From c2de8d41236cf1293db9e6c69d69e8d14f55ffd1 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 13 Dec 2011 14:01:33 +0000 Subject: dosfstools: Add patch to disable fat32 autoselection and behave as 2.10 It appears msdos image population and fat32 images are incompatible. This reverts to the 2.10 behaviour of defaulting to fat16 instead of using fat32 for large images, allowing image generation to work correctly. This is a workaround and a proper fix is really needed. Signed-off-by: Richard Purdie --- .../dosfstools/dosfstools/nofat32_autoselect.patch | 27 ++++++++++++++++++++++ .../recipes-devtools/dosfstools/dosfstools_2.11.bb | 5 ++-- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-devtools/dosfstools/dosfstools/nofat32_autoselect.patch (limited to 'meta') diff --git a/meta/recipes-devtools/dosfstools/dosfstools/nofat32_autoselect.patch b/meta/recipes-devtools/dosfstools/dosfstools/nofat32_autoselect.patch new file mode 100644 index 000000000..21ebc1052 --- /dev/null +++ b/meta/recipes-devtools/dosfstools/dosfstools/nofat32_autoselect.patch @@ -0,0 +1,27 @@ +FAT32 appears to be broken when used with the -d option to populate the msdos +image. This disables the FAT32 autoselection code which means we don't get +broken images with the -d option. It can still be enabled on the commandline +at the users own risk. This changes us back to the 2.10 version's behaviour +which was known to work well even with large images. + +Upstream Status: Inapprioriate [depends on other patches we apply] + +RP 2011/12/13 + +Index: dosfstools-2.11/mkdosfs/mkdosfs.c +=================================================================== +--- dosfstools-2.11.orig/mkdosfs/mkdosfs.c 2011-12-13 13:54:37.538509391 +0000 ++++ dosfstools-2.11/mkdosfs/mkdosfs.c 2011-12-13 13:55:10.258508631 +0000 +@@ -808,10 +808,12 @@ + bs.media = (char) 0xf8; /* Set up the media descriptor for a hard drive */ + bs.dir_entries[0] = (char) 0; /* Default to 512 entries */ + bs.dir_entries[1] = (char) 2; ++/* + if (!size_fat && blocks*SECTORS_PER_BLOCK > 1064960) { + if (verbose) printf("Auto-selecting FAT32 for large filesystem\n"); + size_fat = 32; + } ++*/ + if (size_fat == 32) { + /* For FAT32, try to do the same as M$'s format command: + * fs size < 256M: 0.5k clusters diff --git a/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb b/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb index 7d0080cdf..66eeb7c71 100644 --- a/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb +++ b/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb @@ -7,7 +7,7 @@ DESCRIPTION = "DOS FAT Filesystem Utilities" SECTION = "base" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://mkdosfs/COPYING;md5=cbe67f08d6883bff587f615f0cc81aa8" -PR = "r1" +PR = "r3" SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \ file://mkdosfs-bootcode.patch \ @@ -15,7 +15,8 @@ SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV} file://alignment_hack.patch \ file://msdos_fat12_undefined.patch \ file://dosfstools-msdos_fs-types.patch \ - file://include-linux-types.patch" + file://include-linux-types.patch \ + file://nofat32_autoselect.patch " SRC_URI[md5sum] = "407d405ade410f7597d364ab5dc8c9f6" SRC_URI[sha256sum] = "0eac6d12388b3d9ed78684529c1b0d9346fa2abbe406c4d4a3eb5a023c98a484" -- cgit v1.2.3