Index: uspace/cfg/sysman/ahci.svc
===================================================================
--- uspace/cfg/sysman/ahci.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/ahci.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/ahci/ahci
+;Broker = devman.svc
Index: uspace/cfg/sysman/amba.svc
===================================================================
--- uspace/cfg/sysman/amba.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/amba.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/amba/amba
+;Broker = devman.svc
Index: uspace/cfg/sysman/amdm37x.svc
===================================================================
--- uspace/cfg/sysman/amdm37x.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/amdm37x.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/amdm37x/amdm37x
+;Broker = devman.svc
Index: uspace/cfg/sysman/amdm37x_dispc.svc
===================================================================
--- uspace/cfg/sysman/amdm37x_dispc.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/amdm37x_dispc.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/amdm37x_dispc/amdm37x_dispc
+;Broker = devman.svc
Index: uspace/cfg/sysman/ata_bd.svc
===================================================================
--- uspace/cfg/sysman/ata_bd.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/ata_bd.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/ata_bd/ata_bd
+;Broker = devman.svc
Index: uspace/cfg/sysman/cmos-rtc.svc
===================================================================
--- uspace/cfg/sysman/cmos-rtc.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/cmos-rtc.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/cmos-rtc/cmos-rtc
+;Broker = devman.svc
Index: uspace/cfg/sysman/ddisk.svc
===================================================================
--- uspace/cfg/sysman/ddisk.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/ddisk.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/ddisk/ddisk
+;Broker = devman.svc
Index: uspace/cfg/sysman/e1k.svc
===================================================================
--- uspace/cfg/sysman/e1k.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/e1k.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/e1k/e1k
+;Broker = devman.svc
Index: uspace/cfg/sysman/ehci.svc
===================================================================
--- uspace/cfg/sysman/ehci.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/ehci.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/ehci/ehci
+;Broker = devman.svc
Index: uspace/cfg/sysman/grlib_uart.svc
===================================================================
--- uspace/cfg/sysman/grlib_uart.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/grlib_uart.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/grlib_uart/grlib_uart
+;Broker = devman.svc
Index: uspace/cfg/sysman/hdaudio.svc
===================================================================
--- uspace/cfg/sysman/hdaudio.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/hdaudio.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/hdaudio/hdaudio
+;Broker = devman.svc
Index: uspace/cfg/sysman/i8042.svc
===================================================================
--- uspace/cfg/sysman/i8042.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/i8042.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/i8042/i8042
+;Broker = devman.svc
Index: uspace/cfg/sysman/icp.svc
===================================================================
--- uspace/cfg/sysman/icp.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/icp.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/icp/icp
+;Broker = devman.svc
Index: uspace/cfg/sysman/isa.svc
===================================================================
--- uspace/cfg/sysman/isa.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/isa.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/isa/isa
+;Broker = devman.svc
Index: uspace/cfg/sysman/kfb.svc
===================================================================
--- uspace/cfg/sysman/kfb.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/kfb.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/kfb/kfb
+;Broker = devman.svc
Index: uspace/cfg/sysman/leon3.svc
===================================================================
--- uspace/cfg/sysman/leon3.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/leon3.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/leon3/leon3
+;Broker = devman.svc
Index: uspace/cfg/sysman/mac.svc
===================================================================
--- uspace/cfg/sysman/mac.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/mac.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/mac/mac
+;Broker = devman.svc
Index: uspace/cfg/sysman/malta.svc
===================================================================
--- uspace/cfg/sysman/malta.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/malta.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/malta/malta
+;Broker = devman.svc
Index: uspace/cfg/sysman/msim.svc
===================================================================
--- uspace/cfg/sysman/msim.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/msim.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/msim/msim
+;Broker = devman.svc
Index: uspace/cfg/sysman/ne2k.svc
===================================================================
--- uspace/cfg/sysman/ne2k.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/ne2k.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/ne2k/ne2k
+;Broker = devman.svc
Index: uspace/cfg/sysman/ns8250.svc
===================================================================
--- uspace/cfg/sysman/ns8250.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/ns8250.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/ns8250/ns8250
+;Broker = devman.svc
Index: uspace/cfg/sysman/ohci.svc
===================================================================
--- uspace/cfg/sysman/ohci.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/ohci.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/ohci/ohci
+;Broker = devman.svc
Index: uspace/cfg/sysman/pc.svc
===================================================================
--- uspace/cfg/sysman/pc.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/pc.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/pc/pc
+;Broker = devman.svc
Index: uspace/cfg/sysman/pciintel.svc
===================================================================
--- uspace/cfg/sysman/pciintel.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/pciintel.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/pciintel/pciintel
+;Broker = devman.svc
Index: uspace/cfg/sysman/pl050.svc
===================================================================
--- uspace/cfg/sysman/pl050.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/pl050.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/pl050/pl050
+;Broker = devman.svc
Index: uspace/cfg/sysman/ps2mouse.svc
===================================================================
--- uspace/cfg/sysman/ps2mouse.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/ps2mouse.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/ps2mouse/ps2mouse
+;Broker = devman.svc
Index: uspace/cfg/sysman/root.svc
===================================================================
--- uspace/cfg/sysman/root.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/root.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/root/root
+;Broker = devman.svc
Index: uspace/cfg/sysman/rtl8139.svc
===================================================================
--- uspace/cfg/sysman/rtl8139.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/rtl8139.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/rtl8139/rtl8139
+;Broker = devman.svc
Index: uspace/cfg/sysman/rtl8169.svc
===================================================================
--- uspace/cfg/sysman/rtl8169.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/rtl8169.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/rtl8169/rtl8169
+;Broker = devman.svc
Index: uspace/cfg/sysman/sb16.svc
===================================================================
--- uspace/cfg/sysman/sb16.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/sb16.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/sb16/sb16
+;Broker = devman.svc
Index: uspace/cfg/sysman/test1.svc
===================================================================
--- uspace/cfg/sysman/test1.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/test1.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/test1/test1
+;Broker = devman.svc
Index: uspace/cfg/sysman/test2.svc
===================================================================
--- uspace/cfg/sysman/test2.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/test2.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/test2/test2
+;Broker = devman.svc
Index: uspace/cfg/sysman/test3.svc
===================================================================
--- uspace/cfg/sysman/test3.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/test3.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/test3/test3
+;Broker = devman.svc
Index: uspace/cfg/sysman/uhci.svc
===================================================================
--- uspace/cfg/sysman/uhci.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/uhci.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/uhci/uhci
+;Broker = devman.svc
Index: uspace/cfg/sysman/uhcirh.svc
===================================================================
--- uspace/cfg/sysman/uhcirh.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/uhcirh.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/uhcirh/uhcirh
+;Broker = devman.svc
Index: uspace/cfg/sysman/usbflbk.svc
===================================================================
--- uspace/cfg/sysman/usbflbk.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/usbflbk.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/usbflbk/usbflbk
+;Broker = devman.svc
Index: uspace/cfg/sysman/usbhid.svc
===================================================================
--- uspace/cfg/sysman/usbhid.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/usbhid.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/usbhid/usbhid
+;Broker = devman.svc
Index: uspace/cfg/sysman/usbhub.svc
===================================================================
--- uspace/cfg/sysman/usbhub.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/usbhub.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/usbhub/usbhub
+;Broker = devman.svc
Index: uspace/cfg/sysman/usbmast.svc
===================================================================
--- uspace/cfg/sysman/usbmast.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/usbmast.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/usbmast/usbmast
+;Broker = devman.svc
Index: uspace/cfg/sysman/usbmid.svc
===================================================================
--- uspace/cfg/sysman/usbmid.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/usbmid.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/usbmid/usbmid
+;Broker = devman.svc
Index: uspace/cfg/sysman/vhc.svc
===================================================================
--- uspace/cfg/sysman/vhc.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/vhc.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/vhc/vhc
+;Broker = devman.svc
Index: uspace/cfg/sysman/virt.svc
===================================================================
--- uspace/cfg/sysman/virt.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/virt.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/virt/virt
+;Broker = devman.svc
Index: uspace/cfg/sysman/xtkbd.svc
===================================================================
--- uspace/cfg/sysman/xtkbd.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
+++ uspace/cfg/sysman/xtkbd.svc	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -0,0 +1,3 @@
+[Service]
+ExecStart = /drv/xtkbd/xtkbd
+;Broker = devman.svc
Index: uspace/srv/devman/Makefile
===================================================================
--- uspace/srv/devman/Makefile	(revision 4224ef7f31396da8252a926395ebd8523c9f98a3)
+++ uspace/srv/devman/Makefile	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -29,4 +29,6 @@
 
 USPACE_PREFIX = ../..
