remove i2S
This commit is contained in:
		
							parent
							
								
									9bb2ed9537
								
							
						
					
					
						commit
						8ef52117e3
					
				|  | @ -1,388 +0,0 @@ | |||
| #!/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