Files
RedBear-OS/local/patches/base/P26-driver-manager-initfs-conversion.patch
T

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"