Skip to content

Commit 344f237

Browse files
committed
(squash) Move dracut-specific parts into dropins
1 parent bf3dcb4 commit 344f237

File tree

7 files changed

+39
-19
lines changed

7 files changed

+39
-19
lines changed

meson.build

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -237,14 +237,27 @@ foreach file : dracut_conf_files
237237
)
238238
endforeach
239239

240+
systemd_files = [
241+
'nvmefc-boot-connections.service',
242+
'nvmf-autoconnect.service',
243+
'nvmf-connect-nbft.service',
244+
'nvmf-connect.target',
245+
'nvmf-connect@.service',
246+
]
247+
240248
want_dracut_module = get_option('dracut-module')
241249
if want_dracut_module
242-
dracut_nbft_files = [
243-
'module-setup.sh',
250+
systemd_files += [
244251
'nbft-boot-pre.service',
245252
'nbft-boot-connect.service'
246253
]
247254

255+
dracut_nbft_files = [
256+
'module-setup.sh',
257+
'nbft-boot-pre-dracut.conf',
258+
'nbft-boot-connect-dracut.conf'
259+
]
260+
248261
foreach file : dracut_nbft_files
249262
configure_file(
250263
input: 'nvmf-autoconnect/dracut-95nbft/' + file + '.in',
@@ -278,14 +291,6 @@ if want_dracut_module
278291
endforeach
279292
endif
280293

281-
systemd_files = [
282-
'nvmefc-boot-connections.service',
283-
'nvmf-autoconnect.service',
284-
'nvmf-connect-nbft.service',
285-
'nvmf-connect.target',
286-
'nvmf-connect@.service',
287-
]
288-
289294
foreach file : systemd_files
290295
configure_file(
291296
input: 'nvmf-autoconnect/systemd/' + file + '.in',

nvmf-autoconnect/dracut-95nbft/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ While this module is currently built around dracut, the amount of dracut
99
involvement in this module is kept to a required minimum with the intention
1010
of supporting more initramfs frameworks (like `mkosi`) in the future.
1111

12+
This is achieved by splitting the framework-specific directives into systemd
13+
unit dropins while keeping the main unit files generic.
14+
1215
Related nvme-cli meson configure options:
1316
* `-Ddracut-module` (default=false) - enables the 95nbft dracut module
1417
* `-Ddracutmodulesdir` (default=`$prefix/lib/dracut/modules.d/`)

nvmf-autoconnect/dracut-95nbft/module-setup.sh.in

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,16 @@ install() {
4141
# TODO: /etc/nvme/hostnqn
4242

4343
inst_multiple "$systemdsystemunitdir"/modprobe@.service
44+
45+
inst_simple "$moddir/nbft-boot-pre-dracut.conf" \
46+
"$systemdsystemunitdir/nbft-boot-pre.service.d/nbft-boot-pre-dracut.conf"
47+
inst_simple "$moddir/nbft-boot-connect-dracut.conf" \
48+
"$systemdsystemunitdir/nbft-boot-connect.service.d/nbft-boot-connect-dracut.conf"
49+
4450
for i in \
4551
nbft-boot-pre.service \
4652
nbft-boot-connect.service; do
47-
inst_simple "${moddir}/$i" "${systemdsystemunitdir}/$i"
53+
inst_multiple "${systemdsystemunitdir}/$i"
4854
$SYSTEMCTL -q --root "$initdir" enable $i
4955
done
5056
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[Unit]
2+
Before=dracut-initqueue.service
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[Unit]
2+
Before=dracut-cmdline.service
3+
4+
[Service]
5+
# Tell dracut to start networking
6+
ExecStart=bash -c 'echo rd.neednet=1 > @SYSCONFDIR@/cmdline.d/95nbft-args.conf'

nvmf-autoconnect/dracut-95nbft/nbft-boot-connect.service.in renamed to nvmf-autoconnect/systemd/nbft-boot-connect.service.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
# This unit parses the ACPI NBFT table and performs actual NVMe/TCP connections
1+
# Establish NVMe/TCP connections as defined in the ACPI NBFT table
2+
23
[Unit]
34
# Prevent deadlock by avoiding systemd adding dependencies
45
# on unreachable targets.
@@ -11,7 +12,6 @@ After=modprobe@nvme_fabrics.service
1112
Wants=network-online.target
1213
After=network-online.target
1314
Before=remote-fs-pre.target
14-
Before=dracut-initqueue.service
1515

1616
[Service]
1717
RestrictAddressFamilies=AF_INET AF_INET6
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
# This unit checks for the ACPI NBFT table presence and tells
2-
# dracut to activate networking.
1+
# This unit checks for the ACPI NBFT table presence and sets up
2+
# defined network interfaces
3+
34
[Unit]
45
DefaultDependencies=no
56
# Specify 'rd.nvmf.nonbft' to disable NBFT boot
67
ConditionKernelCommandLine=!rd.nvmf.nonbft
78
ConditionPathExistsGlob=/sys/firmware/acpi/tables/NBFT*
8-
Before=dracut-cmdline.service
9+
Before=systemd-udevd.service
910

1011
[Service]
1112
Type=oneshot
12-
RemainAfterExit=yes
1313
ExecStartPre=-/usr/bin/mkdir -p /etc/systemd/network
1414
# generate udev link files
1515
ExecStart=/usr/sbin/nvme nbft gen-udev-link-files /etc/systemd/network/
16-
# tell dracut to start the network
17-
ExecStart=bash -c 'echo rd.neednet=1 > /etc/cmdline.d/95nbft-args.conf'
1816

1917
[Install]
2018
WantedBy=sysinit.target

0 commit comments

Comments
 (0)