summaryrefslogtreecommitdiff
path: root/ubi-utils/tests/README.udev
blob: 06e71d378951994438d3b17ec66de39da61d254b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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.