Difference between revisions of "Setting up the BTS/es"

From Rhizomatica Wiki
Jump to: navigation, search
(Created page with "==== En la computadora que utilizas para la configuración ====")
(Updating to match new version of source page)
 
(67 intermediate revisions by one other user not shown)
Line 10: Line 10:
 
==== En la computadora que utilizas para la configuración ====
 
==== En la computadora que utilizas para la configuración ====
  
Create shared ethernet connection: set ipv4 settings to "Shared to other computers"
+
Crea una conexión compartida de ethernet: establece la configuración ipv4 como "Compartida con otras computadoras"
  
  
==== Get the 2 ips from the BTS: ====
+
==== Obten las 2 ips de la BTS: ====
  
  arp -n #shows arp table
+
  arp -n #muestra la tabla de arp
  
turn on bts - will assign ip to bts
+
prende la bts - al hacerlo se asignarán ip's a la BTS
  
  arp-n # will now show 2 new ips, probably on eth0 (of each bts in box)
+
  arp-n # mostrará 2 ip's nuevas, probablemente en eth0 (recuerda que cada caja tiene 2 bts)
  
  
ipaccess-find can also be used to find BTSs on an interface:
+
ipaccess-find puede utilizarse para encontrar BTS's en una interface:
 
   $ ipaccess-find eth0
 
   $ ipaccess-find eth0
 
   ipaccess-find (C) 2009 by Harald Welte
 
   ipaccess-find (C) 2009 by Harald Welte
Line 31: Line 31:
  
  
==== log into BTS: ====
+
==== entra en la BTS: ====
  
   ssh root@IP #either new IP address from 2nd arp -n
+
   ssh root@IP #cualquiera de las direcciones IP que obtuviste la segunda vez que escribiste arp -n
  
 
   sbts2050-util   
 
   sbts2050-util   
  
check power status:  
+
checa el estatus de encendido o apagado:  
 
   sbts2050-util sbts2050-pwr-status
 
   sbts2050-util sbts2050-pwr-status
  
example:
+
por ejemplo:
  
 
<pre>
 
<pre>
Line 51: Line 51:
 
</pre>
 
</pre>
  
(this power amp is ON!)
+
(este amplificador esta encendido se indica con la palabra ON)
  
  
==== turn off power amplifier ====
+
==== apaga el amplificador ====
  
   sbts2050-util sbts2050-pwr-enable 1 1 0  #1 1 0 = master slave amplifier
+
   sbts2050-util sbts2050-pwr-enable 1 1 0  #1 1 0 = el amplificador del master slave
  
For power amp to be off this should be:
+
Para que el amplificador este apagado esto debe aparecer como se muestra a continuación:
  
 
<pre>
 
<pre>
Line 67: Line 67:
 
Slave SF    : ON  [  4.97 Vdc, 0.91 A]
 
Slave SF    : ON  [  4.97 Vdc, 0.91 A]
 
Power Amp  : OFF  [ 10.75 Vdc, 0.05 A]
 
Power Amp  : OFF  [ 10.75 Vdc, 0.05 A]
PA Bias: OFF  [  0.00 Vdc, ---- A]  #means power amp is OFF!
+
PA Bias: OFF  [  0.00 Vdc, ---- A]  #significa que el amplificador esta apagado OFF!
  
 
</pre>
 
</pre>
  
 
  sbts2050-util sbts2050-temp  
 
  sbts2050-util sbts2050-temp  
- during troubleshooting : 75C is pretty high, 50-60C is normal
+
- durante el disgnóstico : 75 C es una tenperatura muy alta, 50-60 C es normal
  
  
 
==== sysmobts-util : ====
 
==== sysmobts-util : ====
  
This is the sysmoBTS utility cli thing:
+
Esta es la interface de línea de comando de sysmoBTS :
  
   sysmobts-util trx-nr #shows which transceiver we are on (0 master, 1 slave)
+
   sysmobts-util trx-nr #muestra en cuál transreceptor estamos (0 master, 1 slave)
  
