@@ -5,9 +5,32 @@ nics="$*"
5
5
auto_nics=0
6
6
release=master
7
7
8
+ if [ $( id -u) != " 0" ]
9
+ then
10
+ echo " Root access is required. Run: sudo $0 $* "
11
+ exit 1
12
+ fi
13
+
14
+ err_handler ()
15
+ {
16
+ echo " WFB-ng setup failed"
17
+ exit 1
18
+ }
19
+
20
+ wfb_nics ()
21
+ {
22
+ for i in $( find /sys/class/net/ -maxdepth 1 -type l | sort)
23
+ do
24
+ if udevadm info $i | grep -qE ' ID_NET_DRIVER=(rtl88xxau_wfb|rtl88x2eu)'
25
+ then
26
+ echo $( basename $i )
27
+ fi
28
+ done
29
+ }
30
+
8
31
if [ -z " $nics " ]
9
32
then
10
- nics=" $( $( dirname $0 ) /wfb-nics ) "
33
+ nics=" $( wfb_nics ) "
11
34
auto_nics=1
12
35
fi
13
36
19
42
exit 1
20
43
fi
21
44
45
+ trap err_handler ERR
46
+
22
47
# Try to install prebuilt packages from wfb-ng apt repository
23
48
24
- curl -s https://apt.wfb-ng.org/public.asc | sudo gpg --dearmor --yes -o /usr/share/keyrings/wfb-ng.gpg
25
- echo " deb [signed-by=/usr/share/keyrings/wfb-ng.gpg] https://apt.wfb-ng.org/ $( lsb_release -cs) $release " | sudo tee /etc/apt/sources.list.d/wfb-ng.list
26
- sudo apt update
49
+ curl -s https://apt.wfb-ng.org/public.asc | gpg --dearmor --yes -o /usr/share/keyrings/wfb-ng.gpg
50
+ echo " deb [signed-by=/usr/share/keyrings/wfb-ng.gpg] https://apt.wfb-ng.org/ $( lsb_release -cs) $release " > /etc/apt/sources.list.d/wfb-ng.list
27
51
28
- if ! sudo apt -y install wfb-ng
52
+ if ! apt update
53
+ then
54
+ rm -f /etc/apt/sources.list.d/wfb-ng.list /usr/share/keyrings/wfb-ng.gpg
55
+ apt update
56
+ fi
57
+
58
+ if ! apt -y install wfb-ng
29
59
then
30
60
# Install required packages for wfb-ng source build
31
61
32
62
apt -y install python3-all python3-all-dev libpcap-dev libsodium-dev libevent-dev python3-pip python3-pyroute2 python3-msgpack \
33
63
python3-future python3-twisted python3-serial python3-jinja2 iw virtualenv debhelper dh-python fakeroot build-essential \
34
- libgstrtspserver-1.0-dev
64
+ libgstrtspserver-1.0-dev socat git
35
65
36
66
tmpdir=" $( mktemp -d) "
37
67
git clone -b $release --depth 1 https://github.com/svpcom/wfb-ng.git " $tmpdir "
38
68
39
- (cd " $tmpdir " && make deb && sudo apt -y install ./deb_dist/* .deb)
69
+ (cd " $tmpdir " && make deb && apt -y install ./deb_dist/* .deb)
40
70
rm -rf " $tmpdir "
41
71
fi
42
72
52
82
fi
53
83
54
84
# Setup config
55
- cat << EOF >> /etc/wifibroadcast.cfg
85
+ cat << EOF > /etc/wifibroadcast.cfg
56
86
[common]
57
87
wifi_channel = 165 # 165 -- radio channel @5825 MHz, range: 5815–5835 MHz, width 20MHz
58
88
# 1 -- radio channel @2412 Mhz,
@@ -82,9 +112,41 @@ options 8812eu rtw_tx_pwr_by_rate=0 rtw_tx_pwr_lmt_enable=0
82
112
EOF
83
113
84
114
if [ -f /etc/dhcpcd.conf ]; then
85
- echo " denyinterfaces $( nics) " >> /etc/dhcpcd.conf
115
+ echo " denyinterfaces $nics " >> /etc/dhcpcd.conf
86
116
fi
87
117
118
+ cat > /etc/motd << __EOF__
119
+ WFB-ng: http://wfb-ng.org
120
+ Setup HOWTO: https://github.com/svpcom/wfb-ng/wiki/Setup-HOWTO
121
+ Community chat: (wfb-ng support) https://t.me/wfb_ng
122
+
123
+ Version: $release
124
+
125
+ Quickstart (x86 laptop):
126
+ 1. Run "wfb-cli gs" to monitor link state
127
+ 2. Run QGroundControl
128
+
129
+ Quickstart (SBC + RTP video):
130
+ 1. Run "wfb-cli gs" to monitor link state
131
+ 2. Edit /etc/wifibroadcast.cfg and in section [gs_video] set peer to ip address of your laptop with QGC
132
+ 3. Edit /etc/wifibroadcast.cfg and in section [gs_mavlink] set peer to ip address of your laptop with QGC
133
+ 4. Reboot SBC.
134
+ 5. Run QGroundControl on your laptop
135
+
136
+ Quickstart (SBC + RTSP video):
137
+ 1. Run "wfb-cli gs" to monitor link state
138
+ 2. Run "sudo systemctl enable rtsp@h264" or "sudo systemctl enable rtsp@h265" (according to your video codec)
139
+ 3. Edit /etc/wifibroadcast.cfg and in section [gs_mavlink] set peer to ip address of your laptop with QGC
140
+ 4. Reboot SBC.
141
+ 5. Run QGroundControl on your laptop. Set video QGC source to rtsp://x.x.x.x:8554/wfb , where x.x.x.x is GS IP address.
142
+ 6. (optional) Run any other RTSP video player(s) for rtsp://x.x.x.x:8554/wfb
143
+
144
+ To set TX power edit /etc/modprobe.d/wfb.conf and reboot.
145
+
146
+ In case of any failures check "sudo systemctl status wifibroadcast@gs" service status.
147
+ See full logs via: "sudo journalctl -xu wifibroadcast@gs"
148
+ __EOF__
149
+
88
150
# Start gs service
89
151
systemctl daemon-reload
90
152
systemctl start wifibroadcast@gs
0 commit comments