diff --git a/src/osmo_gsm_tester/bts_octphy.py b/src/osmo_gsm_tester/bts_octphy.py
index bc93a3a..d9ffd6e 100644
--- a/src/osmo_gsm_tester/bts_octphy.py
+++ b/src/osmo_gsm_tester/bts_octphy.py
@@ -32,6 +32,7 @@
     values = None
     lac = None
     cellid = None
+    proc_bts = None
 
     BIN_BTS_OCTPHY = 'osmo-bts-octphy'
 
@@ -83,10 +84,9 @@
         self.log('Applying CAP_NET_RAW capability to', OsmoBtsOctphy.BIN_BTS_OCTPHY)
         util.setcap_net_raw(btsoct_path, self.run_dir.new_dir('setcap_net_raw'))
 
-        self.launch_process(OsmoBtsOctphy.BIN_BTS_OCTPHY, '-r', '1',
+        self.proc_bts = self.launch_process(OsmoBtsOctphy.BIN_BTS_OCTPHY, '-r', '1',
                             '-c', os.path.abspath(self.config_file),
                             '-i', self.bsc.addr(), '-t', str(self.num_trx()))
-        #self.launch_process(OsmoBtsOctphy.BIN_PCU, '-r', '1')
         self.suite_run.poll()
 
     def launch_process(self, binary_name, *args):
@@ -168,6 +168,11 @@
         self.dbg(conf=values)
         return values
 
+    def ready_for_pcu(self):
+        if not self.proc_bts or not self.proc_bts.is_running:
+            return False
+        return 'BTS is up' in (self.proc_bts.get_stderr() or '')
+
     def set_bsc(self, bsc):
         self.bsc = bsc
 
diff --git a/src/osmo_gsm_tester/bts_osmotrx.py b/src/osmo_gsm_tester/bts_osmotrx.py
index a964169..d30c1ee 100644
--- a/src/osmo_gsm_tester/bts_osmotrx.py
+++ b/src/osmo_gsm_tester/bts_osmotrx.py
@@ -32,6 +32,7 @@
     pcu_sk_tmp_dir = None
     lac = None
     cellid = None
+    proc_bts = None
 
     BIN_BTS_TRX = 'osmo-bts-trx'
     BIN_PCU = 'osmo-pcu'
@@ -92,10 +93,9 @@
             raise RuntimeError('No lib/ in %r' % self.inst)
         self.env = { 'LD_LIBRARY_PATH': util.prepend_library_path(lib) }
 
-        self.launch_process(OsmoBtsTrx.BIN_BTS_TRX, '-r', '1',
+        self.proc_bts = self.launch_process(OsmoBtsTrx.BIN_BTS_TRX, '-r', '1',
                             '-c', os.path.abspath(self.config_file),
                             '-i', self.bsc.addr())
-        #self.launch_process(OsmoBtsTrx.BIN_PCU, '-r', '1')
         self.suite_run.poll()
 
     def launch_process(self, binary_name, *args):
@@ -146,6 +146,11 @@
         self.dbg(conf=values)
         return values
 
+    def ready_for_pcu(self):
+        if not self.proc_bts or not self.proc_bts.is_running:
+            return False
+        return 'BTS is up' in (self.proc_bts.get_stderr() or '')
+
     def set_bsc(self, bsc):
         self.bsc = bsc
 
diff --git a/src/osmo_gsm_tester/bts_sysmo.py b/src/osmo_gsm_tester/bts_sysmo.py
index fc546ae..1a7b139 100644
--- a/src/osmo_gsm_tester/bts_sysmo.py
+++ b/src/osmo_gsm_tester/bts_sysmo.py
@@ -31,6 +31,7 @@
     remote_dir = None
     lac = None
     cellid = None
+    proc_bts = None
 
     REMOTE_DIR = '/osmo-gsm-tester'
     BTS_SYSMO_BIN = 'osmo-bts-sysmo'
@@ -76,11 +77,11 @@
 
         remote_lib = self.remote_inst.child('lib')
         remote_binary = self.remote_inst.child('bin', 'osmo-bts-sysmo')
-        self.launch_remote('osmo-bts-sysmo',
-            ('LD_LIBRARY_PATH=%s' % remote_lib,
-             remote_binary, '-c', remote_config_file, '-r', '1',
-             '-i', self.bsc.addr()),
-            remote_cwd=remote_run_dir)
+        self.proc_bts =  self.launch_remote('osmo-bts-sysmo',
+                            ('LD_LIBRARY_PATH=%s' % remote_lib,
+                             remote_binary, '-c', remote_config_file, '-r', '1',
+                             '-i', self.bsc.addr()),
+                            remote_cwd=remote_run_dir)
 
     def cleanup(self):
         pass
@@ -105,6 +106,7 @@
         proc = self._process_remote(name, popen_args, remote_cwd)
         self.suite_run.remember_to_stop(proc)
         proc.launch()
+        return proc
 
     def run_local(self, name, popen_args):
         run_dir = self.run_dir.new_dir(name)
@@ -153,6 +155,11 @@
         self.dbg(conf=values)
         return values
 
+    def ready_for_pcu(self):
+        if not self.proc_bts or not self.proc_bts.is_running:
+            return False
+        return 'BTS is up' in (self.proc_bts.get_stderr() or '')
+
     def set_bsc(self, bsc):
         self.bsc = bsc
 
diff --git a/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl
index 13cdb1d..906e7b9 100644
--- a/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl
@@ -9,6 +9,8 @@
   logging level rll debug
   logging level rr debug
   logging level rsl debug
+  ! Level required by ready_for_pcu(): pcu info
+  logging level pcu info
 !
 
 %for phy in osmo_bts_octphy.phy_list:
diff --git a/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl
index 69f7ac1..c9dde86 100644
--- a/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl
@@ -9,6 +9,8 @@
   logging level rll debug
   logging level rr debug
   logging level rsl debug
+  ! Level required by ready_for_pcu(): pcu info
+  logging level pcu info
 !
 phy 0
  instance 0
diff --git a/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl
index c316e62..1931e9b 100644
--- a/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl
@@ -12,6 +12,8 @@
   logging level l1c info
   logging level l1p error
   logging level trx info
+  ! Level required by ready_for_pcu(): pcu info
+  logging level pcu info
 !
 phy 0
  osmotrx ip local ${osmo_bts_trx.trx_local_ip}
