| 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. |