There is a problem with udev: when a volume is created, there is a delay before corresponding /dev/ubiX_Y device node is created by udev, so some tests fail because of this. The symptom is error messages like "cannot open /dev/ubi0_0". One possible solution of this problem is to pre-create UBI device and volume nodes. There is even a script which may be used for this in ubi-utils/scripts/. But this is not enough because udev will still remove and re-create the nodes and tests will still fail. So you need to stop removing device nodes using the following udev rule: KERNEL=="ubi*_*", ACTION=="remove", OPTIONS+="ignore_device" In our Ubuntu distribution we put that to new file: /etc/udev/rules.d/50-local.rules Another possibility is to call udevsettle utility in libubi after the volume has been created See src/libubi.c - the call is compiled in only if UDEV_SETTLE_HACK is defined. This is anyway an ugly hack, but works, although makes the tests slower. Suggestions are welcome. So, if you have udevsettel unility in your system, you do not have to do anyting, and the tests should work, because we compile libubi with UDEV_SETTLE_HACK. Otherwise, you should remove -D UDEV_SETTLE_HACK from the makefile and pre-create UBI device nodes.