diff --git a/recipes/core/drivers-initfs/recipe.toml b/recipes/core/drivers-initfs/recipe.toml
index e1e91f5bbcac09074e0256329ac45a7ceb391983..74a1f48256ac7758ba48e6f63b7e65d079e14d3e 100644
--- a/recipes/core/drivers-initfs/recipe.toml
+++ b/recipes/core/drivers-initfs/recipe.toml
@@ -5,42 +5,48 @@ git = "https://gitlab.redox-os.org/redox-os/drivers.git"
 template = "custom"
 script = """
 BINS=(
-    ahcid
     fbcond
     inputd
     nvmed
     pcid
     vesad
-    virtio-blkd
-    virtio-gpud
     lived
 )
 
-aarch64_redefine_bin()
+virt_bins()
+{
+    BINS+=(virtio-blkd virtio-gpud)
+}
+
+x86_common_bins()
+{
+    BINS+=(ahcid ided ps2d vesad)
+    virt_bins
+}
+
+aarch64_bins()
 {
-    BINS=(inputd lived)
     case "${BOARD}" in
-        raspi3bp)
-            BINS+=(bcm2835-sdhcid)
-        ;;
-        raspi3b)
+        raspi3b | raspi3bp)
             BINS+=(bcm2835-sdhcid)
         ;;
         *)
         #qemu-virt
+            virt_bins
         ;;
     esac
 }
 
 case "${TARGET}" in
     i686-unknown-redox)
-        BINS+=(ided ps2d)
+        x86_common_bins
         ;;
     x86_64-unknown-redox)
-        BINS+=(acpid ided ps2d)
+        x86_common_bins
+        BINS+=(acpid)
         ;;
     aarch64-unknown-redox)
-        aarch64_redefine_bin
+        aarch64_bins
         ;;
     *)
         ;;
diff --git a/recipes/core/drivers/recipe.toml b/recipes/core/drivers/recipe.toml
index b40d86662e05f70a7c48aa1568fea3824207af8f..3df8bc520a1ca2e0ef45af16ef69253c21aadef4 100644
--- a/recipes/core/drivers/recipe.toml
+++ b/recipes/core/drivers/recipe.toml
@@ -10,6 +10,7 @@ BINS=(
     e1000d
     ihdad
     ixgbed
+    pcid
     rtl8139d
     rtl8168d
     usbctl
@@ -24,7 +25,7 @@ BINS=(
 # depending on the target architecture
 case "${TARGET}" in
     i686-unknown-redox | x86_64-unknown-redox)
-        BINS+=(ac97d bgad pcid pcspkrd sb16d vboxd)
+        BINS+=(ac97d bgad pcspkrd sb16d vboxd)
         ;;
     *)
         ;;
diff --git a/recipes/core/initfs/aarch64-unknown-redox/init.rc b/recipes/core/initfs/aarch64-unknown-redox/init.rc
index f794e3ca6fb27010ac2cafdcfa57e58575ef4d03..3acd25801a14ee2632b289e334fab0c93f3bd34e 100644
--- a/recipes/core/initfs/aarch64-unknown-redox/init.rc
+++ b/recipes/core/initfs/aarch64-unknown-redox/init.rc
@@ -1,5 +1,6 @@
 export PATH /scheme/initfs/bin
 export TMPDIR /tmp
+export RUST_BACKTRACE 1
 nulld
 zerod
 randd
@@ -11,6 +12,7 @@ fbcond 1 2
 logd /scheme/debug /scheme/fbcon/1
 stdio /scheme/log
 ramfs logging
+pcid /scheme/initfs/etc/pcid/initfs.toml
 lived
 unset DISK_LIVE_ADDR DISK_LIVE_SIZE
 redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK