Difference between revisions of "Setting up the BTS"
(Created page with "====== BTS SETUP ====== ==== Connect antennas: ==== Transceiving antenna needs to be dual band / receiving doesn't matter ==== On work machine ==== Create shared ethernet...") |
(→On work machine:) |
||
Line 78: | Line 78: | ||
trx-nr | trx-nr | ||
− | ==== On work machine: ==== | + | ==== Run the script ==== |
+ | |||
+ | On the work machine copy the following script into a file called ''setup-bts.py'' | ||
+ | |||
+ | <pre> | ||
+ | #!/usr/bin/fab -f | ||
+ | """ | ||
+ | Rhizomatica BTS Toolkit | ||
+ | |||
+ | Automate maintenance on the BTS | ||
+ | """ | ||
+ | |||
+ | import sys | ||
+ | from fabric.api import env, run, task | ||
+ | |||
+ | |||
+ | def ssh(): | ||
+ | env.user = 'root' | ||
+ | env.password = '' | ||
+ | |||
+ | |||
+ | @task | ||
+ | def setup(): | ||
+ | ssh() | ||
+ | run('sbts2050-util sbts2050-pwr-enable 1 1 0') | ||
+ | run('sed -i s/NO_START=0/NO_START=1/ /etc/default/osmo-nitb') | ||
+ | run('mv /etc/rc5.d/S90gprs.sh /home/root/ || true') | ||
+ | run('mv /etc/rc5.d/S30osmo-bsc /etc/rc5.d/K30osmo-bsc || true') | ||
+ | run('mv /etc/rc5.d/S30osmo-bsc-mgcp /etc/rc5.d/K30osmo-bsc-mgcp || true') | ||
+ | run('mv /etc/rc5.d/S30osmo-nitb /etc/rc5.d/K30osmo-nitb || true') | ||
+ | run('sed -i -e "s/sysmobts-2050\/201208\//sysmobts-2050\/201208-testing\//g" /etc/opkg/*') | ||
+ | run('opkg remove openggsn osmo-sgsn lcr') | ||
+ | run('opkg update') | ||
+ | run('opkg upgrade || true') | ||
+ | run('opkg upgrade') | ||
+ | |||
+ | trx_nr = int(run('sysmobts-util trx-nr')) | ||
+ | osmo(trx_nr) | ||
+ | network(trx_nr) | ||
+ | |||
+ | |||
+ | def osmo(trx_nr): | ||
+ | etc_osmo_bts = """ | ||
+ | ! | ||
+ | ! OsmoBTS () configuration saved from vty | ||
+ | !! | ||
+ | ! | ||
+ | log stderr | ||
+ | logging color 0 | ||
+ | logging timestamp 0 | ||
+ | logging level all everything | ||
+ | logging level rsl info | ||
+ | logging level oml info | ||
+ | logging level rll notice | ||
+ | logging level rr notice | ||
+ | logging level meas notice | ||
+ | logging level pag info | ||
+ | logging level l1c info | ||
+ | logging level l1p info | ||
+ | logging level dsp debug | ||
+ | logging level abis notice | ||
+ | ! | ||
+ | line vty | ||
+ | no login | ||
+ | ! | ||
+ | bts 0 | ||
+ | band 850 | ||
+ | ipa unit-id 1000 %(trx_nr)d | ||
+ | oml remote-ip 172.16.0.1 | ||
+ | """ % {'trx_nr': trx_nr} | ||
+ | run("echo '%s' > /etc/osmocom/osmo-bts.cfg" % (etc_osmo_bts,)) | ||
+ | |||
+ | |||
+ | def network(trx_nr): | ||
+ | if trx_nr == 0: | ||
+ | ip = "172.16.0.11" # master | ||
+ | else: | ||
+ | ip = "172.16.0.12" # slave | ||
+ | |||
+ | interfaces = """ | ||
+ | auto lo | ||
+ | iface lo inet loopback | ||
+ | |||
+ | auto eth0 | ||
+ | iface eth0 inet static | ||
+ | address %s | ||
+ | netmask 255.255.255.0 | ||
+ | """ % (ip,) | ||
+ | run("echo '%s' > /etc/network/interfaces" % (interfaces,)) | ||
+ | |||
+ | |||
+ | @task(default=True) | ||
+ | def help(): | ||
+ | print "%s -H bts_ip setup" % (sys.argv[0],) | ||
+ | |||
+ | </pre> | ||
Run a script to put all the sysmocom stuff on the bts: | Run a script to put all the sysmocom stuff on the bts: |
Revision as of 16:53, 10 July 2015
Contents
BTS SETUP
Connect antennas:
Transceiving antenna needs to be dual band / receiving doesn't matter
On work machine
Create shared ethernet connection: set ipv4 settings to "Shared to other computers"
Get the 2 ips from the BTS:
arp -n #shows arp table
turn on bts - will assign ip to bts
arp-n # will now show 2 new ips, probably on eth0 (of each bts in box)
log into BTS:
ssh root@IP #either new IP address from 2nd arp -n
sbts2050-util
check power status:
sbts2050-util sbts2050-pwr-status
example:
root@NTQ0107973S:~# sbts2050-util sbts2050-pwr-status Main Supply :(ON) [(24.00)Vdc, 1.34 A] Master SF : ON [ 4.97 Vdc, 0.97 A] Slave SF : ON [ 4.97 Vdc, 0.91 A] Power Amp : ON [ 24.75 Vdc, 0.77 A] PA Bias: ON [ 9.00 Vdc, ---- A]
(this power amp is ON!)
turn off power amplifier
sbts2050-util sbts2050-pwr-enable 1 1 0 #1 1 0 = master slave amplifier
For power amp to be off this should be:
root@NTQ0107973S:~# sbts2050-util sbts2050-pwr-status Main Supply :(ON) [(24.00)Vdc, 0.56 A] Master SF : ON [ 4.94 Vdc, 0.98 A] Slave SF : ON [ 4.97 Vdc, 0.91 A] Power Amp : OFF [ 10.75 Vdc, 0.05 A] PA Bias: OFF [ 0.00 Vdc, ---- A] #means power amp is OFF!
sbts2050-util sbts2050-temp
- during troubleshooting : 75C pretty high 50-60 normal
sysmobts-util :
This is the sysmoBTS utility cli thing:
sysmobts-util trx-nr #shows which transceiver we are on (0 master, 1 slave)
Possible param names: ethaddr clk-factory temp-dig-max temp-rf-max serial-nr hours-running boot-count key model-nr model-flags trx-nr
Run the script
On the work machine copy the following script into a file called setup-bts.py
#!/usr/bin/fab -f """ Rhizomatica BTS Toolkit Automate maintenance on the BTS """ import sys from fabric.api import env, run, task def ssh(): env.user = 'root' env.password = '' @task def setup(): ssh() run('sbts2050-util sbts2050-pwr-enable 1 1 0') run('sed -i s/NO_START=0/NO_START=1/ /etc/default/osmo-nitb') run('mv /etc/rc5.d/S90gprs.sh /home/root/ || true') run('mv /etc/rc5.d/S30osmo-bsc /etc/rc5.d/K30osmo-bsc || true') run('mv /etc/rc5.d/S30osmo-bsc-mgcp /etc/rc5.d/K30osmo-bsc-mgcp || true') run('mv /etc/rc5.d/S30osmo-nitb /etc/rc5.d/K30osmo-nitb || true') run('sed -i -e "s/sysmobts-2050\/201208\//sysmobts-2050\/201208-testing\//g" /etc/opkg/*') run('opkg remove openggsn osmo-sgsn lcr') run('opkg update') run('opkg upgrade || true') run('opkg upgrade') trx_nr = int(run('sysmobts-util trx-nr')) osmo(trx_nr) network(trx_nr) def osmo(trx_nr): etc_osmo_bts = """ ! ! OsmoBTS () configuration saved from vty !! ! log stderr logging color 0 logging timestamp 0 logging level all everything logging level rsl info logging level oml info logging level rll notice logging level rr notice logging level meas notice logging level pag info logging level l1c info logging level l1p info logging level dsp debug logging level abis notice ! line vty no login ! bts 0 band 850 ipa unit-id 1000 %(trx_nr)d oml remote-ip 172.16.0.1 """ % {'trx_nr': trx_nr} run("echo '%s' > /etc/osmocom/osmo-bts.cfg" % (etc_osmo_bts,)) def network(trx_nr): if trx_nr == 0: ip = "172.16.0.11" # master else: ip = "172.16.0.12" # slave interfaces = """ auto lo iface lo inet loopback auto eth0 iface eth0 inet static address %s netmask 255.255.255.0 """ % (ip,) run("echo '%s' > /etc/network/interfaces" % (interfaces,)) @task(default=True) def help(): print "%s -H bts_ip setup" % (sys.argv[0],)
Run a script to put all the sysmocom stuff on the bts:
chmod +x setup-bts.py # makes the scripts executable ./setup-bts.py -H btsip setup
wait a while till finished , then do it on other bts
when both are done, ssh into each box and reboot both of them
Upon reboot, DHCP issued IP will be replaced by a static ip for each: 172.16.0.11 and 172.16.0.12
The BTS led should now show only if BSC is connected
Connect to web interface on the BSC:
Get the ip from Oaxaca (10.23.1.0/24) table at new_network_scheme
eg. for Alotepec: 10.23.1.16/rai
admin:admin1
Copy keys to BTS from BSC
from inside BSC: ssh-copy-id root@172.16.0.11
NOW TEST IT!
☎☎ make some calls! ☎☎☎
Potential troubleshooting
- Crashing network script:**
Problem: Sometimes setup-bts.py has trouble with updating packages.
ssh into the BTS and run package scripts by hand:
opkg update
opkg upgrade
go back and run the script again.
- Quick and dirty fix**
That is caused by some SSL/HTTPS misconfiguration. Quick and dirty way to fix it:
- sed -i -e 's/https/http/g' /etc/opkg/*.conf
- Malconfigured IP Address (still looking for IP via DHCP)**
Ciaby's fix from the July Cajonos Fracoso:
How to look for DHCP and/or ARP packets:
tcpdump -v -n -i eth1 port 67 or port 68 or arp
I configured the 172.16.0.0/24 network in /etc/dhcp/dhcpd.conf, rebooted the secondary BTS, it got 172.16.0.100 assigned. Ssh into it, configure /etc/network/interfaces manually, adding:
gateway 172.16.0.1
as the last line. also:
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Rebooted it, then copied setup-bts.py on the BSC and run it against the secondary BTS (who was now on 172.16.0.2).