diff --git a/src/osmo_ms_driver/__main__.py b/src/osmo_ms_driver/__main__.py
index 1573084..265ce47 100644
--- a/src/osmo_ms_driver/__main__.py
+++ b/src/osmo_ms_driver/__main__.py
@@ -20,6 +20,7 @@
 from .simple_loop import SimpleLoop
 from .location_update_test import MassUpdateLocationTest
 from .cdf import cdfs
+from .starter import BinaryOptions
 from osmo_gsm_tester import log
 
 # System modules
@@ -82,7 +83,8 @@
     ev_server.listen(loop)
 
     # Just a single test for now.
-    test = MassUpdateLocationTest("lu_test", args.num_ms, cdf, ev_server, tmp_dir)
+    options = BinaryOptions("virtphy", "mobile", None)
+    test = MassUpdateLocationTest("lu_test", options, args.num_ms, cdf, ev_server, tmp_dir)
     atexit.register(test.stop_all)
 
     # Run until everything has been launched
diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py
index dfa33c3..dee99fe 100644
--- a/src/osmo_ms_driver/location_update_test.py
+++ b/src/osmo_ms_driver/location_update_test.py
@@ -56,8 +56,9 @@
     TEMPLATE_LUA = "osmo-mobile-lu.lua"
     TEMPLATE_CFG = "osmo-mobile.cfg"
 
-    def __init__(self, name, number_of_ms, cdf_function, event_server, tmp_dir):
+    def __init__(self, name, options, number_of_ms, cdf_function, event_server, tmp_dir):
         super().__init__(log.C_RUN, name)
+        self._binary_options = options
         self._number_of_ms = number_of_ms
         self._cdf = cdf_function
         self._cdf.set_target(number_of_ms)
@@ -71,10 +72,12 @@
         for i in range(0, number_of_ms):
             ms_name = "%.5d" % i
 
-            phy = OsmoVirtPhy(ms_name, tmp_dir)
+            phy = OsmoVirtPhy(options.virtphy, options.env,
+                              ms_name, tmp_dir)
             self._phys.append(phy)
 
-            launcher = OsmoMobile(ms_name, tmp_dir, self.TEMPLATE_LUA,
+            launcher = OsmoMobile(options.mobile, options.env,
+                                ms_name, tmp_dir, self.TEMPLATE_LUA,
                                 self.TEMPLATE_CFG, imsi_gen,
                                 phy.phy_filename(),
                                 event_server.server_path())
diff --git a/src/osmo_ms_driver/starter.py b/src/osmo_ms_driver/starter.py
index 5218a57..2ffb33a 100644
--- a/src/osmo_ms_driver/starter.py
+++ b/src/osmo_ms_driver/starter.py
@@ -18,6 +18,7 @@
 
 from osmo_gsm_tester import log, template
 
+import collections
 import os
 import os.path
 import subprocess
@@ -26,9 +27,13 @@
 _devnull = open(os.devnull, 'w')
 #_devnull = open('/dev/stdout', 'w')
 
+BinaryOptions = collections.namedtuple("BinaryOptions", ["virtphy", "mobile", "env"])
+
 class Launcher(log.Origin):
-    def __init__(self, base_name, name_number, tmp_dir):
+    def __init__(self, binary, env, base_name, name_number, tmp_dir):
         super().__init__(log.C_RUN, "{}/{}".format(base_name, name_number))
+        self._binary = binary
+        self._env = env
         self._name_number = name_number
         self._tmp_dir = tmp_dir
 
@@ -36,8 +41,8 @@
         return self._name_number
 
 class OsmoVirtPhy(Launcher):
-    def __init__(self, name_number, tmp_dir):
-        super().__init__("osmo-ms-virt-phy", name_number, tmp_dir)
+    def __init__(self, binary, env, name_number, tmp_dir):
+        super().__init__(binary, env, "osmo-ms-virt-phy", name_number, tmp_dir)
         self._phy_filename = os.path.join(self._tmp_dir, "osmocom_l2_" + self._name_number)
         self._vphy_proc = None
 
@@ -49,9 +54,9 @@
             raise log.Error('Path for unix socket is longer than max allowed len for unix socket path (107):', self._phy_filename)
 
         self.log("Starting virtphy process")
-        args = ["virtphy", "--l1ctl-sock=" + self._phy_filename]
+        args = [self._binary, "--l1ctl-sock=" + self._phy_filename]
         self.log(' '.join(args))
-        self._vphy_proc = subprocess.Popen(args, stderr=_devnull, stdout=_devnull)
+        self._vphy_proc = subprocess.Popen(args, stderr=_devnull, stdout=_devnull, env=self._env)
 
     def verify_ready(self):
         while True:
@@ -65,8 +70,8 @@
             self._vphy_proc.terminate()
 
 class OsmoMobile(Launcher):
-    def __init__(self, name_number, tmp_dir, lua_tmpl, cfg_tmpl, imsi_ki_generator, phy_filename, ev_server_path):
-        super().__init__("osmo-ms-mob", name_number, tmp_dir)
+    def __init__(self, binary, env, name_number, tmp_dir, lua_tmpl, cfg_tmpl, imsi_ki_generator, phy_filename, ev_server_path):
+        super().__init__(binary, env, "osmo-ms-mob", name_number, tmp_dir)
         self._lua_template = lua_tmpl
         self._cfg_template = cfg_tmpl
         self._imsi_ki_generator = imsi_ki_generator
@@ -117,9 +122,9 @@
 
         self.log("Starting process")
         # Let the kernel pick an unused port for the VTY.
-        args = ["mobile", "-c", mob_filename, "--vty-port=0"]
+        args = [self._binary, "-c", mob_filename, "--vty-port=0"]
         self.log(' '.join(args))
-        self._omob_proc = subprocess.Popen(args, stderr=_devnull, stdout=_devnull)
+        self._omob_proc = subprocess.Popen(args, stderr=_devnull, stdout=_devnull, env=self._env)
 
     def kill(self):
         """Clean up things."""
