148 lines
4.4 KiB
Diff
148 lines
4.4 KiB
Diff
diff --git a/drivers/initfs-storage.toml b/drivers/initfs-storage.toml
|
|
new file mode 100644
|
|
index 00000000..4a9a603a
|
|
--- /dev/null
|
|
+++ b/drivers/initfs-storage.toml
|
|
@@ -0,0 +1,51 @@
|
|
+## Initfs driver configs for driver-manager
|
|
+## Read by driver-manager --initfs from /scheme/initfs/lib/drivers.d/
|
|
+##
|
|
+## Storage drivers essential for early boot (mounting rootfs).
|
|
+## GPU/display drivers are NOT probed in initfs.
|
|
+
|
|
+[[driver]]
|
|
+name = "ahcid"
|
|
+description = "AHCI SATA storage driver"
|
|
+priority = 100
|
|
+command = ["/scheme/initfs/lib/drivers/ahcid"]
|
|
+
|
|
+[[driver.match]]
|
|
+bus = "pci"
|
|
+class = 1
|
|
+subclass = 6
|
|
+
|
|
+[[driver]]
|
|
+name = "ided"
|
|
+description = "PATA IDE storage driver"
|
|
+priority = 100
|
|
+command = ["/scheme/initfs/lib/drivers/ided"]
|
|
+
|
|
+[[driver.match]]
|
|
+bus = "pci"
|
|
+class = 1
|
|
+subclass = 1
|
|
+
|
|
+[[driver]]
|
|
+name = "nvmed"
|
|
+description = "NVMe storage driver"
|
|
+priority = 100
|
|
+command = ["/scheme/initfs/lib/drivers/nvmed"]
|
|
+
|
|
+[[driver.match]]
|
|
+bus = "pci"
|
|
+class = 1
|
|
+subclass = 8
|
|
+
|
|
+[[driver]]
|
|
+name = "virtio-blkd"
|
|
+description = "VirtIO block device driver"
|
|
+priority = 100
|
|
+command = ["/scheme/initfs/lib/drivers/virtio-blkd"]
|
|
+
|
|
+[[driver.match]]
|
|
+bus = "pci"
|
|
+vendor = 0x1AF4
|
|
+device = 0x1001
|
|
+class = 1
|
|
+subclass = 0
|
|
diff --git a/init.d/00_base.target b/init.d/00_base.target
|
|
index 03c25798..9411cc88 100644
|
|
--- a/init.d/00_base.target
|
|
+++ b/init.d/00_base.target
|
|
@@ -7 +7 @@ requires_weak = [
|
|
- "00_pcid-spawner.service",
|
|
+ "00_driver-manager.service",
|
|
diff --git a/init.d/00_pcid-spawner.service b/init.d/00_pcid-spawner.service
|
|
deleted file mode 100644
|
|
index 8ba6fc6c..00000000
|
|
--- a/init.d/00_pcid-spawner.service
|
|
+++ /dev/null
|
|
@@ -1,6 +0,0 @@
|
|
-[unit]
|
|
-description = "PCI driver spawner"
|
|
-
|
|
-[service]
|
|
-cmd = "pcid-spawner"
|
|
-type = "oneshot"
|
|
diff --git a/init.d/10_smolnetd.service b/init.d/10_smolnetd.service
|
|
index 1ee54ad0..29563e65 100644
|
|
--- a/init.d/10_smolnetd.service
|
|
+++ b/init.d/10_smolnetd.service
|
|
@@ -6 +6 @@ requires_weak = [
|
|
- "00_pcid-spawner.service",
|
|
+ "00_driver-manager.service",
|
|
diff --git a/init.initfs.d/00_driver-manager-initfs.service b/init.initfs.d/00_driver-manager-initfs.service
|
|
new file mode 100644
|
|
index 00000000..39613261
|
|
--- /dev/null
|
|
+++ b/init.initfs.d/00_driver-manager-initfs.service
|
|
@@ -0,0 +1,8 @@
|
|
+[unit]
|
|
+description = "Red Bear driver manager (initfs)"
|
|
+requires_weak = ["10_inputd.service", "10_lived.service", "20_graphics.target", "40_hwd.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "driver-manager"
|
|
+args = ["--initfs"]
|
|
+type = "oneshot_async"
|
|
diff --git a/init.initfs.d/30_redox-drm.service b/init.initfs.d/30_redox-drm.service
|
|
index ba380bf2..3e051003 100644
|
|
--- a/init.initfs.d/30_redox-drm.service
|
|
+++ b/init.initfs.d/30_redox-drm.service
|
|
@@ -3 +3 @@ description = "DRM/KMS Display Driver"
|
|
-requires_weak = ["20_graphics.target", "40_hwd.service", "40_pcid-spawner-initfs.service"]
|
|
+requires_weak = ["20_graphics.target", "40_hwd.service", "00_driver-manager-initfs.service"]
|
|
diff --git a/init.initfs.d/40_drivers.target b/init.initfs.d/40_drivers.target
|
|
index 061c2bed..2a91d2d4 100644
|
|
--- a/init.initfs.d/40_drivers.target
|
|
+++ b/init.initfs.d/40_drivers.target
|
|
@@ -6 +5,0 @@ requires_weak = [
|
|
- "40_pcid.service",
|
|
@@ -10 +9 @@ requires_weak = [
|
|
- "40_pcid-spawner-initfs.service",
|
|
+ "00_driver-manager-initfs.service",
|
|
diff --git a/init.initfs.d/40_hwd.service b/init.initfs.d/40_hwd.service
|
|
index ff0e76dc..d4625542 100644
|
|
--- a/init.initfs.d/40_hwd.service
|
|
+++ b/init.initfs.d/40_hwd.service
|
|
@@ -3 +3 @@ description = "Hardware manager"
|
|
-requires_weak = ["10_inputd.service", "10_lived.service", "20_graphics.target", "40_pcid.service", "41_acpid.service"]
|
|
+requires_weak = ["10_inputd.service", "10_lived.service", "20_graphics.target", "00_driver-manager-initfs.service", "41_acpid.service"]
|
|
diff --git a/init.initfs.d/40_pcid-spawner-initfs.service b/init.initfs.d/40_pcid-spawner-initfs.service
|
|
deleted file mode 100644
|
|
index 2d36c9d5..00000000
|
|
--- a/init.initfs.d/40_pcid-spawner-initfs.service
|
|
+++ /dev/null
|
|
@@ -1,8 +0,0 @@
|
|
-[unit]
|
|
-description = "PCI driver spawner"
|
|
-requires_weak = ["10_inputd.service", "20_graphics.target", "40_pcid.service"]
|
|
-
|
|
-[service]
|
|
-cmd = "pcid-spawner"
|
|
-args = ["--initfs"]
|
|
-type = "oneshot"
|
|
diff --git a/init.initfs.d/40_pcid.service b/init.initfs.d/40_pcid.service
|
|
deleted file mode 100644
|
|
index 6c3a83d8..00000000
|
|
--- a/init.initfs.d/40_pcid.service
|
|
+++ /dev/null
|
|
@@ -1,7 +0,0 @@
|
|
-[unit]
|
|
-description = "PCI daemon"
|
|
-requires_weak = ["41_acpid.service"]
|
|
-
|
|
-[service]
|
|
-cmd = "pcid"
|
|
-type = "notify"
|