Kernel Compilation Configuration
Several kernel compilation configuration options control zoned block device support features.
Zoned Block Devices Core Support
To allow exposing supported zoned block devices as block device files, the block
layer configuration option CONFIG_BLK_DEV_ZONED
must be enabled. This option
is part of the Enable the block layer top menu of make menuconfig
.

Block layer zoned block device support option with
make menuconfig
Without this configuration option set, users will not have access to the ZBD interface and support for zoned block devices will be disabled in all kernel subsystems (I/O schedulers, device mapper and file systems) that include support for these devices.
Device Drivers Configuration
null_blk Logical Device
Support for the zoned block device emulation with
the nullblk device driver zoned mode is automatically enabled with the
CONFIG_BLK_DEV_ZONED
configuration option.
ZBC and ZAC Hard-Disks Support
The SCSI subsystem support for ZBC and ZAC SMR disks is automatically enabled
with the CONFIG_BLK_DEV_ZONED
configuration option.
NVMe Zoned Namespace Solid State Disks Support
NVM Express Zoned Namespace Command Set depends on CONFIG_BLK_DEV_ZONED
and
CONFIG_NVME_CORE
and is automatically built if both configuration options are
enabled.
The driver requires the device to support the Zone Append command to successfully bind to a zoned namespace, and does not support Zone Excursions. See Zoned Namespace (ZNS) SSDs for more details about these features.
Write Ordering Control
Write ordering control is achieved through the deadline (legacy single queue
block I/O path) and mq-deadline (multi-queue block I/O path) block I/O
scheduler (see Write Ordering Control). deadline and mq-deadline
zoned block device support is automatically enabled if the
CONFIG_BLK_DEV_ZONED
configuration option is set.
Enabling this scheduler is mandatory for zoned block devices. This is
controlled with the CONFIG_MQ_IOSCHED_DEADLINE
option for mq-deadline and
with the CONFIG_IOSCHED_DEADLINE
option for deadline. Either option be
selected from the IO Schedulers top menu.

I/O scheduler configuration with
make menuconfig
With the introduction of kernel version 5.0 and the removal of the block layer
legacy single queue I/O path, only the mq-deadline scheduler remains. Since
kernel version 5.2, the selection of the CONFIG_MQ_IOSCHED_DEADLINE
option is
automatic when the CONFIG_BLK_DEV_ZONED
configuration option is set.
Device Mapper
Zoned block device support for the device mapper subsystem is automatically
enabled when the CONFIG_BLK_DEV_ZONED
option is set. This will enables support
for the dm-linear and dm-flakey targets. However, the dm-zoned
device mapper target must be enabled to be usable.
Enabling the dm-zoned target can be done by selecting the CONFIG_DM_ZONED
option from the menu Device Drivers → Multiple devices driver support (RAID
and LVM) → Device mapper support → Drive-managed zoned block device target
support.

dm-zoned device mapper target configuration with
make menuconfig
zonefs File System
Enabling compilation of the zonefs file system is done by selecting the
CONFIG_ZONEFS_FS
option from the menu File systems -> zonefs filesystem
support. This option is available only and only if the CONFIG_BLK_DEV_ZONED
option is set to enable zoned block device support.

zonefs filesystem configuration with
make menuconfig