Skip to content

Commit 406b04e

Browse files
committed
add fakeudev
Signed-off-by: Zen <[email protected]>
1 parent ca9ed34 commit 406b04e

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/ugrd/fs/fakeudev.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
"""
2+
UDEV is amazing and well desinged software.
3+
4+
In order to make systemd not time out on boot, we need to fake it.
5+
To do this, we simply need to read /sys/block/dm-*/uevent,
6+
We can then write 'E:DM_UDEV_PRIMARY_SOURCE_FLAG=1\n' to each:
7+
/run/udev/data/b<MAJOR>:<MINOR>.
8+
This will make systemd think that udev is working and not time out.
9+
"""
10+
11+
12+
def fake_dm_udev(self):
13+
"""
14+
returns a bash script to fake udev for dm devices.
15+
calls _make_fake_dm_udev_db for each dm device.
16+
"""
17+
return ['for dm in /sys/block/dm-*; do',
18+
' source "${dm}/uevent"',
19+
' einfo "Faking udev for ${DEVNAME}"',
20+
' udev_db_file="/run/udev/data/b${MAJOR}:${MINOR}"',
21+
" echo -e 'E:DM_UDEV_PRIMARY_SOURCE_FLAG=1\n' > ${udev_db_file}",
22+
'done']

src/ugrd/fs/fakeudev.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[imports.init_mount_late]
2+
'ugrd.fs.fakeudev' = ['fake_dm_udev']

0 commit comments

Comments
 (0)