| # SPDX-License-Identifier: GPL-2.0 | |
| # | |
| # Block device driver configuration | |
| # | |
| menuconfig BLK_DEV | |
| bool "Block devices" | |
| depends on BLOCK | |
| default y | |
| help | |
| Say Y here to get to see options for various different block device | |
| drivers. This option alone does not add any kernel code. | |
| If you say N, all options in this submenu will be skipped and disabled; | |
| only do this if you know what you are doing. | |
| if BLK_DEV | |
| source "drivers/block/null_blk/Kconfig" | |
| source "drivers/block/rnull/Kconfig" | |
| config BLK_DEV_FD | |
| tristate "Normal floppy disk support" | |
| depends on ARCH_MAY_HAVE_PC_FDC | |
| help | |
| If you want to use the floppy disk drive(s) of your PC under Linux, | |
| say Y. Information about this driver, especially important for IBM | |
| Thinkpad users, is contained in | |
| <file:Documentation/admin-guide/blockdev/floppy.rst>. | |
| That file also contains the location of the Floppy driver FAQ as | |
| well as location of the fdutils package used to configure additional | |
| parameters of the driver at run time. | |
| To compile this driver as a module, choose M here: the | |
| module will be called floppy. | |
| config BLK_DEV_FD_RAWCMD | |
| bool "Support for raw floppy disk commands (DEPRECATED)" | |
| depends on BLK_DEV_FD | |
| help | |
| If you want to use actual physical floppies and expect to do | |
| special low-level hardware accesses to them (access and use | |
| non-standard formats, for example), then enable this. | |
| Note that the code enabled by this option is rarely used and | |
| might be unstable or insecure, and distros should not enable it. | |
| Note: FDRAWCMD is deprecated and will be removed from the kernel | |
| in the near future. | |
| If unsure, say N. | |
| config AMIGA_FLOPPY | |
| tristate "Amiga floppy support" | |
| depends on AMIGA | |
| config ATARI_FLOPPY | |
| tristate "Atari floppy support" | |
| depends on ATARI | |
| config MAC_FLOPPY | |
| tristate "Support for PowerMac floppy" | |
| depends on PPC_PMAC && !PPC_PMAC64 | |
| help | |
| If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple) | |
| floppy controller, say Y here. Most commonly found in PowerMacs. | |
| config BLK_DEV_SWIM | |
| tristate "Support for SWIM Macintosh floppy" | |
| depends on M68K && MAC && !HIGHMEM | |
| help | |
| You should select this option if you want floppy support | |
| and you don't have a II, IIfx, Q900, Q950 or AV series. | |
| config AMIGA_Z2RAM | |
| tristate "Amiga Zorro II ramdisk support" | |
| depends on ZORRO | |
| help | |
| This enables support for using Chip RAM and Zorro II RAM as a | |
| ramdisk or as a swap partition. Say Y if you want to include this | |
| driver in the kernel. | |
| To compile this driver as a module, choose M here: the | |
| module will be called z2ram. | |
| config N64CART | |
| bool "N64 cart support" | |
| depends on MACH_NINTENDO64 | |
| help | |
| Support for the N64 cart. | |
| config CDROM | |
| tristate | |
| config GDROM | |
| tristate "SEGA Dreamcast GD-ROM drive" | |
| depends on SH_DREAMCAST | |
| select CDROM | |
| help | |
| A standard SEGA Dreamcast comes with a modified CD ROM drive called a | |
| "GD-ROM" by SEGA to signify it is capable of reading special disks | |
| with up to 1 GB of data. This drive will also read standard CD ROM | |
| disks. Select this option to access any disks in your GD ROM drive. | |
| Most users will want to say "Y" here. | |
| You can also build this as a module which will be called gdrom. | |
| source "drivers/block/mtip32xx/Kconfig" | |
| source "drivers/block/zram/Kconfig" | |
| config BLK_DEV_UBD | |
| bool "Virtual block device" | |
| depends on UML | |
| help | |
| The User-Mode Linux port includes a driver called UBD which will let | |
| you access arbitrary files on the host computer as block devices. | |
| Unless you know that you do not need such virtual block devices say | |
| Y here. | |
| config BLK_DEV_UBD_SYNC | |
| bool "Always do synchronous disk IO for UBD" | |
| depends on BLK_DEV_UBD | |
| help | |
| Writes to the virtual block device are not immediately written to the | |
| host's disk; this may cause problems if, for example, the User-Mode | |
| Linux 'Virtual Machine' uses a journalling filesystem and the host | |
| computer crashes. | |
| Synchronous operation (i.e. always writing data to the host's disk | |
| immediately) is configurable on a per-UBD basis by using a special | |
| kernel command line option. Alternatively, you can say Y here to | |
| turn on synchronous operation by default for all block devices. | |
| If you're running a journalling file system (like xfs, for | |
| example) in your virtual machine, you will want to say Y here. If | |
| you care for the safety of the data in your virtual machine, Y is a | |
| wise choice too. In all other cases (for example, if you're just | |
| playing around with User-Mode Linux) you can choose N. | |
| config BLK_DEV_COW_COMMON | |
| bool | |
| default BLK_DEV_UBD | |
| config BLK_DEV_LOOP | |
| tristate "Loopback device support" | |
| help | |
| Saying Y here will allow you to use a regular file as a block | |
| device; you can then create a file system on that block device and | |
| mount it just as you would mount other block devices such as hard | |
| drive partitions, CD-ROM drives or floppy drives. The loop devices | |
| are block special device files with major number 7 and typically | |
| called /dev/loop0, /dev/loop1 etc. | |
| This is useful if you want to check an ISO 9660 file system before | |
| burning the CD, or if you want to use floppy images without first | |
| writing them to floppy. Furthermore, some Linux distributions avoid | |
| the need for a dedicated Linux partition by keeping their complete | |
| root file system inside a DOS FAT file using this loop device | |
| driver. | |
| To use the loop device, you need the losetup utility, found in the | |
| util-linux package, see | |
| <https://www.kernel.org/pub/linux/utils/util-linux/>. | |
| The loop device driver can also be used to "hide" a file system in | |
| a disk partition, floppy, or regular file, either using encryption | |
| (scrambling the data) or steganography (hiding the data in the low | |
| bits of, say, a sound file). This is also safe if the file resides | |
| on a remote file server. | |
| Note that this loop device has nothing to do with the loopback | |
| device used for network connections from the machine to itself. | |
| To compile this driver as a module, choose M here: the | |
| module will be called loop. | |
| Most users will answer N here. | |
| config BLK_DEV_LOOP_MIN_COUNT | |
| int "Number of loop devices to pre-create at init time" | |
| depends on BLK_DEV_LOOP | |
| default 8 | |
| help | |
| Static number of loop devices to be unconditionally pre-created | |
| at init time. | |
| This default value can be overwritten on the kernel command | |
| line or with module-parameter loop.max_loop. | |
| The historic default is 8. If a late 2011 version of losetup(8) | |
| is used, it can be set to 0, since needed loop devices can be | |
| dynamically allocated with the /dev/loop-control interface. | |
| source "drivers/block/drbd/Kconfig" | |
| config BLK_DEV_NBD | |
| tristate "Network block device support" | |
| depends on NET | |
| help | |
| Saying Y here will allow your computer to be a client for network | |
| block devices, i.e. it will be able to use block devices exported by | |
| servers (mount file systems on them etc.). Communication between | |
| client and server works over TCP/IP networking, but to the client | |
| program this is hidden: it looks like a regular local file access to | |
| a block device special file such as /dev/nd0. | |
| Network block devices also allows you to run a block-device in | |
| userland (making server and client physically the same computer, | |
| communicating using the loopback network device). | |
| Read <file:Documentation/admin-guide/blockdev/nbd.rst> for more information, | |
| especially about where to find the server code, which runs in user | |
| space and does not need special kernel support. | |
| Note that this has nothing to do with the network file systems NFS | |
| or Coda; you can say N here even if you intend to use NFS or Coda. | |
| To compile this driver as a module, choose M here: the | |
| module will be called nbd. | |
| If unsure, say N. | |
| config BLK_DEV_RAM | |
| tristate "RAM block device support" | |
| help | |
| Saying Y here will allow you to use a portion of your RAM memory as | |
| a block device, so that you can make file systems on it, read and | |
| write to it and do all the other things that you can do with normal | |
| block devices (such as hard drives). It is usually used to load and | |
| store a copy of a minimal root file system off of a floppy into RAM | |
| during the initial install of Linux. | |
| Note that the kernel command line option "ramdisk=XX" is now obsolete. | |
| For details, read <file:Documentation/admin-guide/blockdev/ramdisk.rst>. | |
| To compile this driver as a module, choose M here: the | |
| module will be called brd. An alias "rd" has been defined | |
| for historical reasons. | |
| Most normal users won't need the RAM disk functionality, and can | |
| thus say N here. | |
| config BLK_DEV_RAM_COUNT | |
| int "Default number of RAM disks" | |
| default "16" | |
| depends on BLK_DEV_RAM | |
| help | |
| The default value is 16 RAM disks. Change this if you know what you | |
| are doing. If you boot from a filesystem that needs to be extracted | |
| in memory, you will need at least one RAM disk (e.g. root on cramfs). | |
| config BLK_DEV_RAM_SIZE | |
| int "Default RAM disk size (kbytes)" | |
| depends on BLK_DEV_RAM | |
| default "4096" | |
| help | |
| The default value is 4096 kilobytes. Only change this if you know | |
| what you are doing. | |
| config ATA_OVER_ETH | |
| tristate "ATA over Ethernet support" | |
| depends on NET | |
| help | |
| This driver provides Support for ATA over Ethernet block | |
| devices like the Coraid EtherDrive (R) Storage Blade. | |
| config SUNVDC | |
| tristate "Sun Virtual Disk Client support" | |
| depends on SUN_LDOMS | |
| help | |
| Support for virtual disk devices as a client under Sun | |
| Logical Domains. | |
| source "drivers/s390/block/Kconfig" | |
| config XEN_BLKDEV_FRONTEND | |
| tristate "Xen virtual block device support" | |
| depends on XEN | |
| default y | |
| select XEN_XENBUS_FRONTEND | |
| help | |
| This driver implements the front-end of the Xen virtual | |
| block device driver. It communicates with a back-end driver | |
| in another domain which drives the actual block device. | |
| config XEN_BLKDEV_BACKEND | |
| tristate "Xen block-device backend driver" | |
| depends on XEN_BACKEND | |
| help | |
| The block-device backend driver allows the kernel to export its | |
| block devices to other guests via a high-performance shared-memory | |
| interface. | |
| The corresponding Linux frontend driver is enabled by the | |
| CONFIG_XEN_BLKDEV_FRONTEND configuration option. | |
| The backend driver attaches itself to a any block device specified | |
| in the XenBus configuration. There are no limits to what the block | |
| device as long as it has a major and minor. | |
| If you are compiling a kernel to run in a Xen block backend driver | |
| domain (often this is domain 0) you should say Y here. To | |
| compile this driver as a module, chose M here: the module | |
| will be called xen-blkback. | |
| config VIRTIO_BLK | |
| tristate "Virtio block driver" | |
| depends on VIRTIO | |
| select SG_POOL | |
| help | |
| This is the virtual block driver for virtio. It can be used with | |
| QEMU based VMMs (like KVM or Xen). Say Y or M. | |
| config BLK_DEV_RBD | |
| tristate "Rados block device (RBD)" | |
| depends on INET && BLOCK | |
| select CEPH_LIB | |
| help | |
| Say Y here if you want include the Rados block device, which stripes | |
| a block device over objects stored in the Ceph distributed object | |
| store. | |
| More information at http://ceph.newdream.net/. | |
| If unsure, say N. | |
| config BLK_DEV_UBLK | |
| tristate "Userspace block driver (Experimental)" | |
| select IO_URING | |
| help | |
| io_uring based userspace block driver. Together with ublk server, ublk | |
| has been working well, but interface with userspace or command data | |
| definition isn't finalized yet, and might change according to future | |
| requirement, so mark is as experimental now. | |
| config BLKDEV_UBLK_LEGACY_OPCODES | |
| bool "Support legacy command opcode" | |
| depends on BLK_DEV_UBLK | |
| default y | |
| help | |
| ublk driver started to take plain command encoding, which turns out | |
| one bad way. The traditional ioctl command opcode encodes more | |
| info and basically defines each code uniquely, so opcode conflict | |
| is avoided, and driver can handle wrong command easily, meantime it | |
| may help security subsystem to audit io_uring command. | |
| Say Y if your application still uses legacy command opcode. | |
| Say N if you don't want to support legacy command opcode. It is | |
| suggested to enable N if your application(ublk server) switches to | |
| ioctl command encoding. | |
| source "drivers/block/rnbd/Kconfig" | |
| config BLK_DEV_ZONED_LOOP | |
| tristate "Zoned loopback device support" | |
| depends on BLK_DEV_ZONED | |
| help | |
| Saying Y here will allow you to use create a zoned block device using | |
| regular files for zones (one file per zones). This is useful to test | |
| file systems, device mapper and applications that support zoned block | |
| devices. To create a zoned loop device, no user utility is needed, a | |
| zoned loop device can be created (or re-started) using a command | |
| like: | |
| echo "add id=0,zone_size_mb=256,capacity_mb=16384,conv_zones=11" > \ | |
| /dev/zloop-control | |
| See Documentation/admin-guide/blockdev/zoned_loop.rst for usage | |
| details. | |
| If unsure, say N. | |
| endif # BLK_DEV |