Possible param names:
+
Posibles nombres de paŕametros:
 
ethaddr
 
ethaddr
 
clk-factory
 
clk-factory
Line 95: Line 95:
  
  
==== Run the script ====
+
==== Corre el script ====
  
On the work machine copy the following code into a file called ''setup-bts.py''
+
En la computadora que utilizas para configurar la BTS, copia el siguiente código en el archivo llamado  ''setup-bts.py''
  
 
<pre>
 
<pre>
Line 192: Line 192:
 
</pre>
 
</pre>
  
Make it executable and then run it:  
+
Conviértelo en archivo ejectuble y ejecutalo:  
  
 
<pre>
 
<pre>
   chmod +x setup-bts.py # makes the scripts executable
+
   chmod +x setup-bts.py # convierte el script en ejecutable
 
   
 
   
 
  ./setup-bts.py -H btsip setup
 
  ./setup-bts.py -H btsip setup
 
</pre>
 
</pre>
wait a while until finished, then do it on the other bts  
+
espera un poco hasta que termine, una vez que termine haz lo mismo en la otra bts  
  
when both are done, ssh into each box and reboot both of them
+
una vez que ambos han terminado, entra como ssh en cada bts y reinicia ambas
  
Upon reboot, DHCP issued IP will be replaced by a static ip for each: 172.16.0.11 and 172.16.0.12  
+
Después del reinicio, las IP DHCP será reemplazada por una IP estática, para cada BTS: 172.16.0.11 y 172.16.0.12  
  
The BTS LED should now show only if BSC is connected
+
La luz BTS estará prendida ahora solamente si la BSC esta conectada
  
  
==== Connect to web interface on the BSC: ====
+
==== Copiar las llaves de la BTS a la BSC ====
  
