NanoBTS Getting Started » History » Version 5
neels, 05/24/2016 10:29 AM
1 | 4 | laforge | {{>toc}} |
---|---|---|---|
2 | 1 | laforge | |
3 | 4 | laforge | h1. Getting started with Openbsc and an ip.access nanoBTS |
4 | 1 | laforge | |
5 | 4 | laforge | |
6 | This page describes how ot configure + set up an ip.access nanoBTS to use it in conjunction with [[OpenBSC]] (i.e. [osmo-nitb] or [osmo-bsc]). |
||
7 | |||
8 | 1 | laforge | Please note once again that the Osmocom project has no affiliation and no contact with ip.access. All information here is presented |
9 | based on our own experience only. If you have official documentation by the manufacturer, you should probably consult that instead |
||
10 | of using this wiki page. |
||
11 | |||
12 | |||
13 | 4 | laforge | h2. Physical set-up |
14 | |||
15 | |||
16 | |||
17 | h3. Power supply |
||
18 | |||
19 | The nanoBTS uses PoE (Power-over-Ethernet). It does not have any other power connector, so you will have to use a PoE-Injector (aka _mid-span_) |
||
20 | 1 | laforge | or a PoE capable switch (like the Netgear FS-108P for a small desktop switch). |
21 | 3 | laforge | |
22 | 1 | laforge | Please note the power demand of the nanoBTS is quite high for a PoE powered device. You may not be able to use all the PoE ports of your switch |
23 | for nanoBTSs. Check with your switch vendor and/or ip.access. |
||
24 | |||
25 | On first sight, there appear to be three RJ-45 jacks on the nanoBTS. However, two of them are actually RJ-69 (10-pin) and only used in stacking |
||
26 | 4 | laforge | configurations (see [[nanoBTSmultiTRX]] for details). This leaves only 1 real RJ-45 marked *LAN/48VDC*, and that's where you connect your |
27 | 1 | laforge | powered Ethernet. |
28 | |||
29 | |||
30 | 4 | laforge | h3. Antennas |
31 | |||
32 | |||
33 | 1 | laforge | There are four SMA connectors, one on each corner. |
34 | 4 | laforge | * RX (receive antenna for uplink) |
35 | * TX (transmit antenna for downlink) |
||
36 | * NWL (network listen, a special mode where the BTS behaves like a MS to receive other BTSs) |
||
37 | * AUX (once again only used for stacking, see [[nanoBTSmultiTRX]]) |
||
38 | 1 | laforge | |
39 | RX and TX should each be connected to an antenna, either the small factory-supplied antennas, or some larger antenna or even an RF distribution |
||
40 | system or an external LNA + PA + Duplexer kit. |
||
41 | 2 | laforge | |
42 | 4 | laforge | *Do not power up the device without a TX antenna* |
43 | 3 | laforge | |
44 | 2 | laforge | |
45 | 4 | laforge | h2. Software configuration |
46 | |||
47 | |||
48 | 2 | laforge | The nanoBTS has a number of parameters that are stored in NVRAM. Those essential parameters are required for the nanoBTS to know how to |
49 | 3 | laforge | use the network and to which BSC to connect. All other operational parameters are volatile and configured after booting from the BSC |
50 | 2 | laforge | through A-bis/IP by means of the GSM TS 12.21 SET ATTRIBUTE messages. |
51 | |||
52 | 1 | laforge | |
53 | 4 | laforge | h3. Network configuration |
54 | |||
55 | |||
56 | 2 | laforge | The nanoBTS can either be configured to use a static IP address (IPv4 address, netmask, default gateway) or to use DHCP. |
57 | 1 | laforge | |
58 | 4 | laforge | ip.access supplies some official tools for this purpose. [[OpenBSC]] contains the [[ipaccess-find]] and [[ipaccess-config]] utilities, |
59 | 1 | laforge | which implement a sub-set of the features. |
60 | |||
61 | The remainder of this presentation assumes that the nanoBTS is configured for use with DHCP. |
||
62 | |||
63 | 3 | laforge | In any case, after the unit has been attached to the Ethernet, other systems attached to the same Ethernet link-layer segment (broadcast domain) |
64 | 5 | neels | can use the [[abisip-find]] tool to identify the BTS attached to the network. This looks like: |
65 | 4 | laforge | <pre> |
66 | 5 | neels | $ openbsc/src/ipaccess/abisip-find |
67 | abisip-find (C) 2009 by Harald Welte |
||
68 | 2 | laforge | This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY |
69 | |||
70 | you might need to specify the outgoing |
||
71 | 5 | neels | network interface, e.g. ``openbsc/src/ipaccess/abisip-find eth0'' |
72 | 3 | laforge | Trying to find ip.access BTS by broadcast UDP... |
73 | 5 | neels | MAC_Address='00:02:95:07:08:09' IP_Address='192.168.100.193' Unit_ID='1800/0/0' Location_1='' Location_2='BTS_NBT131G' \ |
74 | Equipment_Version='165g029_79' Software_Version='168d402_v159b27d0' Unit_Name='nbts-00-02-95-07-08-09' Serial_Number='01234567' |
||
75 | 4 | laforge | </pre> |
76 | 2 | laforge | |
77 | As you can see, it prints the MAC and IP address information, as well as the serial number of the unit. |
||
78 | |||
79 | 4 | laforge | Most importantly, it also contains the so-called _Unit-ID_, which is a unique identifier for this unit inside the BSC area. A Unit ID is structured into three components, separated by '/'. |
80 | 2 | laforge | |
81 | |||
82 | 4 | laforge | h4. Setting the Unit ID |
83 | |||
84 | |||
85 | 2 | laforge | You can use [ipaccess-config] to set the Unit ID of the device like this: |
86 | 4 | laforge | <pre> |
87 | 2 | laforge | openbsc/src/ipaccess/ipaccess-config -u 1234/0/0 -r 192.168.100.193 |
88 | ipaccess-config (C) 2009-2010 by Harald Welte and others |
||
89 | 1 | laforge | This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY |
90 | 2 | laforge | |
91 | Trying to connect to ip.access BTS ... |
||
92 | <0005> abis_nm.c:398 OC=SITE-MANAGER(00) INST=(ff,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) |
||
93 | <0005> abis_nm.c:398 OC=BTS(01) INST=(00,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
94 | <0005> abis_nm.c:398 OC=BASEBAND-TRANSCEIVER(04) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
95 | 1 | laforge | OML link established using TRX 0 |
96 | setting Unit ID to '1234/0/0' |
||
97 | restarting BTS |
||
98 | 2 | laforge | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,00) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
99 | 1 | laforge | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,01) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
100 | 2 | laforge | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,02) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
101 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,03) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
102 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,04) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
103 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,05) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
104 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,06) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
105 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,07) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
106 | <0005> abis_nm.c:398 OC=RADIO-CARRIER(02) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
107 | <0005> abis_nm.c:398 OC=GPRS-NSE(f0) INST=(00,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
108 | <0005> abis_nm.c:398 OC=GPRS-CELL(f1) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
109 | <0005> abis_nm.c:398 OC=GPRS-NSVC(f2) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
110 | <0005> abis_nm.c:398 OC=GPRS-NSVC(f2) INST=(00,01,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
111 | <0005> abis_nm.c:398 OC=BASEBAND-TRANSCEIVER(04) INST=(00,00,ff) IPACCESS(0xf0): SET NVATTR ACK |
||
112 | Set the NV Attributes. |
||
113 | The BTS has acked the restart. Exiting. |
||
114 | 4 | laforge | </pre> |
115 | 2 | laforge | where 192.168.100.193 is the IP address of the BTS. |
116 | |||
117 | The BTS will re-start in order to use the new unit-id. You can again use [ipaccess-find] to verify the configuration. |
||
118 | Please note that the BTS restart can easily take some minutes. Wait until the LED is no longer in 'permanent orange on' mode. |
||
119 | |||
120 | |||
121 | 4 | laforge | h4. Setting the Primary OML address |
122 | |||
123 | |||
124 | 1 | laforge | The BTS needs to know the IP address of the BSC in order to be able to establish an Abis/IP link to it. This is what's |
125 | 2 | laforge | called the primary OML address. You can set it like this: |
126 | 4 | laforge | <pre> |
127 | 1 | laforge | $ ./ipaccess/ipaccess-config -o 192.168.100.11 192.168.100.193 |
128 | ipaccess-config (C) 2009-2010 by Harald Welte and others |
||
129 | This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY |
||
130 | 2 | laforge | |
131 | Trying to connect to ip.access BTS ... |
||
132 | <0005> abis_nm.c:398 OC=SITE-MANAGER(00) INST=(ff,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) |
||
133 | <0005> abis_nm.c:398 OC=BTS(01) INST=(00,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
134 | <0005> abis_nm.c:398 OC=BASEBAND-TRANSCEIVER(04) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
135 | OML link established using TRX 0 |
||
136 | setting primary OML link IP to '192.168.100.11' |
||
137 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,00) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
138 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,01) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
139 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,02) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
140 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,03) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
141 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,04) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
142 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,05) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
143 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,06) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
144 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,07) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
145 | <0005> abis_nm.c:398 OC=RADIO-CARRIER(02) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
146 | <0005> abis_nm.c:398 OC=GPRS-NSE(f0) INST=(00,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
147 | 1 | laforge | <0005> abis_nm.c:398 OC=GPRS-CELL(f1) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
148 | 2 | laforge | <0005> abis_nm.c:398 OC=GPRS-NSVC(f2) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
149 | <0005> abis_nm.c:398 OC=GPRS-NSVC(f2) INST=(00,01,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
150 | <0005> abis_nm.c:398 OC=BASEBAND-TRANSCEIVER(04) INST=(00,00,ff) IPACCESS(0xf0): SET NVATTR ACK |
||
151 | Set the NV Attributes. |
||
152 | 4 | laforge | </pre> |
153 | where _192.168.100.11_ is the IP address of your BSC, and _192.168.100.193_ is once again the IP address of the BTS itself. |
||
154 | 2 | laforge | |
155 | 3 | laforge | From this point on, the BTS should try to make TCP connections to 192.168.100.11 TCP Port 3002. You can verify this in |
156 | 2 | laforge | tcpdump or wireshark. |
157 | |||
158 | 4 | laforge | Once you start [[OpenBSC]] ([[osmo-nitb]] or [[osmo-bsc]] on the machine that owns the specified IP address (192.168.100.11 in the example above), |
159 | the BTS should connect to [[OpenBSC]] and you should see something like this in the [[OpenBSC]] log file: |
||
160 | <pre> |
||
161 | 1 | laforge | <000d> input/ipaccess.c:696 accept()ed new OML link from 192.168.100.193 |
162 | 4 | laforge | </pre> |