-
Notifications
You must be signed in to change notification settings - Fork 1
/
script.sh
143 lines (115 loc) · 6.78 KB
/
script.sh
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#!/bin/bash -e
# Check if script is being run with sudo
if [ "$(id -u)" != 0 ]; then
echo 'This script must be run as sudo or as root!'
exit 1
fi
# TODO Maybe verify the changes/add some basic error handling
echo ''
echo '================================================================================'
echo '| |'
echo '| Glacier Camera Software Installation Script |'
echo '| |'
echo '| Step 1: Update the Raspberry Pi and install required packages |'
echo '| |'
echo '================================================================================'
echo ''
# Install required packages
PACKAGES="minicom p7zip-full python3-pip ufw" # picamera2 is preinstalled
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y $PACKAGES
sudo apt-get autoremove -y
# Install required Python packages
sudo pip3 install pyserial pyyaml suntime==1.3.2
echo ''
echo '================================================================================'
echo '| |'
echo '| Step 2: Install Waveshare SIM7600G-H 4G/LTE HAT driver |'
echo '| |'
echo '================================================================================'
echo ''
# Install Waveshare SIM7600G-H 4G/LTE HAT driver
# See: https://core-electronics.com.au/guides/raspberry-pi/raspberry-pi-4g-gps-hat/ (slightly modified to work with the (B) version)
sudo raspi-config nonint do_serial 2 # Enable serial port communication
wget "https://www.waveshare.com/w/upload/4/4e/SIM7600X-4G-HAT(B)-Demo.7z" -P /tmp # Download SIm-7600G-H code
7z x /tmp/SIM7600X-4G-HAT\(B\)-Demo.7z -o/home/pi/ # Unzip code
mv /home/pi/SIM7600X-4G-HAT\(B\)-Demo /home/pi/SIM7600X-4G-HAT-B-Demo # Rename folder to remove brackets which cause issues
sudo chmod 777 -R /home/pi/SIM7600X-4G-HAT-B-Demo # Make code executable
# This part is not needed, because the (B) version does not use the GPIO pins for communication
# As this also interferes with GPIO 4, it has been disabled
# sudo sed -i '$i sh /home/pi/SIM7600X-4G-HAT-B-Demo/Raspberry/c/sim7600_4G_hat_init &' /etc/rc.local
cd /home/pi/SIM7600X-4G-HAT-B-Demo/Raspberry/c/bcm2835
chmod +x configure && ./configure && make && sudo make install
# TODO Maybe delete no longer deleted install files
echo ''
echo '================================================================================'
echo '| |'
echo '| Step 2: Download Python scripts |'
echo '| |'
echo '================================================================================'
# Download python script to /home/pi
wget -O /home/pi/main.py https://raw.githubusercontent.com/Eagleshot/GlacierCam/main/main.py
sudo chmod 777 /home/pi/main.py # Execution permissions
# Download modules
wget -O /home/pi/sim7600x.py https://raw.githubusercontent.com/Eagleshot/GlacierCam/main/sim7600x.py
wget -O /home/pi/witty_pi_4.py https://raw.githubusercontent.com/Eagleshot/GlacierCam/main/witty_pi_4.py
wget -O /home/pi/settings.py https://raw.githubusercontent.com/Eagleshot/GlacierCam/main/settings.py
wget -O /home/pi/fileserver.py https://raw.githubusercontent.com/Eagleshot/GlacierCam/main/fileserver.py
wget -O /home/pi/data.py https://raw.githubusercontent.com/Eagleshot/GlacierCam/main/data.py
# Download config and settings
wget -O /home/pi/config.yaml https://raw.githubusercontent.com/Eagleshot/GlacierCam/main/config.yaml
wget -O /home/pi/settings.yaml https://raw.githubusercontent.com/Eagleshot/GlacierCam/main/settings.yaml
echo ''
echo '================================================================================'
echo '| |'
echo '| Step 3: Configure Raspberry Pi |'
echo '| |'
echo '================================================================================'
echo ''
# Set the timezone to UTC
sudo timedatectl set-timezone UTC
# See: https://www.raspberrypi.com/documentation/computers/configuration.html
# Enable camera and other hardware interfaces
sudo raspi-config nonint do_camera 0
# I2C should already activated by WittyPi script
sudo raspi-config nonint do_i2c 0
# Disable 1-wire interface
sudo raspi-config nonint do_onewire 1
# Disable LED and other unused hardware
echo "boot_delay=0" | sudo tee -a /boot/config.txt
echo "disable_splash=1" | sudo tee -a /boot/config.txt
# echo "dtparam=act_led_trigger=none" | sudo tee -a /boot/config.txt
# echo "dtoverlay=disable-wifi" | sudo tee -a /boot/config.txt
# Add quiet flag to cmdline.txt to mute boot messages
# sudo sed -i 's/$/ quiet/' /boot/cmdline.txt
# Change the DNS server to Cloudflare and Google
echo "static domain_name_servers=1.1.1.1 8.8.8.8" | sudo tee -a /etc/dhcpcd.conf
# Enable the firewall
sudo ufw enable
# echo ''
# echo '================================================================================'
# echo '| |'
# echo '| Step 5: Install WittyPi Software |'
# echo '| |'
# echo '================================================================================'
# This was disabled, because it currently doesn't work because of permission
# TODO Maybe reenable in the future, once the root cause is found
# Install WittyPi Software
# UWI installation is disabled in this script, because it's not needed
# See: https://www.uugear.com/product/witty-pi-4-mini/
# cd /home/pi
# wget https://raw.githubusercontent.com/Eagleshot/Witty-Pi-4/main/Software/install.sh
# sudo sh install.sh
echo ''
echo '================================================================================'
echo '| |'
echo '| Glacier Camera Software Installation Completed! :) |'
echo '| Rebooting in 5 seconds... |'
echo '| |'
echo '================================================================================'
echo ''
# TODO Maybe add some nice ASCII art
# Reboot to apply changes
sleep 5
sudo reboot