diff --git a/dietpi/dietpi.display.sh b/dietpi/dietpi.display.sh new file mode 100644 index 0000000..339d35c --- /dev/null +++ b/dietpi/dietpi.display.sh @@ -0,0 +1,191 @@ + +# keep in mind that DietPi for Raspberry is also a stripped down Raspbian +echo "Detect Base Image ..." +baseImage="?" +isDietPi=$(uname -n | grep -c 'DietPi') +isRaspbian=$(cat /etc/os-release 2>/dev/null | grep -c 'Raspbian') +if [ ${isRaspbian} -gt 0 ]; then + baseImage="raspbian" +fi +if [ ${isDietPi} -gt 0 ]; then + baseImage="dietpi" +fi +if [ "${baseImage}" = "?" ]; then + cat /etc/os-release 2>/dev/null + echo "!!! FAIL !!!" + echo "Base Image cannot be detected or is not supported." + exit 1 +else + echo "OK running ${baseImage}" +fi + + +if [ "${baseImage}" = "raspbian" ]; then + echo "Press ENTER to install LCD and reboot ..." + read key + + # give Raspi a default hostname (optional) + sudo raspi-config nonint do_hostname "RaspiBlitz" + + # *** Display selection *** + dialog --title "Display" --yesno "Are you using the default display available from Amazon?\nSelect 'No' if you are using the Swiss version from play-zone.ch!" 6 80 + defaultDisplay=$? + + if [ "${defaultDisplay}" = "0" ]; then + + # *** RASPIBLITZ / LCD (at last - because makes a reboot) *** + # based on https://www.elegoo.com/tutorial/Elegoo%203.5%20inch%20Touch%20Screen%20User%20Manual%20V1.00.2017.10.09.zip + + echo "--> LCD DEFAULT" + cd /home/admin/ + sudo apt-mark hold raspberrypi-bootloader + git clone https://github.com/goodtft/LCD-show.git + sudo chmod -R 755 LCD-show + sudo chown -R admin:admin LCD-show + cd LCD-show/ + sudo ./LCD35-show + + else + + # Download and install the driver + # based on http://www.raspberrypiwiki.com/index.php/3.5_inch_TFT_800x480@60fps + + echo "--> LCD ALTERNATIVE" + cd /boot + sudo wget http://www.raspberrypiwiki.com/download/RPI-HD-35-INCH-TFT/dt-blob-For-3B-plus.bin + sudo mv dt-blob-For-3B-plus.bin dt-blob.bin + cat <> config.txt + + dtparam=spi=off + dtparam=i2c_arm=off + + # Set screen size and any overscan required + overscan_left=0 + overscan_right=0 + overscan_top=0 + overscan_bottom=0 + framebuffer_width=800 + framebuffer_height=480 + + + enable_dpi_lcd=1 + display_default_lcd=1 + dpi_group=2 + dpi_mode=87 + dpi_output_format=0x6f015 + + # set up the size to 800x480 + hdmi_timings=480 0 16 16 24 800 0 4 2 2 0 0 0 60 0 32000000 6 + + #rotate screen + display_rotate=3 + + dtoverlay=i2c-gpio,i2c_gpio_scl=24,i2c_gpio_sda=23 + fi +EOF + init 6 + fi +fi + + +if [ "${baseImage}" = "dietpi" ]; then + + OPTIONS=(GPIO "Install the default display available from Amazon" \ + HDMI "Install the 3.5\" HDMI display from Aliexpress" \ + SWISS "Install the Swiss version from play-zone.ch" + ) + + CHOICE=$(dialog --backtitle "RaspiBlitz - Display Install" --clear --title "Display Install" --menu "Choose a your diplay:" 10 70 6 "${OPTIONS[@]}" 2>&1 >/dev/tty) + + if [ "${CHOICE}" = "GPIO" ]; then + echo "Installing the default display available from Amazon" + + # based on https://www.elegoo.com/tutorial/Elegoo%203.5%20inch%20Touch%20Screen%20User%20Manual%20V1.00.2017.10.09.zip + cd /home/admin/ + #sudo apt-mark hold raspberrypi-bootloader + git clone https://github.com/goodtft/LCD-show.git + sudo chmod -R 755 LCD-show + sudo chown -R admin:admin LCD-show + cd LCD-show/ + # sudo ./LCD35-show + sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf + sudo mkdir /etc/X11/xorg.conf.d + sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/ + sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/tft35a.dtbo + sudo cp -rf ./usr/99-calibration.conf-35 /etc/X11/xorg.conf.d/99-calibration.conf + sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/ + sudo cp ./usr/cmdline.txt /DietPI/ + sudo cp ./usr/inittab /etc/ + sudo cp ./boot/config-35.txt /DietPi/config.tx + echo "***" + echo "reboot with \`sudo reboot\` to have the LCD working" + echo "***" + + exit + + elif [ "${CHOICE}" = "HDMI" ]; then + echo "Installing the 3.5\" HDMI display from Aliexpress" + + # based on http://www.lcdwiki.com/3.5inch_HDMI_Display-B + git clone https://github.com/goodtft/LCD-show.git + chmod -R 755 LCD-show + cd LCD-show/ + #sudo ./MPI3508-show + sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf + sudo cp -rf ./boot/config-35-480X320.txt /DietPi/config.txt + sudo cp ./usr/cmdline.txt /DietPi/ + sudo cp ./usr/inittab /etc/ + sudo cp -rf ./usr/99-fbturbo.conf-HDMI /usr/share/X11/xorg.conf.d/99-fbturbo.conf + sudo mkdir -p /etc/X11/xorg.conf.d + sudo cp -rf ./usr/99-calibration.conf-3508 /etc/X11/xorg.conf.d/99-calibration.con + echo "***" + echo "reboot with \`sudo reboot\` to have the LCD working" + echo "***" + + exit + + elif [ "${CHOICE}" = "SWISS" ]; then + + # Download and install the driver + # based on http://www.raspberrypiwiki.com/index.php/3.5_inch_TFT_800x480@60fps + + echo "--> LCD ALTERNATIVE" + cd /DietPi + sudo wget http://www.raspberrypiwiki.com/download/RPI-HD-35-INCH-TFT/dt-blob-For-3B-plus.bin + sudo mv dt-blob-For-3B-plus.bin dt-blob.bin + cat <> config.txt + + dtparam=spi=off + dtparam=i2c_arm=off + + # Set screen size and any overscan required + overscan_left=0 + overscan_right=0 + overscan_top=0 + overscan_bottom=0 + framebuffer_width=800 + framebuffer_height=480 + + + enable_dpi_lcd=1 + display_default_lcd=1 + dpi_group=2 + dpi_mode=87 + dpi_output_format=0x6f015 + + # set up the size to 800x480 + hdmi_timings=480 0 16 16 24 800 0 4 2 2 0 0 0 60 0 32000000 6 + + #rotate screen + display_rotate=3 + + dtoverlay=i2c-gpio,i2c_gpio_scl=24,i2c_gpio_sda=23 + fi +EOF + init 6 + fi + +else + echo "CANCEL" + exit +fi \ No newline at end of file