2009-01-28 11:13:20

by A B

[permalink] [raw]
Subject: Fat64 / exFat fs and Linux

Hi,

since Microsoft has now released their fat64 / exfat fs also for their 'stable' product line [1] and it seems to be the future choice for large capacity removable flash media, it seems likely that Linux users will start seeing this fs on USB sticks, portable drives and SDXC flash cards in the near future. The status at this time seems to be that there is no driver available and the specifications are not published either. Is someone working on a driver at the moment or are there any plans? Somehow it does not seem entirely unlikely that the past nightmare of linux-unreadable NTFS disks and media prior to the present NTFS driver will repeat itself with exFAT.

Max

[1] http://support.microsoft.com/?kbid=955704




2009-01-29 07:10:20

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

A B <[email protected]> writes:

> since Microsoft has now released their fat64 / exfat fs also for their 'stable' product line [1] and it seems to be the future choice for large capacity removable flash media, it seems likely that Linux users will start seeing this fs on USB sticks, portable drives and SDXC flash cards in the near future. The status at this time seems to be that there is no driver available and the specifications are not published either. Is someone working on a driver at the moment or are there any plans? Somehow it does not seem entirely unlikely that the past nightmare of linux-unreadable NTFS disks and media prior to the present NTFS driver will repeat itself with exFAT.

I wrote the driver for read-only exFAT driver at a few months ago.
However, I'm not working for it actively, because I can't make time for
it now.

If someone want to see it, email me.
--
OGAWA Hirofumi <[email protected]>

2009-01-29 21:52:25

by A B

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

> OGAWA Hirofumi writes:
>> A B <[email protected]> writes:
>> since Microsoft has now released their fat64 / exfat fs also for their
>> 'stable' product line [1] and it seems to be the future choice for large
>> capacity removable flash media, (...)
>
> I wrote the driver for read-only exFAT driver at a few months ago.
> However, I'm not working for it actively, because I can't make time for
> it now.

Great! That sounds very promising.
Maybe you can post it to the list or on a webpage?

Cheers,
Max


2009-01-29 22:27:55

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

A B <[email protected]> writes:

>> OGAWA Hirofumi writes:
>>> A B <[email protected]> writes:
>>> since Microsoft has now released their fat64 / exfat fs also for their
>>> 'stable' product line [1] and it seems to be the future choice for large
>>> capacity removable flash media, (...)
>>
>> I wrote the driver for read-only exFAT driver at a few months ago.
>> However, I'm not working for it actively, because I can't make time for
>> it now.
>
> Great! That sounds very promising.
> Maybe you can post it to the list or on a webpage?

Ok, I've put the patchset to,

http://userweb.kernel.org/~hirofumi/exfat/exfat.tar.gz

