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 ============"
|
echo "========== Downloading and installing OpenCV ============"
|
||||||
cd /
|
cd /
|
||||||
# git clone https://github.com/Itseez/opencv.git --depth 1
|
# 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