diff --git a/install b/install index 69317527..39f769f2 100755 --- a/install +++ b/install @@ -2,19 +2,218 @@ echo -e "\ninstallation script for CubeSatSim v2.2\n" - if [[ $(grep '12.' /etc/debian_version) ]]; then - echo "Installing on Debian 12 (Bookworm)" - else - echo "The OS is not Debian 12 (Bookworm)!" - echo "Installation is not likely to work." - echo "It is recommended you start with" - echo "Bookworm as your OS." - echo - sleep 10 + if [[ $(grep '11.' /etc/debian_version) ]]; then + echo "Installing on Debian 11 (Bullseye)" + + sudo cp /boot/config.txt /boot/config.txt.0 + + sudo cp /boot/cmdline.txt /boot/cmdline.txt.0 + + + sudo raspi-config nonint do_i2c 0 + + sudo raspi-config nonint do_camera 0 + + sudo raspi-config nonint do_legacy 0 + + #if [ "$1" = "u" ]; then + #fi + + ## sudo sed -i 's/console=serial0,115200 //g' /boot/cmdline.txt + + + sudo sed -i 's/console=serial0,115200 //g' /boot/cmdline.txt + + sudo sed -i 's/console=tty1 r/console=tty1 maxcpus=1 r/g' /boot/cmdline.txt # single core if Pi Zero 2 + + sudo sed -i 's/maxcpus=2/maxcpus=1/g' /boot/cmdline.txt # single core if Pi Zero 2 + + sudo sed -i 's/#dtparam=i2c_arm=on/dtparam=i2c_arm=on/g' /boot/config.txt + + if [[ $(grep 'dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24' /boot/config.txt) ]]; then + echo "dtoverlay=i2c-gpio already in /boot/config.txt" + else + echo "adding dtoverlay=i2c-gpio to /boot/config.txt" + sudo sh -c 'echo "\ndtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24" >> /boot/config.txt' + fi + + if [[ $(grep 'enable_uart=1' /boot/config.txt) ]]; then + echo "enable_uart=1 already in /boot/config.txt" + else + echo "adding enable_uart=1 to /boot/config.txt" + sudo sh -c 'echo "\nenable_uart=1" >> /boot/config.txt' + fi + + if [[ $(grep 'dtoverlay=disable-bt' /boot/config.txt) ]]; then + echo "dtoverlay=disable-bt already in /boot/config.txt" + else + echo "adding dtoverlay=disable-bt to /boot/config.txt" + sudo sh -c 'echo "\ndtoverlay=disable-bt" >> /boot/config.txt' + fi + + if [[ $(grep 'dtoverlay=dwc2' /boot/config.txt) ]]; then + echo "dtoverlay=dwc2 aalready in /boot/config.txt" + else + echo "adding dtoverlay=dwc2 to /boot/config.txt" + sudo sh -c 'echo "\ndtoverlay=dwc2" >> /boot/config.txt' + fi + + if [[ $(grep 'modules-load=dwc2,g_ether' /boot/cmdline.txt) ]]; then + echo "modules-load=dwc2,g_ether already in /boot/cmdline.txt" + else + echo "adding modules-load=dwc2,g_ether to /boot/cmdline.txt" + sudo sed -i 's/ rootwait/ rootwait modules-load=dwc2,g_ether/g' /boot/cmdline.txt + fi + + if [[ $(grep 'dtparam=audio=on' /boot/config.txt) ]]; then + echo "dtparam=audio=on already in /boot/config.txt" + else + echo "adding dtparam=audio=on to /boot/config.txt" + sudo sh -c 'echo "\ndtparam=audio=on" >> /boot/config.txt' + fi + + if [[ $(grep 'dtoverlay=audremap,enable_jack=on' /boot/config.txt) ]]; then + echo "dtoverlay=audremap,enable_jack=on already in /boot/config.txt" + else + echo "adding dtoverlay=audremap,enable_jack=on to /boot/config.txt" + sudo sh -c 'echo "\ndtoverlay=audremap,enable_jack=on" >> /boot/config.txt' + fi + + if [[ $(grep 'dtoverlay=pwm,pin=18,func=2' /boot/config.txt) ]]; then + echo "dtoverlay=pwm,pin=18,func=2 already in /boot/config.txt" + else + echo "adding to /boot/config.txt" + sudo sh -c 'echo "\ndtoverlay=pwm,pin=18,func=2" >> /boot/config.txt' + fi + + if [[ $(grep 'disable_splash=1 ' /boot/config.txt) ]]; then + echo "disable_splash=1 already in /boot/config.txt" + else + echo "adding to /boot/config.txt" + sudo sh -c 'echo "\ndisable_splash=1" >> /boot/config.txt' + fi + + if [[ $(grep 'boot_delay=0' /boot/config.txt) ]]; then + echo "boot_delay=0 already in /boot/config.txt" + else + echo "adding to /boot/config.txt" + sudo sh -c 'echo "\nboot_delay=0" >> /boot/config.txt' + fi + + if ! grep -q force_turbo=1 /boot/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/config.txt'; fi + + sudo sh -c 'echo "\n" >> /boot/config.txt' fi if [[ $(grep 'bookworm' /etc/os-release) ]]; then echo "Bookworm detected, installation continuing." + + sudo cp /boot/firmware/config.txt /boot/firmware/config.txt.0 + + sudo cp /boot/firmware/cmdline.txt /boot/firmware/cmdline.txt.0 + + + sudo raspi-config nonint do_i2c 0 + + sudo raspi-config nonint do_camera 0 + + sudo raspi-config nonint do_legacy 0 + + #if [ "$1" = "u" ]; then + #fi + + ## sudo sed -i 's/console=serial0,115200 //g' /boot/firmware/cmdline.txt + + + sudo sed -i 's/console=serial0,115200 //g' /boot/firmware/cmdline.txt + + sudo sed -i 's/console=tty1 r/console=tty1 maxcpus=1 r/g' /boot/firmware/cmdline.txt # single core if Pi Zero 2 + + sudo sed -i 's/maxcpus=2/maxcpus=1/g' /boot/firmware/cmdline.txt # single core if Pi Zero 2 + + sudo sed -i 's/#dtparam=i2c_arm=on/dtparam=i2c_arm=on/g' /boot/firmware/config.txt + + if [[ $(grep 'dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24' /boot/firmware/config.txt) ]]; then + echo "dtoverlay=i2c-gpio already in /boot/firmware/config.txt" + else + echo "adding dtoverlay=i2c-gpio to /boot/firmware/config.txt" + sudo sh -c 'echo "\ndtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24" >> /boot/firmware/config.txt' + fi + + if [[ $(grep 'enable_uart=1' /boot/firmware/config.txt) ]]; then + echo "enable_uart=1 already in /boot/firmware/config.txt" + else + echo "adding enable_uart=1 to /boot/firmware/config.txt" + sudo sh -c 'echo "\nenable_uart=1" >> /boot/firmware/config.txt' + fi + + if [[ $(grep 'dtoverlay=disable-bt' /boot/firmware/config.txt) ]]; then + echo "dtoverlay=disable-bt already in /boot/firmware/config.txt" + else + echo "adding dtoverlay=disable-bt to /boot/firmware/config.txt" + sudo sh -c 'echo "\ndtoverlay=disable-bt" >> /boot/firmware/config.txt' + fi + + if [[ $(grep 'dtoverlay=dwc2' /boot/firmware/config.txt) ]]; then + echo "dtoverlay=dwc2 aalready in /boot/firmware/config.txt" + else + echo "adding dtoverlay=dwc2 to /boot/firmware/config.txt" + sudo sh -c 'echo "\ndtoverlay=dwc2" >> /boot/firmware/config.txt' + fi + + if [[ $(grep 'modules-load=dwc2,g_ether' /boot/firmware/cmdline.txt) ]]; then + echo "modules-load=dwc2,g_ether already in /boot/firmware/cmdline.txt" + else + echo "adding modules-load=dwc2,g_ether to /boot/firmware/cmdline.txt" + sudo sed -i 's/ rootwait/ rootwait modules-load=dwc2,g_ether/g' /boot/firmware/cmdline.txt + fi + + if [[ $(grep 'dtparam=audio=on' /boot/firmware/config.txt) ]]; then + echo "dtparam=audio=on already in /boot/firmware/config.txt" + else + echo "adding dtparam=audio=on to /boot/firmware/config.txt" + sudo sh -c 'echo "\ndtparam=audio=on" >> /boot/firmware/config.txt' + fi + + if [[ $(grep 'dtoverlay=audremap,enable_jack=on' /boot/firmware/config.txt) ]]; then + echo "dtoverlay=audremap,enable_jack=on already in /boot/firmware/config.txt" + else + echo "adding dtoverlay=audremap,enable_jack=on to /boot/firmware/config.txt" + sudo sh -c 'echo "\ndtoverlay=audremap,enable_jack=on" >> /boot/firmware/config.txt' + fi + + if [[ $(grep 'dtoverlay=pwm,pin=18,func=2' /boot/firmware/config.txt) ]]; then + echo "dtoverlay=pwm,pin=18,func=2 already in /boot/firmware/config.txt" + else + echo "adding to /boot/firmware/config.txt" + sudo sh -c 'echo "\ndtoverlay=pwm,pin=18,func=2" >> /boot/firmware/config.txt' + fi + + if [[ $(grep 'disable_splash=1 ' /boot/firmware/config.txt) ]]; then + echo "disable_splash=1 already in /boot/firmware/config.txt" + else + echo "adding disable_splash=1 to /boot/firmware/config.txt" + sudo sh -c 'echo "\ndisable_splash=1" >> /boot/firmware/config.txt' + fi + + if [[ $(grep 'boot_delay=0' /boot/firmware/config.txt) ]]; then + echo "boot_delay=0 already in /boot/firmware/config.txt" + else + echo "adding boot_delay=0 to /boot/firmware/config.txt" + sudo sh -c 'echo "\nboot_delay=0" >> /boot/firmware/config.txt' + fi + + if [[ $(grep 'camera_auto_detect=1' /boot/firmware/config.txt) ]]; then + echo "camera_auto_detect=1 already in /boot/firmware/config.txt" + else + echo "adding camera_auto_detect=1 to /boot/firmware/config.txt" + sudo sh -c 'echo "\ncamera_auto_detect=1" >> /boot/firmware/config.txt' + fi + + if ! grep -q force_turbo=1 /boot/firmware/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/firmware/config.txt'; fi + + sudo sh -c 'echo "\n" >> /boot/firmware/config.txt' + else echo "Your Pi OS version is not Bookworm." echo "The software installation will likely not work." @@ -195,111 +394,6 @@ sudo systemctl enable command sudo cp /home/pi/CubeSatSim/asound.conf /etc/asound.conf -sudo cp /boot/firmware/config.txt /boot/firmware/config.txt.0 - -sudo cp /boot/firmware/cmdline.txt /boot/firmware/cmdline.txt.0 - - -sudo raspi-config nonint do_i2c 0 - -sudo raspi-config nonint do_camera 0 - -sudo raspi-config nonint do_legacy 0 - -#if [ "$1" = "u" ]; then -#fi - -## sudo sed -i 's/console=serial0,115200 //g' /boot/firmware/cmdline.txt - - - sudo sed -i 's/console=serial0,115200 //g' /boot/firmware/cmdline.txt - - sudo sed -i 's/console=tty1 r/console=tty1 maxcpus=1 r/g' /boot/firmware/cmdline.txt # single core if Pi Zero 2 - - sudo sed -i 's/maxcpus=2/maxcpus=1/g' /boot/firmware/cmdline.txt # single core if Pi Zero 2 - - sudo sed -i 's/#dtparam=i2c_arm=on/dtparam=i2c_arm=on/g' /boot/firmware/config.txt - - if [[ $(grep 'dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24' /boot/firmware/config.txt) ]]; then - echo "dtoverlay=i2c-gpio already in /boot/firmware/config.txt" - else - echo "adding dtoverlay=i2c-gpio to /boot/firmware/config.txt" - sudo sh -c 'echo "\ndtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24" >> /boot/firmware/config.txt' - fi - - if [[ $(grep 'enable_uart=1' /boot/firmware/config.txt) ]]; then - echo "enable_uart=1 already in /boot/firmware/config.txt" - else - echo "adding enable_uart=1 to /boot/firmware/config.txt" - sudo sh -c 'echo "\nenable_uart=1" >> /boot/firmware/config.txt' - fi - - if [[ $(grep 'dtoverlay=disable-bt' /boot/firmware/config.txt) ]]; then - echo "dtoverlay=disable-bt already in /boot/firmware/config.txt" - else - echo "adding dtoverlay=disable-bt to /boot/firmware/config.txt" - sudo sh -c 'echo "\ndtoverlay=disable-bt" >> /boot/firmware/config.txt' - fi - - if [[ $(grep 'dtoverlay=dwc2' /boot/firmware/config.txt) ]]; then - echo "dtoverlay=dwc2 aalready in /boot/firmware/config.txt" - else - echo "adding dtoverlay=dwc2 to /boot/firmware/config.txt" - sudo sh -c 'echo "\ndtoverlay=dwc2" >> /boot/firmware/config.txt' - fi - - if [[ $(grep 'modules-load=dwc2,g_ether' /boot/firmware/cmdline.txt) ]]; then - echo "modules-load=dwc2,g_ether already in /boot/firmware/cmdline.txt" - else - echo "adding modules-load=dwc2,g_ether to /boot/firmware/cmdline.txt" - sudo sed -i 's/ rootwait/ rootwait modules-load=dwc2,g_ether/g' /boot/firmware/cmdline.txt - fi - - if [[ $(grep 'dtparam=audio=on' /boot/firmware/config.txt) ]]; then - echo "dtparam=audio=on already in /boot/firmware/config.txt" - else - echo "adding dtparam=audio=on to /boot/firmware/config.txt" - sudo sh -c 'echo "\ndtparam=audio=on" >> /boot/firmware/config.txt' - fi - - if [[ $(grep 'dtoverlay=audremap,enable_jack=on' /boot/firmware/config.txt) ]]; then - echo "dtoverlay=audremap,enable_jack=on already in /boot/firmware/config.txt" - else - echo "adding dtoverlay=audremap,enable_jack=on to /boot/firmware/config.txt" - sudo sh -c 'echo "\ndtoverlay=audremap,enable_jack=on" >> /boot/firmware/config.txt' - fi - - if [[ $(grep 'dtoverlay=pwm,pin=18,func=2' /boot/firmware/config.txt) ]]; then - echo "dtoverlay=pwm,pin=18,func=2 already in /boot/firmware/config.txt" - else - echo "adding to /boot/firmware/config.txt" - sudo sh -c 'echo "\ndtoverlay=pwm,pin=18,func=2" >> /boot/firmware/config.txt' - fi - - if [[ $(grep 'disable_splash=1 ' /boot/firmware/config.txt) ]]; then - echo "disable_splash=1 already in /boot/firmware/config.txt" - else - echo "adding disable_splash=1 to /boot/firmware/config.txt" - sudo sh -c 'echo "\ndisable_splash=1" >> /boot/firmware/config.txt' - fi - - if [[ $(grep 'boot_delay=0' /boot/firmware/config.txt) ]]; then - echo "boot_delay=0 already in /boot/firmware/config.txt" - else - echo "adding boot_delay=0 to /boot/firmware/config.txt" - sudo sh -c 'echo "\nboot_delay=0" >> /boot/firmware/config.txt' - fi - - if [[ $(grep 'camera_auto_detect=1' /boot/firmware/config.txt) ]]; then - echo "camera_auto_detect=1 already in /boot/firmware/config.txt" - else - echo "adding camera_auto_detect=1 to /boot/firmware/config.txt" - sudo sh -c 'echo "\ncamera_auto_detect=1" >> /boot/firmware/config.txt' - fi - - if ! grep -q force_turbo=1 /boot/firmware/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/firmware/config.txt'; fi - -sudo sh -c 'echo "\n" >> /boot/firmware/config.txt' sudo sed -i 's/DEVICES=""/DEVICES="\/dev\/serial0"/g' /etc/default/gpsd