-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRadioTracking.Pifile
129 lines (103 loc) · 2.9 KB
/
RadioTracking.Pifile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
FROM Sensorbox.img
PUMP 500M
RUN apt-get update
INSTALL RadioTracking /
RUN apt-get install -y --no-install-recommends\
build-essential \
cmake \
pkg-config \
ca-certificates \
sox \
socat \
libusb-1.0-0-dev \
libsox-fmt-mp3 \
libfftw3-dev \
libtclap-dev
RUN tee -a /etc/modprobe.d/raspi-blacklist.conf <<<'blacklist dvb_usb_rtl28xxu'
# Install rtl-sdr
RUN apt-get install -y \
autotools-dev \
autoconf \
automake \
default-libmysqlclient-dev \
mariadb-server
RUN bash <<EOF
cd /home/pi/liquid-dsp
./bootstrap.sh
./configure
make -j `nproc`
make install
ldconfig
EOF
RUN bash <<EOF
mkdir -p /home/pi/rtl-sdr/build
cd /home/pi/rtl-sdr/build
cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
make -j `nproc`
make install
ldconfig
EOF
# Install rtl-power-fftw
RUN bash <<EOF
mkdir /home/pi/rtl-power-fftw/build
cd /home/pi/rtl-power-fftw/build
cmake ../
make -j `nproc`
make install
EOF
RUN bash <<EOF
cd /home/pi/rtlsdr_signal_detect
make -j `nproc`
make install
EOF
# Enable RadioTracking services
RUN systemctl enable mariadb
RUN systemctl enable signal_detect
# Enable logdump services
RUN systemctl enable logdump@mariadb
RUN systemctl enable logdump@signal_detect
# Enable sysdweb managing
RUN tee -a /etc/sysdweb.conf <<EOF
[mariadb]
title = MariaDB Database
unit = mariadb
[signal_detect]
title = Radio Tracking
unit = signal_detect
EOF
# Initialized database
RUN service mysql start
RUN mysql <<EOF
# configure secure root user
UPDATE mysql.user SET Password=PASSWORD('natur') WHERE User='root';
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
# remove test databases
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE db='test' OR db='test\\_%';
# create local user for insertion
CREATE USER IF NOT EXISTS rteu@localhost IDENTIFIED BY 'rteu';
GRANT CREATE ON rteu.* TO rteu@localhost;
GRANT INSERT ON rteu.* TO rteu@localhost;
# create remote user
CREATE USER IF NOT EXISTS pi@'%' IDENTIFIED BY 'natur';
GRANT SELECT ON rteu.* TO pi@'%';
FLUSH PRIVILEGES;
EOF
RUN service mysql stop
# allow mysql to shutdown
RUN sleep 10
# Listen on all interfaces (mariadb)
RUN sed -i 's/bind-address.*=.*127.0.0.1/bind-address = 0.0.0.0/g' /etc/mysql/mariadb.conf.d/50-server.cnf
# Enabling wait for time-sync.target (depending services will not start before the clock is synced)
RUN systemctl enable systemd-time-wait-sync.service
# Enable signal_detect_restart timer
RUN systemctl enable signal_detect_restart.timer
# install go if not present
HOST bash -c "go version || apt-get install -y golang git"
# Compile and install rtlsdr_fcu
HOST bash <<EOF
cd RadioTracking/home/pi/rtlsdr_fcu/
GOOS=linux GOARCH=arm GOARM=7 go build
EOF
INSTALL RadioTracking/home/pi/rtlsdr_fcu/rtlsdr_fcu /usr/local/bin/