add GPS core
This commit is contained in:
parent
603ee58f25
commit
d452ea2f3f
|
@ -241,6 +241,40 @@ sudo npm i
|
|||
|
||||
|
||||
|
||||
|
||||
## GPS https://www.raspberrypi.org/forums/viewtopic.php?p=947968#p947968
|
||||
echo "========== Install GPS ============"
|
||||
sudo apt-get install gpsd gpsd-clients cmake subversion build-essential espeak freeglut3-dev imagemagick libdbus-1-dev libdbus-glib-1-dev libdevil-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libgarmin-dev libglc-dev libgps-dev libgtk2.0-dev libimlib2-dev libpq-dev libqt4-dev libqtwebkit-dev librsvg2-bin libsdl-image1.2-dev libspeechd-dev libxml2-dev ttf-liberation -y
|
||||
|
||||
sudo pip install pyserial
|
||||
|
||||
|
||||
echo "" >> /boot/config.txt
|
||||
echo "core_freq=250" >> /boot/config.txt
|
||||
echo "enable_uart=1" >> /boot/config.txt
|
||||
|
||||
echo "dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait" > /boot/cmdline.txt
|
||||
|
||||
|
||||
|
||||
# 3)Run
|
||||
sudo systemctl stop serial-getty@ttyS0.service
|
||||
sudo systemctl disable serial-getty@ttyS0.service
|
||||
sudo systemctl stop gpsd.socket
|
||||
sudo systemctl disable gpsd.socket
|
||||
|
||||
# reboot
|
||||
|
||||
# 5) Execute the daemon reset
|
||||
sudo killall gpsd
|
||||
sudo gpsd /dev/ttyS0 -F /var/run/gpsd.sock
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
echo "========== Downloading and installing OpenCV ============"
|
||||
cd /
|
||||
# git clone https://github.com/Itseez/opencv.git --depth 1
|
||||
|
|
388
stage2/01-sys-tweaks/02-I2S.sh
Executable file
388
stage2/01-sys-tweaks/02-I2S.sh
Executable file
|
@ -0,0 +1,388 @@
|
|||
#!/bin/bash
|
||||
|
||||
: <<'DISCLAIMER'
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
This script is licensed under the terms of the MIT license.
|
||||
Unless otherwise noted, code reproduced herein
|
||||
was written for this script.
|
||||
|
||||
- The Pimoroni Crew - (modified by Adafruit!)
|
||||
|
||||
DISCLAIMER
|
||||
|
||||
# script control variables
|
||||
|
||||
productname="i2s amplifier" # the name of the product to install
|
||||
scriptname="i2samp" # the name of this script
|
||||
spacereq=1 # minimum size required on root partition in MB
|
||||
debugmode="no" # whether the script should use debug routines
|
||||
debuguser="none" # optional test git user to use in debug mode
|
||||
debugpoint="none" # optional git repo branch or tag to checkout
|
||||
forcesudo="no" # whether the script requires to be ran with root privileges
|
||||
promptreboot="no" # whether the script should always prompt user to reboot
|
||||
mininstall="no" # whether the script enforces minimum install routine
|
||||
customcmd="yes" # whether to execute commands specified before exit
|
||||
armhfonly="yes" # whether the script is allowed to run on other arch
|
||||
armv6="yes" # whether armv6 processors are supported
|
||||
armv7="yes" # whether armv7 processors are supported
|
||||
armv8="yes" # whether armv8 processors are supported
|
||||
raspbianonly="no" # whether the script is allowed to run on other OSes
|
||||
osreleases=( "Raspbian" ) # list os-releases supported
|
||||
oswarning=( "Debian" "Kano" "Mate" "PiTop" "Ubuntu" ) # list experimental os-releases
|
||||
osdeny=( "Darwin" "Kali" ) # list os-releases specifically disallowed
|
||||
|
||||
FORCE=$1
|
||||
DEVICE_TREE=true
|
||||
ASK_TO_REBOOT=false
|
||||
CURRENT_SETTING=false
|
||||
UPDATE_DB=false
|
||||
|
||||
BOOTCMD=/boot/cmdline.txt
|
||||
CONFIG=/boot/config.txt
|
||||
APTSRC=/etc/apt/sources.list
|
||||
INITABCONF=/etc/inittab
|
||||
BLACKLIST=/etc/modprobe.d/raspi-blacklist.conf
|
||||
LOADMOD=/etc/modules
|
||||
DTBODIR=/boot/overlays
|
||||
|
||||
# function define
|
||||
|
||||
prompt() {
|
||||
read -r -p "$1 [y/N] " response < /dev/tty
|
||||
if [[ $response =~ ^(yes|y|Y)$ ]]; then
|
||||
true
|
||||
else
|
||||
false
|
||||
fi
|
||||
}
|
||||
|
||||
success() {
|
||||
echo -e "$(tput setaf 2)$1$(tput sgr0)"
|
||||
}
|
||||
|
||||
inform() {
|
||||
echo -e "$(tput setaf 6)$1$(tput sgr0)"
|
||||
}
|
||||
|
||||
warning() {
|
||||
echo -e "$(tput setaf 1)$1$(tput sgr0)"
|
||||
}
|
||||
|
||||
newline() {
|
||||
echo ""
|
||||
}
|
||||
|
||||
progress() {
|
||||
count=0
|
||||
until [ $count -eq $1 ]; do
|
||||
echo -n "..." && sleep 1
|
||||
((count++))
|
||||
done
|
||||
echo
|
||||
}
|
||||
sudocheck() {
|
||||
if [ $(id -u) -ne 0 ]; then
|
||||
echo -e "Install must be run as root. Try 'sudo ./$scriptname'\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
sysclean() {
|
||||
sudo apt-get clean && sudo apt-get autoclean
|
||||
sudo apt-get -y autoremove &> /dev/null
|
||||
}
|
||||
|
||||
sysupdate() {
|
||||
if ! $UPDATE_DB; then
|
||||
echo "Updating apt indexes..." && progress 3 &
|
||||
sudo apt-get update 1> /dev/null || { warning "Apt failed to update indexes!" && exit 1; }
|
||||
echo "Reading package lists..."
|
||||
progress 3 && UPDATE_DB=true
|
||||
fi
|
||||
}
|
||||
|
||||
sysupgrade() {
|
||||
sudo apt-get upgrade
|
||||
sudo apt-get clean && sudo apt-get autoclean
|
||||
sudo apt-get -y autoremove &> /dev/null
|
||||
}
|
||||
|
||||
sysreboot() {
|
||||
warning "Some changes made to your system require"
|
||||
warning "your computer to reboot to take effect."
|
||||
newline
|
||||
if prompt "Would you like to reboot now?"; then
|
||||
sync && sudo reboot
|
||||
fi
|
||||
}
|
||||
|
||||
arch_check() {
|
||||
IS_ARMHF=false
|
||||
IS_ARMv6=false
|
||||
|
||||
if uname -m | grep "armv.l" > /dev/null; then
|
||||
IS_ARMHF=true
|
||||
if uname -m | grep "armv6l" > /dev/null; then
|
||||
IS_ARMv6=true
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
os_check() {
|
||||
IS_RASPBIAN=false
|
||||
IS_MACOSX=false
|
||||
IS_SUPPORTED=false
|
||||
IS_EXPERIMENTAL=false
|
||||
|
||||
if [ -f /etc/os-release ]; then
|
||||
if cat /etc/os-release | grep "Raspbian" > /dev/null; then
|
||||
IS_RASPBIAN=true && IS_SUPPORTED=true
|
||||
fi
|
||||
if command -v apt-get > /dev/null; then
|
||||
for os in ${osreleases[@]}; do
|
||||
if cat /etc/os-release | grep $os > /dev/null; then
|
||||
IS_SUPPORTED=true && IS_EXPERIMENTAL=false
|
||||
fi
|
||||
done
|
||||
for os in ${oswarning[@]}; do
|
||||
if cat /etc/os-release | grep $os > /dev/null; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=true
|
||||
fi
|
||||
done
|
||||
for os in ${osdeny[@]}; do
|
||||
if cat /etc/os-release | grep $os > /dev/null; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=false
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
if [ -d ~/.kano-settings ] || [ -d ~/.kanoprofile ]; then
|
||||
IS_RASPBIAN=false
|
||||
for os in ${oswarning[@]}; do
|
||||
if [ $os == "Kano" ]; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=true
|
||||
fi
|
||||
done
|
||||
for os in ${osdeny[@]}; do
|
||||
if [ $os == "Kano" ]; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=false
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -f ~/.pt-dashboard-config ] || [ -d ~/.pt-dashboard ]; then
|
||||
IS_RASPBIAN=false
|
||||
for os in ${oswarning[@]}; do
|
||||
if [ $os == "PiTop" ]; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=true
|
||||
fi
|
||||
done
|
||||
for os in ${osdeny[@]}; do
|
||||
if [ $os == "PiTop" ]; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=false
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -d ~/.config/ubuntu-mate ]; then
|
||||
for os in ${osdeny[@]}; do
|
||||
if [ $os == "Mate" ]; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=false
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if uname -s | grep "Darwin" > /dev/null; then
|
||||
IS_MACOSX=true
|
||||
for os in ${osdeny[@]}; do
|
||||
if [ $os == "Darwin" ]; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=false
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
raspbian_check() {
|
||||
IS_SUPPORTED=false
|
||||
IS_EXPERIMENTAL=false
|
||||
|
||||
if [ -f /etc/os-release ]; then
|
||||
if cat /etc/os-release | grep "/sid" > /dev/null; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=true
|
||||
elif cat /etc/os-release | grep "stretch" > /dev/null; then
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=true
|
||||
elif cat /etc/os-release | grep "jessie" > /dev/null; then
|
||||
IS_SUPPORTED=true && IS_EXPERIMENTAL=false
|
||||
elif cat /etc/os-release | grep "wheezy" > /dev/null; then
|
||||
IS_SUPPORTED=true && IS_EXPERIMENTAL=false
|
||||
else
|
||||
IS_SUPPORTED=false && IS_EXPERIMENTAL=false
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
: <<'MAINSTART'
|
||||
|
||||
Perform all global variables declarations as well as function definition
|
||||
above this section for clarity, thanks!
|
||||
|
||||
MAINSTART
|
||||
|
||||
# checks and init
|
||||
|
||||
arch_check
|
||||
os_check
|
||||
|
||||
if [ $debugmode != "no" ]; then
|
||||
echo "USER_HOME is $USER_HOME" && newline
|
||||
echo "IS_RASPBIAN is $IS_RASPBIAN"
|
||||
echo "IS_MACOSX is $IS_MACOSX"
|
||||
echo "IS_SUPPORTED is $IS_SUPPORTED"
|
||||
echo "IS_EXPERIMENTAL is $IS_EXPERIMENTAL"
|
||||
newline
|
||||
fi
|
||||
|
||||
if ! $IS_ARMHF; then
|
||||
warning "This hardware is not supported, sorry!"
|
||||
warning "Config files have been left untouched"
|
||||
newline && exit 1
|
||||
fi
|
||||
|
||||
if $IS_ARMv8 && [ $armv8 == "no" ]; then
|
||||
warning "Sorry, your CPU is not supported by this installer"
|
||||
newline && exit 1
|
||||
elif $IS_ARMv7 && [ $armv7 == "no" ]; then
|
||||
warning "Sorry, your CPU is not supported by this installer"
|
||||
newline && exit 1
|
||||
elif $IS_ARMv6 && [ $armv6 == "no" ]; then
|
||||
warning "Sorry, your CPU is not supported by this installer"
|
||||
newline && exit 1
|
||||
fi
|
||||
|
||||
if [ $raspbianonly == "yes" ] && ! $IS_RASPBIAN;then
|
||||
warning "This script is intended for Raspbian on a Raspberry Pi!"
|
||||
newline && exit 1
|
||||
fi
|
||||
|
||||
if $IS_RASPBIAN; then
|
||||
raspbian_check
|
||||
if ! $IS_SUPPORTED && ! $IS_EXPERIMENTAL; then
|
||||
newline && warning "--- Warning ---" && newline
|
||||
echo "The $productname installer"
|
||||
echo "does not work on this version of Raspbian."
|
||||
echo "Check https://github.com/$gitusername/$gitreponame"
|
||||
echo "for additional information and support"
|
||||
newline && exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! $IS_SUPPORTED && ! $IS_EXPERIMENTAL; then
|
||||
warning "Your operating system is not supported, sorry!"
|
||||
newline && exit 1
|
||||
fi
|
||||
|
||||
if $IS_EXPERIMENTAL; then
|
||||
warning "Support for your operating system is experimental. Please visit"
|
||||
warning "forums.adafruit.com if you experience issues with this product."
|
||||
newline
|
||||
fi
|
||||
|
||||
if [ $forcesudo == "yes" ]; then
|
||||
sudocheck
|
||||
fi
|
||||
|
||||
newline
|
||||
echo "This script will install everything needed to use"
|
||||
echo "$productname"
|
||||
newline
|
||||
|
||||
newline
|
||||
echo "Checking hardware requirements..."
|
||||
|
||||
if [ -e $CONFIG ] && grep -q "^device_tree=$" $CONFIG; then
|
||||
DEVICE_TREE=false
|
||||
fi
|
||||
|
||||
if $DEVICE_TREE; then
|
||||
|
||||
newline
|
||||
echo "Adding Device Tree Entry to $CONFIG"
|
||||
|
||||
if [ -e $CONFIG ] && grep -q "^dtoverlay=hifiberry-dac$" $CONFIG; then
|
||||
echo "dtoverlay already active"
|
||||
else
|
||||
echo "dtoverlay=hifiberry-dac" | sudo tee -a $CONFIG
|
||||
ASK_TO_REBOOT=true
|
||||
fi
|
||||
|
||||
if [ -e $BLACKLIST ]; then
|
||||
newline
|
||||
echo "Commenting out Blacklist entry in "
|
||||
echo "$BLACKLIST"
|
||||
sudo sed -i -e "s|^blacklist[[:space:]]*i2c-bcm2708.*|#blacklist i2c-bcm2708|" \
|
||||
-e "s|^blacklist[[:space:]]*snd-soc-pcm512x.*|#blacklist snd-soc-pcm512x|" \
|
||||
-e "s|^blacklist[[:space:]]*snd-soc-wm8804.*|#blacklist snd-soc-wm8804|" $BLACKLIST &> /dev/null
|
||||
fi
|
||||
else
|
||||
newline
|
||||
echo "No Device Tree Detected, not supported"
|
||||
newline
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -e $CONFIG ] && grep -q -E "^dtparam=audio=on$" $CONFIG; then
|
||||
bcm2835off="no"
|
||||
newline
|
||||
echo "Disabling default sound driver"
|
||||
sudo sed -i "s|^dtparam=audio=on$|#dtparam=audio=on|" $CONFIG &> /dev/null
|
||||
if [ -e $LOADMOD ] && grep -q "^snd-bcm2835" $LOADMOD; then
|
||||
sudo sed -i "s|^snd-bcm2835|#snd-bcm2835|" $LOADMOD &> /dev/null
|
||||
fi
|
||||
ASK_TO_REBOOT=true
|
||||
elif [ -e $LOADMOD ] && grep -q "^snd-bcm2835" $LOADMOD; then
|
||||
bcm2835off="no"
|
||||
newline
|
||||
echo "Disabling default sound module"
|
||||
sudo sed -i "s|^snd-bcm2835|#snd-bcm2835|" $LOADMOD &> /dev/null
|
||||
ASK_TO_REBOOT=true
|
||||
else
|
||||
newline
|
||||
echo "Default sound driver currently not loaded"
|
||||
bcm2835off="yes"
|
||||
fi
|
||||
|
||||
echo "Configuring sound output"
|
||||
if [ -e /etc/asound.conf ]; then
|
||||
if [ -e /etc/asound.conf.old ]; then
|
||||
sudo rm -f /etc/asound.conf.old
|
||||
fi
|
||||
sudo mv /etc/asound.conf /etc/asound.conf.old
|
||||
fi
|
||||
sudo echo -e "pcm.\041default {\n type hw\n card 0\n}" > ~/asound.conf
|
||||
sudo echo -e "ctl.\041default {\n type hw\n card 0\n}" >> ~/asound.conf
|
||||
sudo mv ~/asound.conf /etc/asound.conf
|
||||
|
||||
if [ $bcm2835off == "yes" ]; then
|
||||
newline
|
||||
echo "We can now test your $productname"
|
||||
warning "Set your speakers at a low volume!"
|
||||
if confirm "Do you wish to test your system now?"; then
|
||||
echo "Testing..."
|
||||
speaker-test -l5 -c2 -t wav
|
||||
fi
|
||||
fi
|
||||
newline
|
||||
success "All done!"
|
||||
newline
|
||||
echo "Enjoy your new $productname!"
|
||||
newline
|
||||
|
||||
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user