blob: 3b4d2024f50869eaa24444f94d0e3993a3b01c7b [file] [log] [blame]
Neels Hofmeyrac45a222017-04-14 04:18:21 +02001DOCUMENTATION
2
3For the complete documentation, please refer to the osmo-gsm-manuals:
4http://git.osmocom.org/osmo-gsm-manuals/
5http://jenkins.osmocom.org/jenkins/job/Osmocom_Manuals/ws/
6
7
Neels Hofmeyrdae3d3c2017-03-28 12:16:58 +02008INSTALLATION
9
10So far the osmo-gsm-tester directory is manually placed in /usr/local/src
11
12
13DEPENDENCIES
14
15Packages required to run the osmo-gsm-tester:
16
Neels Hofmeyrfeb56c02017-05-10 13:20:55 +020017 apt-get install \
18 dbus \
19 tcpdump \
Neels Hofmeyr798e5922017-05-18 15:24:02 +020020 sqlite3 \
Neels Hofmeyrfeb56c02017-05-10 13:20:55 +020021 python3 \
22 python3-yaml \
23 python3-mako \
24 python3-gi \
25 ofono \
Holger Hans Peter Freyther3c2dd3e2019-02-19 09:34:09 +000026 python3-pip \
27 python3-usb
Neels Hofmeyrfeb56c02017-05-10 13:20:55 +020028 pip3 install git+git://github.com/podshumok/python-smpplib.git
29 pip3 install pydbus
Holger Hans Peter Freyther3c2dd3e2019-02-19 09:34:09 +000030 pip3 install pysispm
Neels Hofmeyrdae3d3c2017-03-28 12:16:58 +020031
32To build ofono:
Neels Hofmeyrfeb56c02017-05-10 13:20:55 +020033 apt-get install libglib2.0-dev \
34 libdbus-1-dev \
35 libudev-dev \
36 mobile-broadband-provider-info
Neels Hofmeyrdae3d3c2017-03-28 12:16:58 +020037
38
39INSTALLATION
40
41Place a copy of the osmo-gsm-tester repository in /usr/local/src/
42
43 cp install/osmo-gsm-tester-limits.conf /etc/security/limits.d/
44 cp install/*.service /lib/systemd/system/
45 cp install/org.ofono.conf /etc/dbus-1/system.d/
46 systemctl daemon-reload
47
48To run:
49
50 systemctl enable ofono
51 systemctl start ofono
52 systemctl status ofono
53
54 systemctl enable osmo-gsm-tester
55 systemctl start osmo-gsm-tester
56 systemctl status osmo-gsm-tester
57
58
59To stop:
60
61 systemctl stop osmo-gsm-tester
62
63After ofonod has been started and modems have been connected to the system,
64you can run the 'list-modems' script located in /usr/local/src/ofono/test to get
65a list of the modems that have been detected by ofono.
66
67
68CONFIGURATION
69
70Host System configuration
71
72Create the /var/tmp/osmo-gsm-tester directory. It will be used to accept new test jobs.
73
74Test resources (NITB, BTS and modems) are currently configured in the test_manager.py.
75
76For every nitb resource that can be allocated, one alias IP address needs
77to be set up in /etc/network/interfaces on the interface that is connected to the BTSes.
78By add the following lines for each nitb instance that can be allocated (while making
79sure each interface alias and IP is unique)
80
81 auto eth1:0
82 allow-hotplug eth1:0
83 iface eth1:0 inet static
84 address 10.42.42.2
85 netmask 255.255.255.0
86
87Also make sure, the user executing the tester is allowed to run tcpdump. If
88the user is not root, we have used the folloing line to get proper permissions:
89
90 groupadd pcap
91 addgroup <your-user-name> pcap
92 setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
93 chgroup pcap /usr/sbin/tcpdump
94 chmod 0750 /usr/sbin/tcpdump
95
96The tester main unit must be able to ssh without password to the sysmobts (and
97possibly other) hardware: place the main unit's public SSH key on the sysmoBTS.
98Log in via SSH at least once to accept the BTS' host key.
99
100
Neels Hofmeyrcceb0f52017-05-10 16:46:26 +0200101Jenkins Configuration
102
103(TODO: jenkins build slave details)
104
105When adding an entry to jenkins' known_hosts file, be aware that you need to
106add an actual RSA host key. Using 'ssh' to access the main unit may work, but
107jenkins will still fail to access it in the absence of a full RSA host key:
108
109 ssh-keyscan -H $my_main_unit_ip_addr >> ~jenkins/.ssh/known_hosts
110
111
Neels Hofmeyrdae3d3c2017-03-28 12:16:58 +0200112LAUNCHING A TEST RUN
113
114osmo-gsm-tester watches /var/tmp/osmo-gsm-tester for instructions to launch
115test runs. A test run is triggered by a subdirectory containing binaries and a
Neels Hofmeyr3531a192017-03-28 14:30:28 +0200116checksums file, typically created by jenkins using the scripts in contrib/.