<p>Daniel Willmann has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/14260">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmo-bts-lc15: Change LED behaviour to be the same as oc2g<br><br>It looks like the status LED on the sysmobts2100 never worked correctly<br>since lc15bts-mgr expects osmo-bts-lc15 to create and manage<br>/var/run/osmo-bts/state, but there is nothing to do so in osmo-bts.<br><br>This patch copies the functions from oc2g to manage the state file in<br>lc15.<br><br>Change-Id: Iad32a22fc72e2aba45e4f1b9ae585f6e0b8757ed<br>Related: SYS#4493<br>---<br>M contrib/systemd/osmo-bts-lc15.service<br>M src/osmo-bts-litecell15/main.c<br>2 files changed, 31 insertions(+), 14 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/60/14260/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/contrib/systemd/osmo-bts-lc15.service b/contrib/systemd/osmo-bts-lc15.service</span><br><span>index 90e7fc2..7c51110 100644</span><br><span>--- a/contrib/systemd/osmo-bts-lc15.service</span><br><span>+++ b/contrib/systemd/osmo-bts-lc15.service</span><br><span>@@ -3,11 +3,8 @@</span><br><span> </span><br><span> [Service]</span><br><span> Type=simple</span><br><span style="color: hsl(0, 100%, 40%);">-ExecStartPre=/bin/sh -c 'echo 1 > /sys/class/leds/usr0/brightness'</span><br><span style="color: hsl(0, 100%, 40%);">-ExecStartPre=/bin/sh -c 'echo 1 > /sys/class/leds/usr1/brightness'</span><br><span> ExecStart=/usr/bin/osmo-bts-lc15 -t 2 -s -c /etc/osmocom/osmo-bts-lc15.cfg -M</span><br><span style="color: hsl(0, 100%, 40%);">-ExecStopPost=/bin/sh -c 'echo 1 > /sys/class/leds/usr0/brightness'</span><br><span style="color: hsl(0, 100%, 40%);">-ExecStopPost=/bin/sh -c 'echo 0 > /sys/class/leds/usr1/brightness'</span><br><span style="color: hsl(120, 100%, 40%);">+RuntimeDirectory=osmo-bts</span><br><span> Restart=always</span><br><span> RestartSec=2</span><br><span> RestartPreventExitStatus=1</span><br><span>diff --git a/src/osmo-bts-litecell15/main.c b/src/osmo-bts-litecell15/main.c</span><br><span>index e4f9a56..c47d76d 100644</span><br><span>--- a/src/osmo-bts-litecell15/main.c</span><br><span>+++ b/src/osmo-bts-litecell15/main.c</span><br><span>@@ -51,6 +51,25 @@</span><br><span> #include <osmo-bts/pcu_if.h></span><br><span> #include <osmo-bts/l1sap.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static int write_status_file(char *status_file, char *status_str)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      FILE *outf;</span><br><span style="color: hsl(120, 100%, 40%);">+   char tmp[PATH_MAX+1];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       snprintf(tmp, sizeof(tmp)-1, "/var/run/osmo-bts/%s", status_file);</span><br><span style="color: hsl(120, 100%, 40%);">+  tmp[PATH_MAX-1] = '\0';</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     outf = fopen(tmp, "w");</span><br><span style="color: hsl(120, 100%, 40%);">+     if (!outf)</span><br><span style="color: hsl(120, 100%, 40%);">+            return -1;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  fprintf(outf, "%s\n", status_str);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        fclose(outf);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*NTQD: Change how rx_nr is handle in multi-trx*/</span><br><span> #define LC15BTS_RF_LOCK_PATH     "/var/lock/bts_rf_lock"</span><br><span> </span><br><span>@@ -116,6 +135,9 @@</span><br><span> </span><br><span> int bts_model_oml_estab(struct gsm_bts *bts)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+  /* update status file */</span><br><span style="color: hsl(120, 100%, 40%);">+      write_status_file("state", "");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>        return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -123,24 +145,16 @@</span><br><span> {</span><br><span>      static uint64_t states = 0;</span><br><span>  uint64_t old_states = states;</span><br><span style="color: hsl(0, 100%, 40%);">-   int led_rf_active_on;</span><br><span> </span><br><span>    if (on)</span><br><span>              states |= (1ULL << which);</span><br><span>     else</span><br><span>                 states &= ~(1ULL << which);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       led_rf_active_on =</span><br><span style="color: hsl(0, 100%, 40%);">-              (states & (1ULL << BTS_STATUS_RF_ACTIVE)) &&</span><br><span style="color: hsl(0, 100%, 40%);">-          !(states & (1ULL << BTS_STATUS_RF_MUTE));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>  LOGP(DL1C, LOGL_INFO,</span><br><span style="color: hsl(0, 100%, 40%);">-        "Set global status #%d to %d (%04llx -> %04llx), LEDs: ACT %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+        "Set global status #%d to %d (%04llx -> %04llx)",</span><br><span>       which, on,</span><br><span style="color: hsl(0, 100%, 40%);">-      (long long)old_states, (long long)states,</span><br><span style="color: hsl(0, 100%, 40%);">-       led_rf_active_on);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- lc15bts_led_set(led_rf_active_on ? LED_GREEN : LED_OFF);</span><br><span style="color: hsl(120, 100%, 40%);">+           (long long)old_states, (long long)states);</span><br><span> }</span><br><span> </span><br><span> void bts_model_print_help()</span><br><span>@@ -197,11 +211,17 @@</span><br><span> </span><br><span> void bts_model_abis_close(struct gsm_bts *bts)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+    /* write to status file */</span><br><span style="color: hsl(120, 100%, 40%);">+    write_status_file("state", "ABIS DOWN");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>       /* for now, we simply terminate the program and re-spawn */</span><br><span>  bts_shutdown(bts, "Abis close");</span><br><span> }</span><br><span> </span><br><span> int main(int argc, char **argv)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+   /* create status file with initial state */</span><br><span style="color: hsl(120, 100%, 40%);">+   write_status_file("state", "ABIS DOWN");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>       return bts_main(argc, argv);</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/14260">change 14260</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/14260"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Iad32a22fc72e2aba45e4f1b9ae585f6e0b8757ed </div>
<div style="display:none"> Gerrit-Change-Number: 14260 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Daniel Willmann <dwillmann@sysmocom.de> </div>