exfat/series is patch order to apply, and exfat/patches/* is patches.

It would be temporary place, well, anyway, this is my lastest version.

Thanks.
--
OGAWA Hirofumi <[email protected]>

2009-01-29 22:31:35

by H. Peter Anvin

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

OGAWA Hirofumi wrote:
>
> Ok, I've put the patchset to,
>
> http://userweb.kernel.org/~hirofumi/exfat/exfat.tar.gz
>
> exfat/series is patch order to apply, and exfat/patches/* is patches.
>
> It would be temporary place, well, anyway, this is my lastest version.
>

Are there any non-sign-your-life-away specs to exFAT?

-hpa

2009-01-29 22:42:46

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

"H. Peter Anvin" <[email protected]> writes:

> OGAWA Hirofumi wrote:
>>
>> Ok, I've put the patchset to,
>>
>> http://userweb.kernel.org/~hirofumi/exfat/exfat.tar.gz
>>
>> exfat/series is patch order to apply, and exfat/patches/* is patches.
>>
>> It would be temporary place, well, anyway, this is my lastest version.
>>
>
> Are there any non-sign-your-life-away specs to exFAT?

I don't know whether there is any specs. I've hacked it from the disk
image created by Vista.

Thanks.
--
OGAWA Hirofumi <[email protected]>

2009-01-30 00:31:30

by A B

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

OGAWA Hirofumi wrote:
>
> Ok, I've put the patchset to,
>
> http://userweb.kernel.org/~hirofumi/exfat/exfat.tar.gz
>
> exfat/series is patch order to apply, and exfat/patches/* is patches.
>
> It would be temporary place, well, anyway, this is my lastest version.
>

Thanks for the code, I patched it into 2.6.28.2 and tried it on a 128MB USB
volume filled with many files. The driver correctly read 73% of the files.
Impressive. Looking at the others, they seemed to have what I would call
'alignment problems'.

md5sum: WARNING: 1008 of 3842 computed checksums did NOT match

Cheers,
Max



2009-01-30 03:27:26

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

A B <[email protected]> writes:

>> Ok, I've put the patchset to,
>>
>> http://userweb.kernel.org/~hirofumi/exfat/exfat.tar.gz
>>
>> exfat/series is patch order to apply, and exfat/patches/* is patches.
>>
>> It would be temporary place, well, anyway, this is my lastest version.
>>
>
> Thanks for the code, I patched it into 2.6.28.2 and tried it on a 128MB USB
> volume filled with many files. The driver correctly read 73% of the files.
> Impressive. Looking at the others, they seemed to have what I would call
> 'alignment problems'.
>
> md5sum: WARNING: 1008 of 3842 computed checksums did NOT match

Thanks for testing. I see. What is the 'alignment problems'? Well,
anyway, can I get the disk image of USB, or are there any way to
reproduce it in my machine?

Or can you dump with hacked userland command (this can be buggy)?

http://userweb.kernel.org/~hirofumi/exfat/exfat-userland.tar.gz

$ tar xzf exfat-userland.tar.gz
$ cd exfat-userland
$ make
$ ./exfat /path/to/exfat_device > exfat.dump

And please send exfat.dump.

Well, if you can debug it with this userland command, it would be
helpful. :)

Thanks.
--
OGAWA Hirofumi <[email protected]>

2009-01-31 03:46:00

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

OGAWA Hirofumi <[email protected]> writes:

> A B <[email protected]> writes:
>
>>> Ok, I've put the patchset to,
>>>
>>> http://userweb.kernel.org/~hirofumi/exfat/exfat.tar.gz
>>>
>>> exfat/series is patch order to apply, and exfat/patches/* is patches.
>>>
>>> It would be temporary place, well, anyway, this is my lastest version.
>>>
>>
>> Thanks for the code, I patched it into 2.6.28.2 and tried it on a 128MB USB
>> volume filled with many files. The driver correctly read 73% of the files.
>> Impressive. Looking at the others, they seemed to have what I would call
>> 'alignment problems'.
>>
>> md5sum: WARNING: 1008 of 3842 computed checksums did NOT match

I've updated the tarballs to fix the bug he found. If someone tried old
tarballs, please download new tarballs and try.

http://userweb.kernel.org/~hirofumi/exfat/exfat.tar.gz

Thanks.
--
OGAWA Hirofumi <[email protected]>

2009-12-01 22:46:50

by Alex Buell

[permalink] [raw]
Subject: RE: Fat64 / exFat fs and Linux

On Tue, 2009-12-01 at 13:58 -0800, Yuhong Bao wrote:
> > The bz2 tarball can be found at:
> > http://www.munted.org.uk/programming/exfat.tar.bz2

> Both of these links are now dead. It was alive, I remember downloading
> it.

My most abject apologies, I hadn't noticed the files had disappeared
from my website. I've just re-uploaded the files. Thanks for letting me
know!

Regards,
Alex
--
http://www.munted.org.uk

One very high maintenance cat living here.

2009-12-11 21:59:02

by Peter Paul

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

On Sun, 8 Feb 2009 09:43:33 +0000 (GMT), Alex Buell wrote
> On Sun, 1 Feb 2009 12:46:00 +0000 (GMT), I waved a wand and this
> message magically appears in front of A B:
> > > I've updated the tarballs to fix the bug he found. If someone tried
> > > old tarballs, please download new tarballs and try.
> > >
> > > http://userweb.kernel.org/~hirofumi/exfat/exfat.tar.gz
>
> I have just converted your set of patches into a standalone module
> driver that you can build outside the kernel as long as you have a
> recent version of the kernel sources installed (currently 2.6.27).
>
> The only modification I needed to make was to add an extern for sys_tz
> in utils.c (extern struct timezone sys_tz)
>
> The bz2 tarball can be found at:
> http://www.munted.org.uk/programming/exfat.tar.bz2

Is that one still alive? Maybe this should go into staging, now that exFAT got proposed as standard file system for SDXC [1] cards.

[1] http://www.sdcard.org/developers/tech/sdxc
______________________________________________________
GRATIS f?r alle WEB.DE-Nutzer: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://movieflat.web.de

2011-02-27 17:27:28

by Tobias Karnat

[permalink] [raw]
Subject: Re: Fat64 / exFat fs and Linux

Hi,

this patch makes the exFAT driver compatible with Linux 2.6.36.

-Tobias

diff -urN a/exfat/exfat.h b/exfat/exfat.h
--- a/exfat/exfat.h 2009-02-08 00:21:25.000000000 +0100
+++ b/exfat/exfat.h 2010-11-23 16:16:28.000000000 +0100
@@ -8,6 +8,7 @@

#include <linux/fs.h>
#include <linux/nls.h>
+#include <linux/slab.h>
#include "exfat_fs.h"

/* FIXME: remove this */
diff -urN a/exfat/super.c b/exfat/super.c
--- a/exfat/super.c 2009-02-08 00:20:52.000000000 +0100
+++ b/exfat/super.c 2010-12-08 13:41:51.000000000 +0100
@@ -58,8 +58,11 @@
kmem_cache_free(exfat_inode_cachep, EXFAT_I(inode));
}

-static void exfat_clear_inode(struct inode *inode)
+static void exfat_evict_inode(struct inode *inode)
{
+ truncate_inode_pages(&inode->i_data, 0);
+ invalidate_inode_buffers(inode);
+ end_writeback(inode);
exfat_cache_inval(inode);
exfat_detach(inode);
}
@@ -268,8 +271,7 @@
.alloc_inode = exfat_alloc_inode,
.destroy_inode = exfat_destroy_inode,
// .write_inode = ext4_write_inode,
-// .delete_inode = ext4_delete_inode,
- .clear_inode = exfat_clear_inode,
+ .evict_inode = exfat_evict_inode,
.put_super = exfat_put_super,
// .write_super = ext4_write_super,
.statfs = exfat_statfs,