+LIBS = $(LIBSYSMAN_PREFIX)/libsysman.a
+EXTRA_CFLAGS += -I$(LIBSYSMAN_PREFIX)/include
 BINARY = devman
 STATIC_NEEDED = y
Index: uspace/srv/devman/devman.h
===================================================================
--- uspace/srv/devman/devman.h	(revision 4224ef7f31396da8252a926395ebd8523c9f98a3)
+++ uspace/srv/devman/devman.h	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -78,6 +78,4 @@
 	/** Name of the device driver. */
 	char *name;
-	/** Path to the driver's binary. */
-	char *binary_path;
 	/** List of device ids for device-to-driver matching. */
 	match_id_list_t match_ids;
Index: uspace/srv/devman/driver.c
===================================================================
--- uspace/srv/devman/driver.c	(revision 4224ef7f31396da8252a926395ebd8523c9f98a3)
+++ uspace/srv/devman/driver.c	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -34,9 +34,12 @@
 #include <dirent.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <io/log.h>
 #include <vfs/vfs.h>
 #include <loc.h>
+#include <stdio.h>
 #include <str_error.h>
-#include <stdio.h>
+#include <sys/stat.h>
+#include <sysman/ctl.h>
 #include <task.h>
 
@@ -139,22 +142,8 @@
 	str_cpy(drv->name, name_size, name);
 
