diff --git a/MHS35IPS-show b/MHS35IPS-show new file mode 100755 index 0000000..8831ab6 --- /dev/null +++ b/MHS35IPS-show @@ -0,0 +1,137 @@ +#!/bin/bash + +sudo ./system_backup.sh + +if [ -f /etc/X11/xorg.conf.d/40-libinput.conf ]; then +sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf +fi +if [ ! -d /etc/X11/xorg.conf.d ]; then +sudo mkdir -p /etc/X11/xorg.conf.d +fi +sudo cp ./usr/mhs35ips-overlay.dtb /boot/overlays/ +sudo cp ./usr/mhs35ips-overlay.dtb /boot/overlays/mhs35ips.dtbo + +#root_dev=`grep -oPr "root=[^\s]*" /boot/cmdline.txt | awk -F= '{printf $NF}'` +#if test "$root_dev" = "/dev/mmcblk0p7";then +#sudo cp -rf ./boot/config-noobs-nomal.txt ./boot/config.txt.bak +#else +#sudo cp -rf ./boot/config-nomal.txt ./boot/config.txt.bak +#sudo echo "hdmi_force_hotplug=1" >> ./boot/config.txt.bak +#fi + +source ./system_config.sh +sudo echo "hdmi_force_hotplug=1" >> ./boot/config.txt.bak +sudo echo "dtparam=i2c_arm=on" >> ./boot/config.txt.bak +sudo echo "dtparam=spi=on" >> ./boot/config.txt.bak +sudo echo "enable_uart=1" >> ./boot/config.txt.bak +sudo echo "dtoverlay=mhs35ips:rotate=90" >> ./boot/config.txt.bak +sudo echo "hdmi_group=2" >> ./boot/config.txt.bak +sudo echo "hdmi_mode=1" >> ./boot/config.txt.bak +sudo echo "hdmi_mode=87" >> ./boot/config.txt.bak +sudo echo "hdmi_cvt 480 320 60 6 0 0 0" >> ./boot/config.txt.bak +sudo echo "hdmi_drive=2" >> ./boot/config.txt.bak +sudo cp -rf ./boot/config.txt.bak /boot/config.txt + +sudo cp -rf ./usr/99-calibration.conf-mhs35ips-90 /etc/X11/xorg.conf.d/99-calibration.conf +sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf +#if test "$root_dev" = "/dev/mmcblk0p7";then +#sudo cp ./usr/cmdline.txt-noobs /boot/cmdline.txt +#else +#sudo cp ./usr/cmdline.txt /boot/ +#fi +sudo cp ./usr/inittab /etc/ +#sudo cp ./boot/config-mhs35.txt /boot/config.txt +sudo touch ./.have_installed +echo "gpio:resistance:mhs35ips:90:480:320" > ./.have_installed + +sudo apt-get update +#FBCP install +wget --spider -q -o /dev/null --tries=1 -T 10 https://cmake.org/ +if [ $? -eq 0 ]; then +sudo apt-get install cmake -y 2> error_output.txt +result=`cat ./error_output.txt` +echo -e "\033[31m$result\033[0m" +grep -q "^E:" ./error_output.txt +type cmake > /dev/null 2>&1 +if [ $? -eq 0 ]; then +sudo rm -rf rpi-fbcp +wget --spider -q -o /dev/null --tries=1 -T 10 https://github.com +if [ $? -eq 0 ]; then +sudo git clone https://github.com/tasanakorn/rpi-fbcp +if [ $? -ne 0 ]; then +echo "download fbcp failed, copy native fbcp!!!" +sudo cp -r ./usr/rpi-fbcp . +fi +else +echo "bad network, copy native fbcp!!!" +sudo cp -r ./usr/rpi-fbcp . +fi +sudo mkdir ./rpi-fbcp/build +cd ./rpi-fbcp/build/ +sudo cmake .. +sudo make +sudo install fbcp /usr/local/bin/fbcp +cd - > /dev/null +type fbcp > /dev/null 2>&1 +if [ $? -eq 0 ]; then +sudo cp -rf ./usr/99-fbturbo-fbcp.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf +sudo cp -rf ./etc/rc.local /etc/rc.local +fi +else +echo "install cmake error!!!!" +fi +else +echo "bad network, can't install cmake!!!" +fi + +#evdev install +#nodeplatform=`uname -n` +#kernel=`uname -r` +version=`uname -v` +#if test "$nodeplatform" = "raspberrypi";then +#echo "this is raspberrypi kernel" +input_result=0 +version=${version##* } +#version=${version#*#} +echo $version +if test $version -lt 2017;then +echo "reboot" +else +echo "need to update touch configuration" +wget --spider -q -o /dev/null --tries=1 -T 10 http://mirrors.zju.edu.cn/raspbian/raspbian +if [ $? -ne 0 ]; then +input_result=1 +else +sudo apt-get install xserver-xorg-input-evdev 2> error_output.txt +dpkg -l | grep xserver-xorg-input-evdev > /dev/null 2>&1 +if [ $? -ne 0 ]; then +input_result=1 +fi +fi +if [ $input_result -eq 1 ]; then +if [ $hardware_arch -eq 32 ]; then +sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-1+b1_armhf.deb 2> error_output.txt +elif [ $hardware_arch -eq 64 ]; then +sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-2_arm64.deb 2> error_output.txt +fi +fi +result=`cat ./error_output.txt` +echo -e "\033[31m$result\033[0m" +grep -q "error:" ./error_output.txt && exit +sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf +#echo "reboot" +#else +#echo "this is not raspberrypi kernel, no need to update touch configure, reboot" +fi + +sudo sync +sudo sync +sleep 1 +if [ $# -eq 1 ]; then +sudo ./rotate.sh $1 +elif [ $# -gt 1 ]; then +echo "Too many parameters" +fi + +echo "reboot now" +sudo reboot diff --git a/usr/99-calibration.conf-mhs35ips-0 b/usr/99-calibration.conf-mhs35ips-0 new file mode 100755 index 0000000..7659e07 --- /dev/null +++ b/usr/99-calibration.conf-mhs35ips-0 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "ADS7846 Touchscreen" + Option "Calibration" "3880 268 227 3936" + Option "SwapAxes" "0" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/99-calibration.conf-mhs35ips-180 b/usr/99-calibration.conf-mhs35ips-180 new file mode 100755 index 0000000..0e0dee9 --- /dev/null +++ b/usr/99-calibration.conf-mhs35ips-180 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "ADS7846 Touchscreen" + Option "Calibration" "268 3880 3936 227" + Option "SwapAxes" "0" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/99-calibration.conf-mhs35ips-270 b/usr/99-calibration.conf-mhs35ips-270 new file mode 100755 index 0000000..7d4323c --- /dev/null +++ b/usr/99-calibration.conf-mhs35ips-270 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "ADS7846 Touchscreen" + Option "Calibration" "227 3936 268 3880" + Option "SwapAxes" "1" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/99-calibration.conf-mhs35ips-90 b/usr/99-calibration.conf-mhs35ips-90 new file mode 100755 index 0000000..6f03654 --- /dev/null +++ b/usr/99-calibration.conf-mhs35ips-90 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "ADS7846 Touchscreen" + Option "Calibration" "3936 227 3880 268" + Option "SwapAxes" "1" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/mhs35ips-overlay.dtb b/usr/mhs35ips-overlay.dtb new file mode 100755 index 0000000..61ef028 Binary files /dev/null and b/usr/mhs35ips-overlay.dtb differ