Linux Target#
The Linux target uses the in-tree nvmet driver configured through
configfs. xnvme-driver reset rebinds the device to the kernel NVMe
driver so its local /dev/nvmeXn1 is available; nvmet and nvmet_tcp
are loaded; the subsystem, namespace, and port are created as configfs
directories. The cijoe/scripts/nvme_target_start.py,
nvme_target_probe.py, and nvme_target_stop.py scripts drive this with
--provider linux. They are wired into the dedicated
workflows/transports-tcp-linux.yaml workflow whose three steps
(nvme_target_start, nvme_target_probe, nvme_target_stop) can be
selected individually.
Dev loop#
Run the demo workflow end-to-end:
cd cijoe
cijoe --config configs/debian-trixie-iommu_enabled.toml \
--output /tmp/linux-up \
workflows/transports-tcp-linux.yaml
This brings the target up, probes it from the initiator side, and tears it down. The captured commands and output are what populates the embedded report below. See the parent page for shared configuration and initiator usage.
When you want to hold the target up between iterations, the workflow
can be driven a step at a time
(cijoe ... transports-tcp-linux.yaml nvme_target_start and ... nvme_target_stop), and the same logic is also reachable by invoking
cijoe/scripts/nvme_target_start.py directly. Those are cijoe
conveniences over the same underlying script.