Get the ip from
+
desde dentro de la BSC:
Oaxaca (10.23.1.0/24) table at [[:new_network_scheme|: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
 
ssh-copy-id root@172.16.0.11
  
  
  
== NOW TEST IT! ==
+
== Ahora a probarla! ==
  
☎☎ make some calls! ☎☎
+
☎☎ haz unas llamadas! ☎☎
  
  
  
  
=== Troubleshooting ===
+
=== Diagnóstico de problemas ===
  
'''Crashing network script:'''
+
'''Cuando el script de la red tiene problemas:'''
  
Problem: Sometimes setup-bts.py has trouble with updating packages.  
+
Problema: A veces el archivo setup-bts.py tiene problemas cuando se actualizan algunos paquetes.  
  
ssh into the BTS and run package scripts by hand:
+
entra con la línea de comando y ssh dentro de la BTS y actualiza los scripts del programa a mano:
  
 
<code>
 
<code>
Line 246: Line 235:
 
</code>
 
</code>
  
go back and run the script again.
+
regresa y ejecuta el script otra vez.
  
'''Quick and dirty fix'''
+
'''Trucos rápidos para arreglar los problemas'''
  
That is caused by some SSL/HTTPS misconfiguration. Quick and dirty way to fix it:
+
Cuando el problema es causado por una mala cofiguración de SSL/HTTPS. La forma rápida para arreglarla:
  
 
<pre>sed -i -e 's/https/http/g' /etc/opkg/*.conf</pre>
 
<pre>sed -i -e 's/https/http/g' /etc/opkg/*.conf</pre>
  
'''Malconfigured IP Address (still looking for IP via DHCP)'''
+
'''Una mala configuración de la dirección IP (todavía esta buscando una IP a través del DHCP)'''
  
How to look for DHCP and/or ARP packets:
+
Como buscar el DHCP y/o paquetes ARP:
 
<code>tcpdump -v -n -i eth1 port 67 or port 68 or arp</code>
 
<code>tcpdump -v -n -i eth1 port 67 or port 68 or arp</code>
  
Configure the 172.16.0.0/24 network in /etc/dhcp/dhcpd.conf,
+
Configura la red 172.16.0.0/24 en /etc/dhcp/dhcpd.conf,
rebooted the secondary BTS, it might have something like 172.16.0.100 assigned.
+
reinicia la segunda BTS, tal vez tendrá asignado algo como 172.16.0.100.
Ssh into it, configure /etc/network/interfaces manually, adding:
+
Entra con Ssh, configura manualmente /etc/network/interfaces , añade lo siguiente:
  
 
gateway 172.16.0.1
 
gateway 172.16.0.1
  
as the last line. also:
+
en la última línea. también:
  
 
<pre>echo "nameserver 8.8.8.8" > /etc/resolv.conf</pre>
 
<pre>echo "nameserver 8.8.8.8" > /etc/resolv.conf</pre>
  
Reboot it, then copy setup-bts.py on the BSC and run it against
+
Reiniciala, entonces copia setup-bts.py en la BSC y correla con la segunda BTS (la cuál está ahora en 172.16.0.2).
the secondary BTS (who was now on 172.16.0.2).
+
  
'''BTS Can't get to the internets - opkg fails'''
+
'''La BTS no tiene acceso al internet. - opkg falla'''
  
Check if BTS can connect:
+
Checa si la BTS se puede conectar:
 
<pre> ping 8.8.8.8</pre>
 
<pre> ping 8.8.8.8</pre>
  
BTS probably needs a gateway:
+
La BTS probablemente necesita un gateway:
  
change ip to 192.168.x.x range (if that's a succesful gateway - try route -n on a computer with working internet)
+
cambia la ip al rango 192.168.x.x (si este es un gateway que funciona - trata de rutear -n en una computadora que se pueda conectar al internet)
 
<pre>ifconfig eth0 192.168.0.49</pre>
 
<pre>ifconfig eth0 192.168.0.49</pre>
  
reconnect again with the new ip:
+
reconectate otra vez con la nueva ip:
 
<pre>ssh root@192.168.0.49</pre>
 
<pre>ssh root@192.168.0.49</pre>
  
now add a gateway on the same subnet that works:
+
ahora añade un gateway en la misma subred que funciona:
 
<pre>route add default gw 192.168.0.1</pre>
 
<pre>route add default gw 192.168.0.1</pre>
  
you might want add nameserveer to resolve.conf:
+
ahora querrás añadir nameserveer a resolve.conf:
  
 
<pre>vi /etc/resolv.conf</pre>
 
<pre>vi /etc/resolv.conf</pre>
  
add:
+
añade:
 
<pre>nameserver 8.8.8.8</pre>
 
<pre>nameserver 8.8.8.8</pre>
  
now try to ping google or run opkg update.
+
ahora trata de conectarte con ping google o ejectuta opkg update.
  
If it works, run the setup script at the new ip:
+
Si funciona, ejectuta el script setup en la nueva ip:
  
 
<pre>./setup-bts.py -H 192.168.0.49 setup </pre>
 
<pre>./setup-bts.py -H 192.168.0.49 setup </pre>

Latest revision as of 03:56, 27 March 2016

Other languages:
English • ‎español

Conectando las antenas:

La antena de transmisión deberá ser de doble banda/ la recepción no importa

Recomendamos utilizar un atenuador como este [1]. O dejar que la BTS emita algo de radiación hasta que puedas lograr apagar los amplificadores!!!


En la computadora que utilizas para la configuración

Crea una conexión compartida de ethernet: establece la configuración ipv4 como "Compartida con otras computadoras"


Obten las 2 ips de la BTS:

  arp -n #muestra la tabla de arp

prende la bts - al hacerlo se asignarán ip's a la BTS

  arp-n # mostrará 2 ip's nuevas, probablemente en eth0 (recuerda que cada caja tiene 2 bts)


ipaccess-find puede utilizarse para encontrar BTS's en una interface:

 $ ipaccess-find eth0
 ipaccess-find (C) 2009 by Harald Welte
 This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY
 
 Trying to find ip.access BTS by broadcast UDP...
 MAC_Address='24:62:78:00:00:5a'  IP_Address='192.168.0.80'  Serial_Number='162'  Unit_ID='sysmoBTS 1002'


entra en la BTS:

 ssh root@IP #cualquiera de las direcciones IP que obtuviste la segunda vez que escribiste arp -n
 sbts2050-util  

checa el estatus de encendido o apagado:

 sbts2050-util sbts2050-pwr-status

por ejemplo:

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]

(este amplificador esta encendido se indica con la palabra ON)


apaga el amplificador

 sbts2050-util sbts2050-pwr-enable 1 1 0  #1 1 0 = el amplificador del master slave

Para que el amplificador este apagado esto debe aparecer como se muestra a continuación:


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]  #significa que el amplificador esta apagado OFF!

sbts2050-util sbts2050-temp 

- durante el disgnóstico : 75 C es una tenperatura muy alta, 50-60 C es normal


sysmobts-util :

Esta es la interface de línea de comando de sysmoBTS :

 sysmobts-util trx-nr #muestra en cuál transreceptor estamos (0 master, 1 slave)

Posibles nombres de paŕametros: ethaddr clk-factory temp-dig-max temp-rf-max serial-nr hours-running boot-count key model-nr model-flags trx-nr


Corre el script

En la computadora que utilizas para configurar la BTS, copia el siguiente código en el archivo llamado 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],)

Conviértelo en archivo ejectuble y ejecutalo:

  chmod +x setup-bts.py # convierte el script en ejecutable
 
 ./setup-bts.py -H btsip setup

espera un poco hasta que termine, una vez que termine haz lo mismo en la otra bts

una vez que ambos han terminado, entra como ssh en cada bts y reinicia ambas

Después del reinicio, las IP DHCP será reemplazada por una IP estática, para cada BTS: 172.16.0.11 y 172.16.0.12

La luz BTS estará prendida ahora solamente si la BSC esta conectada


Copiar las llaves de la BTS a la BSC

desde dentro de la BSC: ssh-copy-id root@172.16.0.11


Ahora a probarla!

☎☎ haz unas llamadas! ☎☎



Diagnóstico de problemas

Cuando el script de la red tiene problemas:

Problema: A veces el archivo setup-bts.py tiene problemas cuando se actualizan algunos paquetes.

entra con la línea de comando y ssh dentro de la BTS y actualiza los scripts del programa a mano:

opkg update opkg upgrade

regresa y ejecuta el script otra vez.

Trucos rápidos para arreglar los problemas

Cuando el problema es causado por una mala cofiguración de SSL/HTTPS. La forma rápida para arreglarla:

sed -i -e 's/https/http/g' /etc/opkg/*.conf

Una mala configuración de la dirección IP (todavía esta buscando una IP a través del DHCP)

Como buscar el DHCP y/o paquetes ARP: tcpdump -v -n -i eth1 port 67 or port 68 or arp

Configura la red 172.16.0.0/24 en /etc/dhcp/dhcpd.conf, reinicia la segunda BTS, tal vez tendrá asignado algo como 172.16.0.100. Entra con Ssh, configura manualmente /etc/network/interfaces , añade lo siguiente:

gateway 172.16.0.1

en la última línea. también:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Reiniciala, entonces copia setup-bts.py en la BSC y correla con la segunda BTS (la cuál está ahora en 172.16.0.2).

La BTS no tiene acceso al internet. - opkg falla

Checa si la BTS se puede conectar:

 ping 8.8.8.8

La BTS probablemente necesita un gateway:

cambia la ip al rango 192.168.x.x (si este es un gateway que funciona - trata de rutear -n en una computadora que se pueda conectar al internet)

ifconfig eth0 192.168.0.49

reconectate otra vez con la nueva ip:

ssh root@192.168.0.49

ahora añade un gateway en la misma subred que funciona:

route add default gw 192.168.0.1

ahora querrás añadir nameserveer a resolve.conf:

vi /etc/resolv.conf

añade:

nameserver 8.8.8.8

ahora trata de conectarte con ping google o ejectuta opkg update.

Si funciona, ejectuta el script setup en la nueva ip:

./setup-bts.py -H 192.168.0.49 setup