blob: 25fae1c83725bc9293c26e9191690241d77b1295 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Alexey Dobriyan1c6ace02009-01-22 10:37:59 +03002config FAT_FS
3 tristate
Christoph Hellwig925c86a2023-08-01 19:22:01 +02004 select BUFFER_HEAD
Alexey Dobriyan1c6ace02009-01-22 10:37:59 +03005 select NLS
Christoph Hellwig9636e652023-01-25 07:58:39 +01006 select LEGACY_DIRECT_IO
Alexey Dobriyan1c6ace02009-01-22 10:37:59 +03007 help
8 If you want to use one of the FAT-based file systems (the MS-DOS and
9 VFAT (Windows 95) file systems), then you must say Y or M here
10 to include FAT support. You will then be able to mount partitions or
11 diskettes with FAT-based file systems and transparently access the
12 files on them, i.e. MSDOS files will look and behave just like all
13 other Unix files.
14
15 This FAT support is not a file system in itself, it only provides
16 the foundation for the other file systems. You will have to say Y or
17 M to at least one of "MSDOS fs support" or "VFAT fs support" in
18 order to make use of it.
19
20 Another way to read and write MSDOS floppies and hard drive
21 partitions from within Linux (but not transparently) is with the
22 mtools ("man mtools") program suite. You don't need to say Y here in
23 order to do that.
24
25 If you need to move large files on floppies between a DOS and a
26 Linux box, say Y here, mount the floppy under Linux with an MSDOS
27 file system and use GNU tar's M option. GNU tar is a program
28 available for Unix and DOS ("man tar" or "info tar").
29
30 The FAT support will enlarge your kernel by about 37 KB. If unsure,
31 say Y.
32
33 To compile this as a module, choose M here: the module will be called
34 fat. Note that if you compile the FAT support as a module, you
35 cannot compile any of the FAT-based file systems into the kernel
36 -- they will have to be modules as well.
37
38config MSDOS_FS
39 tristate "MSDOS fs support"
40 select FAT_FS
41 help
42 This allows you to mount MSDOS partitions of your hard drive (unless
43 they are compressed; to access compressed MSDOS partitions under
44 Linux, you can either use the DOS emulator DOSEMU, described in the
45 DOSEMU-HOWTO, available from
Alexander A. Klimov4ecfed62020-08-11 18:35:59 -070046 <https://www.tldp.org/docs.html#howto>, or try dmsdosfs in
Alexey Dobriyan1c6ace02009-01-22 10:37:59 +030047 <ftp://ibiblio.org/pub/Linux/system/filesystems/dosfs/>. If you
48 intend to use dosemu with a non-compressed MSDOS partition, say Y
49 here) and MSDOS floppies. This means that file access becomes
50 transparent, i.e. the MSDOS files look and behave just like all
51 other Unix files.
52
53 If you have Windows 95 or Windows NT installed on your MSDOS
54 partitions, you should use the VFAT file system (say Y to "VFAT fs
55 support" below), or you will not be able to see the long filenames
56 generated by Windows 95 / Windows NT.
57
58 This option will enlarge your kernel by about 7 KB. If unsure,
59 answer Y. This will only work if you said Y to "DOS FAT fs support"
60 as well. To compile this as a module, choose M here: the module will
61 be called msdos.
62
63config VFAT_FS
64 tristate "VFAT (Windows-95) fs support"
65 select FAT_FS
66 help
67 This option provides support for normal Windows file systems with
68 long filenames. That includes non-compressed FAT-based file systems
69 used by Windows 95, Windows 98, Windows NT 4.0, and the Unix
70 programs from the mtools package.
71
72 The VFAT support enlarges your kernel by about 10 KB and it only
73 works if you said Y to the "DOS FAT fs support" above. Please read
Mauro Carvalho Chehab72ef5e52020-04-14 18:48:35 +020074 the file <file:Documentation/filesystems/vfat.rst> for details. If
Alexey Dobriyan1c6ace02009-01-22 10:37:59 +030075 unsure, say Y.
76
77 To compile this as a module, choose M here: the module will be called
78 vfat.
79
80config FAT_DEFAULT_CODEPAGE
81 int "Default codepage for FAT"
David Gowb0d4ada2021-04-15 23:56:23 -070082 depends on FAT_FS
Alexey Dobriyan1c6ace02009-01-22 10:37:59 +030083 default 437
84 help
85 This option should be set to the codepage of your FAT filesystems.
86 It can be overridden with the "codepage" mount option.
Mauro Carvalho Chehab72ef5e52020-04-14 18:48:35 +020087 See <file:Documentation/filesystems/vfat.rst> for more information.
Alexey Dobriyan1c6ace02009-01-22 10:37:59 +030088
89config FAT_DEFAULT_IOCHARSET
90 string "Default iocharset for FAT"
91 depends on VFAT_FS
92 default "iso8859-1"
93 help
94 Set this to the default input/output character set you'd
95 like FAT to use. It should probably match the character set
96 that most of your FAT filesystems use, and can be overridden
97 with the "iocharset" mount option for FAT filesystems.
98 Note that "utf8" is not recommended for FAT filesystems.
Maciej S. Szmigiero38739382016-03-22 14:25:30 -070099 If unsure, you shouldn't set "utf8" here - select the next option
100 instead if you would like to use UTF-8 encoded file names by default.
Mauro Carvalho Chehab72ef5e52020-04-14 18:48:35 +0200101 See <file:Documentation/filesystems/vfat.rst> for more information.
Alan Coxd29a2e92009-04-17 12:22:35 +0100102
103 Enable any character sets you need in File Systems/Native Language
104 Support.
Maciej S. Szmigiero38739382016-03-22 14:25:30 -0700105
106config FAT_DEFAULT_UTF8
107 bool "Enable FAT UTF-8 option by default"
108 depends on VFAT_FS
109 default n
110 help
111 Set this if you would like to have "utf8" mount option set
112 by default when mounting FAT filesystems.
113
114 Even if you say Y here can always disable UTF-8 for
115 particular mount by adding "utf8=0" to mount options.
116
117 Say Y if you use UTF-8 encoding for file names, N otherwise.
118
Mauro Carvalho Chehab72ef5e52020-04-14 18:48:35 +0200119 See <file:Documentation/filesystems/vfat.rst> for more information.
David Gowb0d4ada2021-04-15 23:56:23 -0700120
121config FAT_KUNIT_TEST
122 tristate "Unit Tests for FAT filesystems" if !KUNIT_ALL_TESTS
123 depends on KUNIT && FAT_FS
124 default KUNIT_ALL_TESTS
125 help
126 This builds the FAT KUnit tests
127
128 For more information on KUnit and unit tests in general, please refer
129 to the KUnit documentation in Documentation/dev-tools/kunit
130
131 If unsure, say N