-	/* Initialize path with driver's binary. */
-	drv->binary_path = get_abs_path(base_path, name, "");
-	if (drv->binary_path == NULL)
-		goto cleanup;
-
-	/* Check whether the driver's binary exists. */
-	vfs_stat_t s;
-	if (vfs_stat_path(drv->binary_path, &s) != EOK) {
-		log_msg(LOG_DEFAULT, LVL_ERROR, "Driver not found at path `%s'.",
-		    drv->binary_path);
-		goto cleanup;
-	}
-
 	suc = true;
 
 cleanup:
 	if (!suc) {
-		free(drv->binary_path);
 		free(drv->name);
 		/* Set the driver structure to the default state. */
@@ -271,5 +260,5 @@
  *
  * @param tree		Device tree
- * @param node		The device's node in the device tree.
+ * @param dev		The device's node in the device tree.
  * @param drv		The driver.
  */
@@ -330,12 +319,29 @@
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "start_driver(drv=\"%s\")", drv->name);
 
-	rc = task_spawnl(NULL, NULL, drv->binary_path, drv->binary_path, NULL);
+	char *unit_name = NULL;
+	asprintf(&unit_name, "%s%c%s", drv->name, UNIT_NAME_SEPARATOR,
+	    UNIT_SVC_TYPE_NAME);
+	if (unit_name == NULL) {
+		return false;
+	}
+
+	/*
+	 * Non-blocking asynchronous request to start a driver
+	 * FIXME See note about sysman_unit_start non-blocking (asynchronous)
+	 *       API
+	 */
+	int flags = 0;
+	rc = sysman_unit_start(unit_name, flags);
+
 	if (rc != EOK) {
-		log_msg(LOG_DEFAULT, LVL_ERROR, "Spawning driver `%s' (%s) failed: %s.",
-		    drv->name, drv->binary_path, str_error(rc));
+		log_msg(LOG_DEFAULT, LVL_ERROR,
+		    "Request to start driver `%s' failed: %s.",
+		    drv->name, str_error(rc));
+		free(unit_name);
 		return false;
 	}
 
 	drv->state = DRIVER_STARTING;
+	free(unit_name);
 	return true;
 }
@@ -547,5 +553,4 @@
 
 	free(drv->name);
-	free(drv->binary_path);
 
 	clean_match_ids(&drv->match_ids);
@@ -568,5 +573,5 @@
 /** Find suitable driver for a device and assign the driver to it.
  *
- * @param node		The device node of the device in the device tree.
+ * @param dev		The device node of the device in the device tree.
  * @param drivers_list	The list of available drivers.
  * @return		True if the suitable driver is found and
@@ -627,5 +632,5 @@
  *
  * @param drv		The driver's structure.
- * @param node		The device's node in the device tree.
+ * @param dev		The device's node in the device tree.
  */
 void add_device(driver_t *drv, dev_node_t *dev, dev_tree_t *tree)
