|
|
- #!/bin/sh
-
-
- Script_Ver="1.04.9406"
-
-
- #Set CPU Type here for Silent Mode.
- #EX: "64", "32", "ARM", "ARMhf, "AARCH64"
- cpuArch=""
-
- CheckCpuType(){
-
- ARCH=`uname -m`
- echo "(I) Platform application binary interface = ${ARCH}"
- if [ ${ARCH} = "64" -o ${ARCH} = "x86_64" ] ; then
- cpuArch="64"
- elif [ ${ARCH} = "i386" -o $ARCH = "i586" -o $ARCH = "i686" ] ; then
- cpuArch="32"
- elif [ ${ARCH} = "aarch64" ] ; then
- cpuArch="AARCH64"
- elif [ ${ARCH} = "armv61" ] ; then
- cpuArch="ARM"
- else
- ReadELF="readelf -A /bin/sh"
- tmpfile="tmp.info"
- ${ReadELF}>${tmpfile} 2>&1
- CheckConditionARMhf="Tag_ABI_VFP_args: VFP registers"
- CheckConditionMIPS="Tag_GNU_MIPS_ABI_FP"
- CheckConditionTagARM="Tag_ARM_ISA_use"
- grep -q "${CheckConditionARMhf}" ${tmpfile}
- if [ $? = 0 ];then
- cpuArch="ARMhf"
- else
- grep -q "${CheckConditionMIPS}" ${tmpfile}
- if [ $? = 0 ];then
- cpuArch="MIPS"
- else
- grep -q "${CheckConditionTagARM}" ${tmpfile}
- if [ $? = 0 ];then
- cpuArch="ARM"
- else
- #for Silent Mode.
- if [ ${SilentMode} = "true" ]; then
- echo "Plese setup CPU Type for Silent Mode in setup.sh"
- exit 1
- fi
-
- echo "Which platform arch do you use?"
- echo "[1] ARM [2] ARMhf [3] AARCH64 [4] MIPS"
- while : ; do
- read arch
- case $arch in
- 1) cpuArch="ARM"
- break;;
- 2) cpuArch="ARMhf"
- break;;
- 3) cpuArch="AARCH64"
- break;;
- 4) cpuArch="MIPS"
- break;;
- *) echo "(I) Please choose [1], [2], [3] or [4]"
- echo -n "(A) ";;
- esac
- done
- fi
- fi
- fi
- rm ${tmpfile}
- fi
- }
-
- InitMember(){
- # file name
- drivername="eGTouch"
- eGTouchSH="eGTouch.sh"
- xorgfile="52-egalax-virtual.conf"
- xorgfile_libinput="52-egalax-virtual-libinput.conf"
- calibTool="eCalib"
- Distri="GENERAL"
-
- driverEXE="${drivername}D"
- IniFile="${drivername}L.ini"
- drvPkgFldr="${drivername}${cpuArch}"
- drvPkgFldrX="" #This would be give value in functions.
- paramfile="${drivername}*.param"
-
- utilityExec="${drivername}U"
- UtilityPic="${utilityExec}.png"
- UtilityDesktop="${utilityExec}.desktop"
-
- #/etc/system/systemd
- daemonService="eGTouchD.service"
-
- resumeService="eGTouchResume.service"
-
- # path name
- installpath="/usr/local"
- etcpath="/etc"
- usrbinpath="/usr/bin"
- initpath="/etc/rc.d/init.d"
- init1path="/etc/init.d"
- rcSpath="/etc/rc.d/rcS.d"
- rcS1path="/etc/rcS.d"
- rc5path="/etc/rc.d/rc5.d"
- rc51path="/etc/rc5.d"
- lightdmpath="/etc/lightdm"
- lightdmconfdpath="/etc/lightdm/lightdm.conf.d" #new distribution after Ubuntu 16.04.6
- lightdmconfdfile="52-egalax-lightdm.conf"
- rclocalfile="rc.local"
- rclocalpath="/etc/rc.local" # Ubuntu and Fedora, General OS
- rclocalpath1="/etc/init.d/boot.local" # OpenSuSe 11.04.
- rclocalpath2="/etc/rc.d/rc.local" # Fedora 14 & Redhat6
- rclocalpathSUSE11="/etc/rc.d/boot.local"
- blacklistpath="/etc/modprobe.d/blacklist.conf"
- etcModuleFile1="/etc/modules" # Ubuntu modules bootup file
- etcModuleFile2="/etc/modules.conf" # RedHat modules bootup file
- etcModuleFile3="/etc/conf.modules" # SuSe modules bootup file
- etcModuleFile4="/etc/sysconfig/kernel" # Suse 11.4 module loaded on bootup file
- trash="/dev/null"
- xorgpath="/usr/share/X11/xorg.conf.d" # Ubuntu and Fedora
- xorgpath1="/etc/X11/xorg.conf.d" # OpenSuSe 11.04
- xorgpath2="/usr/lib/X11/xorg.conf.d" # for Ubuntu 10.04 and Meego 1.0 netbook
- xorgconfpath="/etc/X11/xorg.conf"
- parampath="/var/lib"
-
- systemdpath="/etc/systemd/system" # for ubuntu 18.04 18.10
- systemctlpath="/bin/systemctl" # for ubuntu 18.04 18.10
-
- pixpath="/usr/share/pixmaps"
- iconpath="/usr/share/icons/gnome/48x48/apps"
- applicationpath="/usr/share/applications"
-
- #For PS2 interface
- seriofile="serio_raw.sh"
- rcSfile="S01serio_raw.sh"
-
- Xexist="true"
- interface="usb"
-
- SupportRotationMultiMonitor="false" #Enable detect rotation & multi monitor function, driver need start after X. Current use lightdm conf.
- lightdmexist="false"
-
- SupportBeep="false"
-
- udevpath="/etc/udev/rules.d"
- udevfile="99-egalax-udev.rules"
- }
- ShowTitle() {
- echo ""
- echo "(*) Driver installer for touch controller "
- echo "(*) Script Version = ${Script_Ver} "
- echo ""
- }
-
- CheckPermission() {
- echo -n "(I) Check user permission:"
- account=`whoami`
- if [ ${account} = "root" ]; then
- echo " ${account}, you are the supervisor."
- else
- echo " ${account}, you are NOT the supervisor."
- echo "(E) The root permission is required to run this installer."
- echo ""
- exit 1
- fi
- }
-
- pause() {
- echo "(I) Please confirm the touch controller is linked with your device. Press [Enter] key to continue.........."
- read DISCARD
- }
-
- InstallDriverRoutine() {
- rm -f ${parampath}/${paramfile}
- rm -f ${etcpath}/${paramfile}
-
- if [ -e ${installpath}/${drvPkgFldr} ]; then # check old driver folder1 & remove
- rm -rf ${installpath}/${drvPkgFldr}
- fi
- if [ -e ${installpath}/${drvPkgFldrX} ]; then # check old driver folder2 & remove
- rm -rf ${installpath}/${drvPkgFldrX}
- fi
-
- cp -rf ${drvPkgFldr}/${drvPkgFldrX} ${installpath} #copy driver directory to target path
- sysDrvFldr="${installpath}/${drvPkgFldrX}"
- if [ $? = 0 ]; then
- echo "(I) Place ${drivername} driver archive to ${sysDrvFldr}."
- else
- echo "(E) Place ${drivername} driver archive to ${sysDrvFldr} failed."
- exit 1
- fi
-
- if [ $Xexist = "true" -a -e ${sysDrvFldr}/${utilityExec} ];then
- cp Rule/$UtilityPic $sysDrvFldr # copy the png into driver installdest
- fi
-
- if [ -e ${sysDrvFldr}/${utilityExec} ]; then
- ( cd ${sysDrvFldr}; chown root:root ${utilityExec}; chmod 4755 ${utilityExec})
- if [ $? != 0 ]; then
- echo "(I) Change utility permission failed"
- exit 1
- fi
- fi
-
- cp ${installpath}/${drvPkgFldrX}/${IniFile} ${etcpath}
- if [ $? != 0 ]; then
- echo "(I) Copy ${IniFile} to ${etcpath} failed."
- exit 1
- fi
-
- if [ -d ${usrbinpath} ]; then
- chmod a+x ${sysDrvFldr}/${driverEXE}
- ln -sf ${sysDrvFldr}/${driverEXE} ${usrbinpath}
- echo "(I) Create ${drivername} daemon shortcut in ${usrbinpath}."
-
- if [ -e ${sysDrvFldr}/${utilityExec} ]; then
- chmod a+x ${sysDrvFldr}/${utilityExec}
- ln -sf ${sysDrvFldr}/${utilityExec} ${usrbinpath}
- echo "(I) Create ${utilityExec} tool shortcut in ${usrbinpath}."
- fi
-
- if [ -e ${sysDrvFldr}/${calibTool} ]; then
- chmod 4755 ${sysDrvFldr}/${calibTool}
- ln -sf ${sysDrvFldr}/${calibTool} ${usrbinpath}
- echo "(I) Create ${calibTool} tool shortcut in ${usrbinpath}."
- fi
- else
- echo "(W) There is no directory ${usrbinpath}. We can NOT link shortcut under ${usrbinpath}."
- echo "(W) Please link it manually."
- fi
-
- cp setup.sh ${sysDrvFldr}
- }
-
- CheckUSBType() {
- usbfile="usb.info"
- checkusb="lsusb -v -d 0eef:"
- ${checkusb} > ${usbfile} 2> ${trash}
- grep -q "Human Interface Device" ${usbfile}
- if [ $? -eq 0 ]; then
- echo "(I) Found a HID compliant touch controller."
- CheckModuleAndBlacklist
- else
- grep -q "Vendor Specific Protocol" ${usbfile}
- if [ $? -eq 0 ]; then
- echo "(W) Found a non-HID compliant touch controller."
- echo "(W) This driver doesn't support non-HID touch controller."
- echo "(W) Please update touch driver."
- RemoveDriver
- fi
- fi
- rm -f ${usbfile}
- }
-
- CheckUSBPIDnKernel() {
- Kversion=`uname -r`
- Kversion=${Kversion##* } #3.8.0-23-generic-pae
- Kmajor=${Kversion%%.*} #3
- Ktmp=${Kversion#*.}
- Kminor=${Ktmp%%.*} #8
-
- if [ $Kmajor -ge 3 -a $Kminor -ge 8 ] && [ $Kmajor -le 3 -a $Kminor -le 12 ] ;then
- usbfile="usb.info"
- checkusbpid="lsusb -d 0eef:"
- ${checkusbpid} > ${usbfile} 2> ${trash}
- grep -q "0001" ${usbfile}
- if [ $? -eq 0 ]; then
- echo ""
- echo "(I) Found a PID:0001 touch controller in kernel 3.8 upwards."
- dmesg | grep "hid-multitouch 0003:0EEF:0001" > ${trash}
- if [ $? -ne 0 ]; then
- RemindKernelHIDPatch
- fi
- fi
- rm -f ${usbfile}
- fi
-
- }
-
- CheckHIDRAW() {
- tmpfile="tmp.info"
- checkhidraw="dmesg"
- ${checkhidraw} > ${tmpfile} 2>&1
- grep -q "hidraw" ${tmpfile}
-
- if [ $? -eq 0 ]; then
- echo "(I) Found hidraw module enabled in system"
- else
- echo "(E) Found no hidraw module. Please rebuild the module before installation."
- exit
- fi
- rm -f ${tmpfile}
- }
-
- GenerateSerioRaw(){
- checkcmd="which update-rc.d"
- cmdinfofile="cmd.info"
- ${checkcmd} > ${cmdinfofile} 2>&1
- grep -q "no update-rc.d in" ${cmdinfofile}
- if [ $? -eq 0 ]; then #Put it into rclocal. Generally, we'll go into this part.
- grep -q "added by eGalaxTouch installer" $rclocalModulesPath
- if [ $? = 0 ]; then
- echo "(I) echo seriow_raw was already written in ${rclocalModulesPath}"
- else
- filelines=`cat ${rclocalModulesPath} | wc -l`
- sed -i ''${filelines}'i\# added by eGalaxTouch installer\necho -n "serio_raw" > /sys/bus/serio/devices/'${1}'/drvctl' ${rclocalModulesPath}
- echo "(I) Generate serio script in $rclocalModulesPath"
- fi
- else # This part seems like not do the verification. I'm not sure that it could work properly.
- cp -f Rule/${seriofile} ${initpath}
- chmod 755 $initpath/$seriofile
- sed -i '13a echo -n "serio_raw" > /sys/bus/serio/devices/'${1}'/drvctl' ${initpath}/${seriofile}
- update-rc.d ${seriofile} start 01 S . > ${trash}
- echo "(I) Generate serio script as $seriofile"
- fi
- rm -f ${cmdinfofile}
- }
-
- CheckSerioRawModule(){
- lsmod | grep serio_raw > ${trash}
- if [ $? = 0 ];then
- echo "(I) Module serio_raw.ko is detected under lsmod"
- else
- echo "(W) Module \"serio_raw.ko\" doesn't exist in kernel module."
- modprobe serio_raw
- if [ $? = 0 ];then
- echo "(I) Module serio_raw could be successfully loaded by modprobe."
- AttachModuleAtBoot "serio_raw"
- if [ $? = 0 ];then
- echo "(I) Attach insmod \"serio_raw\" at boot successfully."
- else
- echo "(E) Module \"serio_raw\" attached at boot failed."
- echo "(E) Please mannually let the module \"serio_raw\" attached at boot. Or touch would not be workable."
- fi
- else
- echo "(E) There is no module serio_raw.ko"
- echo "(E) Please make sure it is built-in the kernel, or touch would not be workable."
- fi
- fi
- }
-
-
-
- SetPS2Config(){
- CheckSerioRawModule
- echo "(I) Configure PS/2 aux driver."
- SerioDevPath="/sys/bus/serio/devices"
- tmp_file="tmp.info"
- ls ${SerioDevPath} > ${tmp_file}
- grep -q "serio" ${tmp_file}
-
- if [ $? = 0 ];then # Check whether /sys/bus/serio/devices/serio0 1 2 3 4 exist
- for i in 0 1 2 3 4
- do
- if [ -e ${SerioDevPath}/serio${i} ];then
- ls ${SerioDevPath}/serio${i}/ -al > ${tmp_file} # the serioX"/" is very important, or it would not give what we want
- grep -q "psmouse" ${tmp_file}
- if [ $? -eq 0 ];then
- serioport="serio${i}"
- # If this serioX got PS mouse collection, at the file driver would link to ../bus/serio/drivers/psmouse
- echo "(I) Found PS2 mouse driver at serio${i}."
- GenerateSerioRaw ${serioport}
- rm -f ${tmp_file}
- return
- fi
-
- grep -q "serio_raw" ${tmp_file}
- if [ $? = 0 ]; then
- echo "(I) Found /"serio_raw/" located under ${SerioDevPath}/serio${i}/"
- rm -f ${tmp_file}
- return
- fi
- fi
- done
- echo "(E) No PS2 mouse driver found under ${SerioDevPath}/serioX"
- exit 1
- else
- echo "(E) No serio device found under ${SerioDevPath}"
- exit 1
- fi
-
- rm -f ${tmp_file}
- }
-
- RemoveeGTouchFile() {
- rm -f ${parampath}/${paramfile}
- rm -f ${etcpath}/${paramfile}
-
- if [ -e ${etcpath}/${IniFile} ]; then
- rm -rf ${etcpath}/${IniFile}
- echo "(I) Removed ${IniFile} file from ${etcpath}."
- else
- echo "(W) No ${etcpath}/${IniFile} file found."
- fi
-
- }
-
- RemoveShortcut() {
- if [ -d ${usrbinpath} ]; then
- if [ -L ${usrbinpath}/${driverEXE} ]; then
- rm -f ${usrbinpath}/${driverEXE}
- echo "(I) Removed ${driverEXE} shortcut from ${usrbinpath}."
- else
- echo "(W) No ${usrbinpath}/${driverEXE} shortcut found."
- fi
-
- if [ -L ${usrbinpath}/${utilityExec} ]; then
- rm -f ${usrbinpath}/${utilityExec}
- echo "(I) Removed ${utilityExec} shortcut from ${usrbinpath}."
- else
- echo "(W) No ${usrbinpath}/${utilityExec} shortcut found."
- fi
- if [ -L ${usrbinpath}/${calibTool} ]; then
- rm -f ${usrbinpath}/${calibTool}
- echo "(I) Removed ${calibTool} shortcut from ${usrbinpath}."
- else
- echo "(W) No ${usrbinpath}/${calibTool} shortcut found."
- fi
- else
- echo "(W) No ${usrbinpath} folder found."
- fi
- }
-
- AttachDrvExecAtRclocal() {
- echo "(I) Append ${drivername} daemon execution into $1."
- filelines=`cat $1 | wc -l`
- sed -i ''${filelines}'i\### Beginning: Launch eGTouchD daemon while setup boot-up ###\
- /usr/bin/eGTouchD -f\
- ### End: Launch eGTouchD daemon while setup boot-up ###' $1
- }
-
- DetachDrvExecFromRclocal() { # Remove the auto execution stings in rc.local
- if [ -w ${rclocalModulesPath} ];then
- sed -i '/### Beginning: Launch eGTouchD daemon while setup boot-up ###/,/### End: Launch eGTouchD daemon while setup boot-up ###/d' ${rclocalModulesPath}
- echo "(I) Detach eGTouchD daemon execution from ${rclocalModulesPath}."
- else
- echo "(I) No ${rclocalModulesPath} file found."
- fi
- }
-
- CheckRCExist(){
- if [ -e ${systemctlpath} ];then
- echo "(I) Found systemd service support in system"
- cp -r "Rule/${daemonService}" ${systemdpath}
- chmod a+x ${systemdpath}/${daemonService}
- else
- if [ -e ${initpath} ];then
- cp -f "Rule/${eGTouchSH}" ${initpath}
- chmod a+x ${initpath}/${eGTouchSH}
- echo "(I) Copying ${eGTouchSH} to ${rcSpath}."
- else
- cp -f "Rule/${eGTouchSH}" ${init1path}
- chmod a+x ${init1path}/${eGTouchSH}
- echo "(I) Copying ${eGTouchSH} to ${rcS1path}."
- fi
-
- if [ -e ${rcSpath} ];then # /etc/rc.d/rcS.d exist
- echo "(I) ${rcSpath} path found."
- if [ ! -e ${rcSpath}/S99eGTouch ] && [ -e ${initpath}/${eGTouchSH} ]; then
- ln -s "${initpath}/${eGTouchSH}" "${rcSpath}/S99eGTouch"
- fi
- elif [ -e ${rcS1path} ];then # /etc/rcS.d exist
- echo "(I) ${rcS1path} path found."
- if [ ! -e ${rcS1path}/S99eGTouch ] && [ -e ${init1path}/${eGTouchSH} ]; then
- ln -s "${init1path}/${eGTouchSH}" "${rcS1path}/S99eGTouch"
- fi
- elif [ -e ${rc5path} ];then # /etc/rc.d/rc5.d exist
- echo "(I) ${rc5path} path found."
- if [ ! -e ${rc5path}/S99eGTouch ] && [ -e ${initpath}/${eGTouchSH} ]; then
- ln -s ${initpath}/${eGTouchSH} ${rc5path}/S99eGTouch
- fi
- elif [ -e ${rc51path} ];then # /etc/rc5.d
- echo "(I) ${rc51path} path found."
- if [ ! -e ${rc51path}/S99eGTouch ] && [ -e ${initpath}/${eGTouchSH} ]; then
- ln -s ${initpath}/${eGTouchSH} ${rc51path}/S99eGTouch
- fi
- fi
- fi
- }
-
- RemoveRCSetting(){
- if [ -e ${rcSpath}/S99eGTouch ];then # /etc/rc.d/rcS.d exist
- echo "(I) ${rcSpath} path found, removing ${rcSpath}/S99eGTouch."
- rm "${rcSpath}/S99eGTouch"
- fi
-
- if [ -e ${rcS1path}/S99eGTouch ];then # /etc/rcS.d exist
- echo "(I) ${rcS1path} path found, removing ${rcS1path}/S99eGTouch."
- rm "${rcS1path}/S99eGTouch"
- fi
-
- if [ -e ${rc5path}/S99eGTouch ];then
- echo "(I) ${rc5path} path found, removing ${rc5path}/S99eGTouch."
- rm "${rc5path}/S99eGTouch"
- fi
-
- if [ -e ${rc51path}/S99eGTouch ];then
- echo "(I) ${rc51path} path found, removing ${rc51path}/S99eGTouch."
- rm "${rc51path}/S99eGTouch"
- fi
-
- if [ -e ${systemdpath}/${daemonService} ]; then
- systemctl disable eGTouchD.service
- rm "${systemdpath}/${daemonService}"
- fi
-
- if [ -e ${initpath}/${eGTouchSH} ];then
- rm "${initpath}/${eGTouchSH}"
- echo "(I) Removing ${initpath}/${eGTouchSH}."
- fi
-
- if [ -e ${init1path}/${eGTouchSH} ];then
- rm "${init1path}/${eGTouchSH}"
- echo "(I) Removing ${init1path}/${eGTouchSH}."
- fi
- }
-
- CheckLightDMExist(){
- if [ -e ${lightdmconfdpath} ];then #/etc/lightdm/lightdm.conf.d/ folder is exist
- cp -f "Rule/${lightdmconfdfile}" ${lightdmconfdpath}
- chmod a+x ${lightdmconfdpath}/${lightdmconfdfile}
- echo "(I) Copying ${lightdmconfdfile} to ${lightdmconfdpath}."
- sed -i '/DetectRotation/s/0/1/' $etcpath/$IniFile
- lightdmexist="true"
- elif [ -e ${lightdmpath} ];then # lightdm folder is exist
- if [ ! -e ${lightdmpath}/lightdm.conf ]; then
- echo [SeatDefaults] > ${lightdmpath}/lightdm.conf
- fi
- sed -i '/\[SeatDefaults\]/agreeter-setup-script=\/usr\/bin\/eGTouchD' ${lightdmpath}/lightdm.conf
- echo "(I) Add startup setting to ${lightdmpath}/lightdm.conf"
- sed -i '/DetectRotation/s/0/1/' $etcpath/$IniFile
- lightdmexist="true"
- fi
- }
-
- RemoveLightDMSetting(){
- if [ -e ${lightdmconfdpath} ];then #/etc/lightdm/lightdm.conf.d/ folder is exist
- rm ${lightdmconfdpath}/${lightdmconfdfile}
- echo "(I) Removing ${lightdmconfdpath}/${lightdmconfdfile}"
- elif [ -e ${lightdmpath} ];then # lightdm is exist
- echo "(I) ${lightdmpath} file found."
- sed -i '/eGTouchD/d' ${lightdmpath}/lightdm.conf
- echo "(I) Remove startup setting from ${lightdmpath}/lightdm.conf"
- fi
- }
-
-
- CheckRClocalExist(){
- if [ ! -e ${rclocalModulesPath} ];then # rc.local is not exist
- if [ ${Distri} = "FC16" -o ${Distri} = "FC17" -o ${Distri} = "FC18" -o ${Distri} = "FC19" -o ${Distri} = "FC20" -o ${Distri} = "FC21" -o ${Distri} = "FC22" -o ${Distri} = "FC2X" -o ${Distri} = "FC3X" ];then
- echo "(I) Copy ${rclocalfile} file to ${rclocalModulesPath}."
- cp -f "Rule/${rclocalfile}" ${rclocalModulesPath}
- chmod a+x ${rclocalModulesPath}
- echo "(I) Starting rc-local.service"
- systemctl restart rc-local.service
- else
- echo "(I) No ${rclocalModulesPath} file found."
- RemoveDriver
- echo ""
- exit 1
- fi
- fi
- echo "(I) Found ${rclocalModulesPath} file."
- }
-
- AllotRClocalPath(){ # This function would get target distri's rclocal path. And check whether it exist.
- if [ ${Distri} = "SUSE" ]; then
- ModifySUSE11Xorg
- if [ -e ${rclocalpathSUSE11} ]; then
- rclocalModulesPath=${rclocalpathSUSE11}
- else
- rclocalModulesPath=${rclocalpath1}
- fi
- elif [ ${Distri} = "FC14" -o ${Distri} = "FC16" -o ${Distri} = "FC17" -o ${Distri} = "FC18" -o ${Distri} = "FC19" -o ${Distri} = "FC20" -o ${Distri} = "FC21" -o ${Distri} = "FC22" -o ${Distri} = "Redhat6" -o ${Distri} = "CentOS6.3" -o ${Distri} = "CentOS6.4" -o ${Distri} = "CentOS6.2" -o ${Distri} = "Slackware" -o ${Distri} = "CentOS6.5" -o ${Distri} = "CentOS7.0" -o ${Distri} = "CentOS6.6" -o ${Distri} = "FC2X" -o ${Distri} = "FC3X" ];then
- rclocalModulesPath=${rclocalpath2}
- if [ -e ${rclocalpath2} ]; then
- chmod 755 ${rclocalpath2}
- fi
- else
- rclocalModulesPath=${rclocalpath}
- fi
- }
-
- ModifySUSE11Xorg()
- {
- if [ -e ${xorgconfpath} ]; then
- grep -q "ServerFlags" ${xorgconfpath}
- fi
-
- if [ $? -eq 0 ]; then
- grep -q "AutoAddDevices" ${xorgconfpath}
- if [ $? -eq 0 ]; then
- echo "(I) Support AutoAddDevices on SUSE11"
- else
- sed -i '/Section "ServerFlags"/a\ Option "AutoAddDevices" "1"' ${xorgconfpath}
- fi
- fi
-
- }
-
- ModifyRClocal() {
- if [ -e ${rclocalModulesPath} ]; then
- grep -q "### Beginning: Launch ${drivername}D daemon while setup boot-up ###" ${rclocalModulesPath}
- fi
-
- if [ $? -eq 1 ]; then
- AttachDrvExecAtRclocal ${rclocalModulesPath}
- else
- DetachDrvExecFromRclocal
- if [ -e $rclocalModulesPath} ]; then
- AttachDrvExecAtRclocal ${rclocalModulesPath}
- fi
- fi
- }
-
- Add2Blacklist() {
- if [ -w ${blacklistpath} ]; then
- grep -q $1 ${blacklistpath}
- if [ $? -eq 1 ]; then
- filelines=`cat ${blacklistpath} | wc -l`
- if [ ${filelines} > 1 ];then
- echo "(I) Add kernel module $1 into ${blacklistpath}."
- sed -i ''${filelines}'a\### Beginning: blacklist usbtouchscreen ###\
- blacklist usbtouchscreen\
- ### End: blacklist usbtouchscreen ###' ${blacklistpath}
- else
- echo -e "\n### Beginning: blacklist usbtouchscreen ###\nblacklist usbtouchscreen\n### End: blacklist usbtouchscreen ###" > ${blacklistpath}
- fi
- else
- echo "(I) The kernel module $1 has been added in ${blacklistpath}."
- fi
- else
- echo -e "\n### Beginning: blacklist usbtouchscreen ###\nblacklist usbtouchscreen\n### End: blacklist usbtouchscreen ###" > ${blacklistpath}
- fi
- }
-
- ShowBlacklistMenu() {
- echo "(I) It is highly recommended to add it into blacklist."
- echo -n "(Q) Do you want to add it into blacklist? (y/n) "
- while : ; do
- read yorn
- case $yorn in
- [Yy]) Add2Blacklist $1
- break;;
- [Nn]) # Nothing to do here.
- break;;
- *) echo "(I) Please choose [y] or [n]"
- echo -n "(A) ";;
- esac
- done
- }
-
- CheckModuleAndBlacklist() {
- checkmod="lsmod"
- modfile="mod.info"
- ${checkmod} > ${modfile} 2> ${trash}
- grep -q "usbtouchscreen" ${modfile}
- if [ $? -eq 0 ]; then
- echo "(I) Found inbuilt kernel module: usbtouchscreen"
- ShowBlacklistMenu "usbtouchscreen"
- fi
- rm -f ${modfile}
- }
-
- RestoreBlacklist() {
- if [ -w ${blacklistpath} ]; then
- grep -q "blacklist usbtouchscreen" ${blacklistpath}
- if [ $? -eq 0 ]; then
- sed -i '/### Beginning: blacklist usbtouchscreen ###/,/### End: blacklist usbtouchscreen ###/d' ${blacklistpath}
- echo "(I) Removed blacklist usbtouchscreen from ${blacklistpath}."
- fi
- fi
- }
-
- AttachUdevRule() {
- if [ ${Distri} = "SUSE" ];then
- if [ -e ${xorgpath1}/${xorgfile} ]; then
- echo "(W) Found udev rule: ${xorgfile}."
- else
- echo "(I) Copy udev rule: ${xorgfile} to ${xorgpath1}."
- cp -f "Rule/${xorgfile}" ${xorgpath1}
- fi
- elif [ ${Distri} = "Ubuntu10.04" ];then
- if [ -e ${xorgpath2}/${xorgfile} ]; then
- echo "(W) Found udev rule: ${xorgfile}."
- else
- echo "(I) Copy udev rule: ${xorgfile} to ${xorgpath2}."
- cp -f "Rule/${xorgfile}" ${xorgpath2}
- fi
- elif [ -e /usr/lib*/xorg/modules/input/libinput_drv.so ]; then
- if [ -e ${xorgpath}/${xorgfile_libinput} ]; then
- echo "(W) Found udev rule: ${xorgfile_libinput}."
- else
- echo "(I) Copy udev rule: ${xorgfile_libinput} to ${xorgpath}."
- cp -f "Rule/${xorgfile_libinput}" ${xorgpath}
- fi
- else
- if [ -e ${xorgpath}/${xorgfile} ]; then
- echo "(W) Found udev rule: ${xorgfile}."
- else
- echo "(I) Copy udev rule: ${xorgfile} to ${xorgpath}."
- cp -f "Rule/${xorgfile}" ${xorgpath}
- fi
- fi
- }
-
- DetachUdevRule() {
- if [ -e ${xorgpath}/${xorgfile} ]; then # for Ubuntu 11.04 and Fedora 15
- rm -rf ${xorgpath}/${xorgfile}
- echo "(I) Removed udev rule: ${xorgpath}/${xorgfile}."
- elif [ -e ${xorgpath}/${xorgfile_libinput} ]; then
- rm -rf ${xorgpath}/${xorgfile_libinput}
- echo "(I) Removed udev rule: ${xorgpath}/${xorgfile_libinput}."
- else
- if [ -e ${xorgpath1}/${xorgfile} ]; then # for Open SuSe 11.04
- rm -rf ${xorgpath1}/${xorgfile}
- echo "(I) Removed udev rule: ${xorgpath1}/${xorgfile}."
- else
- echo "(W) No udev rule: ${xorgfile} found."
- fi
- fi
- }
-
- RemoveSerioScript() {
- if [ -w ${rclocalpath} ]; then
- grep -q "echo -n" ${rclocalpath}
- if [ $? -eq 0 ]; then
- grep -q "# added by eGalaxTouch installer" ${rclocalpath}
- if [ $? -eq 0 ]; then
- sed -i '/# added by eGalaxTouch installer/,/echo -n/d' ${rclocalpath}
- echo "(I) Restored ${rclocalpath}."
- fi
- fi
- fi
- if [ -e ${initpath}/${seriofile} ]; then
- rm -f ${initpath}/${seriofile}
- rm -f ${rcSpath}/${rcSfile}
- echo "(I) Removed serio_raw script: ${initpath}/${seriofile}."
- fi
- }
-
- RemoveDriver() {
- temppath=`find ${installpath} -name ${driverEXE}`
- sysDrvFldr=${temppath%/*}
- if [ -z "${sysDrvFldr}" ]; then
- echo "(E) The driver archive has been removed already."
- echo ""
- exit 1
- elif [ -n "${sysDrvFldr}" ]; then
- ${driverEXE} -k
- rm -rf ${sysDrvFldr}
- echo "(I) Removed ${drivername} driver archive from ${sysDrvFldr}."
- fi
-
- RemoveeGTouchFile
- RemoveShortcut
- RemoveSerioScript
- DetachDrvExecFromRclocal
-
- if [ ${Distri} = "FC16" -o ${Distri} = "FC17" -o ${Distri} = "FC18" -o ${Distri} = "FC19" -o ${Distri} = "FC20" -o ${Distri} = "FC21" -o ${Distri} = "FC22" -o ${Distri} = "FC2X" -o ${Distri} = "FC3X" ];then
- rm -rf ${rclocalModulesPath}
- fi
-
- RestoreBlacklist
- DetachModuleAtBoot "uinput"
- if [ $Xexist = "true" ];then
- DetachUdevRule
- fi
- }
-
- AddUtilityShortCut() {
- if [ -e ${sysDrvFldr}/${utilityExec} ]; then
- if [ -e ${pixpath} ]; then
- cp -f Rule/${UtilityPic} ${pixpath}/${UtilityPic}
- fi
-
- if [ -e ${iconpath} ]; then
- cp -f Rule/${UtilityPic} ${iconpath}/${UtilityPic}
- fi
-
- if [ -e ${applicationpath} ]; then
- cp -f Rule/${UtilityDesktop} ${applicationpath}/${UtilityDesktop}
- if [ $cpuArch = "32" ]; then
- sed -i 's/eGTouch64withX/eGTouch32withX/' ${applicationpath}/${UtilityDesktop}
- fi
- fi
- echo "(I) Create ${utilityExec} shortcut in application list."
- fi
-
-
- if [ -f /usr/share/gnome-menus/update-gnome-menus-cache ] ; then
- /usr/share/gnome-menus/update-gnome-menus-cache /usr/share/applications > ~/desktop.en_US.utf8.cache
- mv ~/desktop.en_US.utf8.cache /usr/share/applications/desktop.en_US.utf8.cache
- fi
- }
- RemoveUtilityShortCut() {
- if [ -e ${pixpath}/${UtilityPic} ];then
- rm -f ${pixpath}/${UtilityPic}
- fi
- if [ -e ${iconpath}/${UtilityPic} ];then
- rm -f ${iconpath}/${UtilityPic}
- fi
- if [ -e ${applicationpath}/${UtilityDesktop} ];then
- rm -f ${applicationpath}/${UtilityDesktop}
- fi
- }
-
- CheckUinput(){
- UinputPath1="/dev/uinput"
- UinputPath2="/dev/input/uinput"
- uinput=0
-
- ls ${UinputPath1} 1>${trash} 2>${trash}
- if [ $? = 0 ];then
- echo "(I) Found uinput at path ${UinputPath1}"
- uinput=1
- fi
-
- ls ${UinputPath2} 1>${trash} 2>${trash}
- if [ $? = 0 ];then
- echo "(I) Found uinput at path ${UinputPath2}"
- uinput=1
- fi
-
- if [ ${uinput} != 1 ];then # Found no uinput file
- checkmod="lsmod"
- modfile="mod.info"
- ${checkmod} > ${modfile} 2> ${trash}
- grep -q "uinput" ${modfile}
-
- if [ $? != 0 ]; then # Not found uinput.ko in modules
- checkmodprobe="modprobe -l -a"
- modprobefile="modprobe.info"
- ${checkmodprobe} > ${modprobefile} 2> ${trash}
- grep -q "uinput" ${modprobefile}
- if [ $? -eq 0 ]; then # Found uinput.ko in modules
- echo "(I) Found uinput.ko in modules."
- Loaduinput="modprobe uinput"
- ${Loaduinput} # Load uinput modules
- AttachModuleAtBoot "uinput"
- else
- echo "(E) Can't load uinput module. Please rebuild the module before installation."
- exit 1
- fi
- fi
- fi
-
- rm -f ${modfile}
- rm -f ${modprobefile}
- }
- AttachModuleAtBoot(){
- echo "(I) Attach module $1 loaded at boot."
- if [ -w ${etcModuleFile1} ]; then
- grep -q "### Beginning: Load ${1}.ko modules ###" ${etcModuleFile1}
- if [ $? -eq 1 ]; then
- filelines=`cat ${etcModuleFile1} | wc -l`
- sed -i ''${filelines}'a\### Beginning: Load '${1}'.ko modules ###\
- '${1}'\
- ### End: Load '${1}'.ko modules###' ${etcModuleFile1}
- echo "(I) Add ${1} module into ${etcModuleFile1} file."
- fi
- elif [ -w ${etcModuleFile2} ]; then
- grep -q "### Beginning: Load ${1}.ko modules ###" ${etcModuleFile2}
- if [ $? -eq 1 ]; then
- filelines=`cat ${etcModuleFile2} | wc -l`
- sed -i ''${filelines}'a\### Beginning: Load '${1}'.ko modules ###\
- '${1}'\
- ### End: Load '${1}'.ko modules###' ${etcModuleFile2}
- echo "(I) Add ${1} module into ${etcModuleFile2} file."
- fi
- elif [ -w ${etcModuleFile3} ]; then
- grep -q "### Beginning: Load ${1}.ko modules ###" ${etcModuleFile3}
- if [ $? -eq 1 ]; then
- filelines=`cat ${etcModuleFile3} | wc -l`
- sed -i ''${filelines}'a\### Beginning: Load '${1}'.ko modules ###\
- '${1}'\
- ### End: Load '${1}'.ko modules###' ${etcModuleFile3}
- echo "(I) Add ${1} module into ${etcModuleFile3} file."
- fi
- elif [ -w ${etcModuleFile4} ]; then
- grep -q "### Beginning: Load ${1}.ko modules ###" ${etcModuleFile4}
- if [ $? -eq 1 ]; then
- filelines=`cat ${etcModuleFile4} | wc -l`
- sed -i ''${filelines}'a\### Beginning: Load '${1}'.ko modules ###\
- MODULES_LOADED_ON_BOOT="'${1}'"\
- ### End: Load '${1}'.ko modules###' ${etcModuleFile4}
- echo "(I) Add ${1} module into ${etcModuleFile4} file."
- fi
- elif [ -w ${rclocalModulesPath} ]; then
- grep -q "### Beginning: Load ${1}.ko modules ###" ${rclocalModulesPath}
- if [ $? -eq 1 ]; then
- filelines=`cat ${rclocalModulesPath} | wc -l`
- echo "(I) Add modprobe '${1}' module into ${rclocalModulesPath} file."
- sed -i ''${filelines}'a\### Beginning: Load '${1}'.ko modules ###\
- modprobe '${1}'\
- ### End: Load '${1}'.ko modules###' ${rclocalModulesPath}
- fi
- else
- echo "(E) Can't add ${1} modules in ${etcModuleFile1}, ${etcModuleFile2}, ${etcModuleFile3} or ${rclocalModulesPath}."
- exit 1
- fi
- }
-
- DetachModuleAtBoot() {
- if [ -w ${etcModuleFile1} ]; then
- grep -q "Load $1.ko modules" ${etcModuleFile1}
- if [ $? -eq 0 ]; then
- sed -i '/### Beginning: Load $1.ko modules ###/,/### End: Load $1.ko modules###/d' ${etcModuleFile1}
- rmmod $1
- echo "(I) Removed $1 modules from ${etcModuleFile1}."
- fi
- elif [ -w ${etcModuleFile2} ]; then
- grep -q "Load $1.ko modules" ${etcModuleFile2}
- if [ $? -eq 0 ]; then
- sed -i '/### Beginning: Load $1.ko modules ###/,/### End: Load $1.ko modules###/d' ${etcModuleFile2}
- rmmod $1
- echo "(I) Removed $1 modules from ${etcModuleFile2}."
- fi
- elif [ -w ${etcModuleFile3} ]; then
- grep -q "Load $1.ko modules" ${etcModuleFile3}
- if [ $? -eq 0 ]; then
- sed -i '/### Beginning: Load $1.ko modules ###/,/### End: Load $1.ko modules###/d' ${etcModuleFile3}
- rmmod $1
- echo "(I) Removed $1 modules from ${etcModuleFile3}."
- fi
- elif [ -w ${rclocalModulesPath} ]; then
- grep -q "Load $1.ko modules" ${rclocalModulesPath}
- if [ $? -eq 0 ]; then
- sed -i '/### Beginning: Load $1.ko modules ###/,/### End: Load $1.ko modules###/d' ${rclocalModulesPath}
- rmmod $1
- echo "(I) Removed $1 modules from ${rclocalModulesPath}."
- fi
- else
- echo "(E) Can't find ${etcModuleFile1}, ${etcModuleFile2}, ${etcModuleFile3} or ${rclocalModulesPath} file."
- fi
- }
-
- GetDistribution(){
- Xcommand="X -version"
- tmpfile="tmp.info"
-
- ${Xcommand}>${tmpfile} 2>&1
-
- CheckCondition1="SUSE"
- CheckCondition2="Build ID: xorg-x11-server 1.9.0-15.fc14 " #FC14
- CheckCondition3="Build ID: xorg-x11-server 1.7.7-26.el6" #RHEL 6.1
- CheckCondition4="Build ID: xorg-x11-server 1.11.1-1.fc16" #FC16
- CheckCondition5="Build ID: xorg-x11-server 1.12.0-2.fc17" #FC17
- CheckCondition6="xorg-server 2:1.7.6-2ubuntu7" #Ubuntu 10.04
- CheckCondition7="Build ID: xorg-x11-server 1.8.0-12.fc13" #FC13
- CheckCondition8="Build ID: xorg-x11-server 1.10.6-1.el6.centos" #CentOS 6.3
- CheckCondition9="Build ID: xorg-x11-server 1.13.0-11.el6.centos" #CentOS 6.4
- CheckCondition10="Build ID: xorg-x11-server 1.10.4-6.el6" #CentOS 6.2
- CheckCondition11="Build ID: xorg-x11-server 1.13.0-11.el6" #RHEL 6.4
- CheckCondition12="Build ID: xorg-x11-server 1.13.0-11.fc18" #FC18
- CheckCondition13="Build ID: xorg-x11-server 1.14.1-4.fc19" #FC19
- CheckCondition14="Build ID: xorg-x11-server 1.10.6-1.el6" #RHEL 6.3
- CheckCondition15="Slackware Linux Project" #Slackware
- CheckCondition16="Build ID: xorg-x11-server 1.14.4-5.fc20" #FC20
- CheckCondition17="Build ID: xorg-x11-server 1.13.0-23" #CentOS 6.5
- CheckCondition18="Build ID: xorg-x11-server 1.15.0-7.el7" #CentOS 7.0
- CheckCondition19="Build ID: xorg-x11-server 1.15.0-22.el6.centos" #CentOS 6.6
- CheckCondition20="Build ID: xorg-x11-server 1.16.1-1.fc21" #FC21
- CheckCondition21="Build ID: xorg-x11-server 1.17.1-11.fc22" #FC22
- CheckCondition22="fc2" #FC2X
- CheckCondition23="fc3" #FC3X
-
- grep -q "${CheckCondition1}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="SUSE"
- fi
-
- grep -q "${CheckCondition2}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC14"
- fi
-
- grep -q "${CheckCondition3}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="Redhat6"
- fi
-
- grep -q "${CheckCondition4}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC16"
- fi
-
- grep -q "${CheckCondition5}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC17"
- fi
-
- grep -q "${CheckCondition6}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="Ubuntu10.04"
- fi
-
- grep -q "${CheckCondition7}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC14"
- fi
-
- grep -q "${CheckCondition8}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="CentOS6.3"
- fi
-
- grep -q "${CheckCondition9}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="CentOS6.4"
- fi
-
- grep -q "${CheckCondition10}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="CentOS6.2"
- fi
-
- grep -q "${CheckCondition11}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="Redhat6"
- fi
-
- grep -q "${CheckCondition12}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC18"
- fi
-
- grep -q "${CheckCondition13}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC19"
- fi
-
- grep -q "${CheckCondition14}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="RedHat6"
- fi
-
- grep -q "${CheckCondition15}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="Slackware"
- fi
-
- grep -q "${CheckCondition16}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC20"
- fi
-
- grep -q "${CheckCondition17}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="CentOS6.5"
- fi
-
- grep -q "${CheckCondition18}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="CentOS7.0"
- fi
-
- grep -q "${CheckCondition19}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="CentOS6.6"
- fi
-
- grep -q "${CheckCondition20}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC21"
- fi
-
- grep -q "${CheckCondition21}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC22"
- fi
-
- grep -q "${CheckCondition22}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC2X"
- fi
-
- grep -q "${CheckCondition23}" ${tmpfile}
- if [ $? = 0 ];then
- Distri="FC3X"
- fi
-
- rm ${tmpfile}
- return 0
- }
-
- RemindKernelHIDPatch(){
- echo ""
- echo "(W) No hid-multitouch module detected"
- echo "(W) Please follow the Programming Guide to patch hid-core source code in kernel."
- echo ""
- echo " [Y] Yes, I've patched kernel already. [N] No, I haven't patched."
- read ans
- if [ ${ans} != "Y" -a ${ans} != "y" ];then
- echo "(I) Please patch kernel before installing driver. Thanks."
- echo ""
- exit 1
- fi
- }
-
- RemindKernelPatch(){
- echo ""
- echo "(W) You need to do kernel patch first."
- echo "(W) Please follow the Programming Guide to patch kernel."
- echo ""
- echo " [Y] Yes, I've patched kernel already. [N] No, I haven't patched."
- read ans
- if [ ${ans} != "Y" -a ${ans} != "y" ];then
- echo "(I) Please patch kernel before installing driver. Thanks."
- echo ""
- exit 1
- fi
- }
-
- CheckXversion(){
-
- Xcommand="X -version"
- tmpfile="tmp.info"
- ${Xcommand}>${tmpfile} 2>&1
-
- Xorg="X.Org X Server"
- Xversion=`grep "${Xorg}" ${tmpfile}` # ex: Xversion = X.Org X Server 1.4.0.90.3
- rm ${tmpfile}
-
- Xversion=${Xversion##${Xorg} } # 1.4.0.90.3
- Xmajor=${Xversion%%.*} # 1
- Xtmp=${Xversion#*.} # 4.0.90.3
- Xminor=${Xtmp%%.*} # 4
- Xtmp=${Xtmp#*.} # 0.90.3
- Xrelease=${Xtmp%%.*} # 0
- echo "(I) X.Org X server ${Xmajor}.${Xminor}.${Xrelease}" # 1.4.0
-
- if [ $Xmajor -ge 1 -a $Xminor -ge 8 ] || [ $Xmajor -ge 1 -a $Xminor -ge 7 -a $Xrelease -ge 6 ];then
- echo "(I) X version is 1.7.6 upwards"
- else # kernel version is below 1.8.7
- echo "(W) X version is below 1.7.6."
- RemindKernelPatch
- fi
- }
-
- PatentConfirm(){
- echo ""
- echo "Declaration and Disclaimer
- The programs, including but not limited to software and/or firmware (hereinafter referred to \"Programs\" or \"PROGRAMS\", are owned by eGalax_eMPIA Technology Inc. (hereinafter referred to EETI) and are compiled from EETI Source code. EETI hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use and create derivative works of Programs for the sole purpose in conjunction with an EETI Product, including but not limited to integrated circuit and/or controller. Any reproduction, copies, modification, translation, compilation, application, or representation of Programs except as specified above is prohibited without the express written permission by EETI.
-
- Disclaimer: EETI MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO PROGRAMS, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. EETI reserves the right to make changes without further notice to the Programs described herein. Licensee agrees that EETI does not assume any liability, damages or costs, including but not limited to attorney fees, arising out from Programs themselves or those arising out from the application or combination Programs into other products or circuit. The use or the inclusion of EETI's Programs implies that the Licensee assumes all risk of such use and in doing so indemnifies EETI against all charges, including but not limited to any claims to infringement of any third party's intellectual property right."
-
- echo ""
- if [ ${SilentMode} = "false" ]; then
- echo "Do you agree with above patent declaration?"
- echo " [Y] Yes, I agree. [N] No, I don't agree."
- read ans
- if [ ${ans} != "Y" -a ${ans} != "y" ];then
- exit 1
- fi
- fi
- }
-
- CheckXexist(){
- Xcommand="X -version"
- tmpfile="tmp.info"
- ${Xcommand} 2>${trash} 1>${trash}
- if [ $? != 0 ];then
- Xexist="false"
- drvPkgFldrX="${drvPkgFldr}nonX"
- echo "(W) No X server detected."
- else
- drvPkgFldrX="${drvPkgFldr}withX"
- Xexist="true"
- echo "(W) X server detected."
- fi
- }
-
-
- AskInterface(){
- echo ""
- echo "(Q) Which interface controller do you use?"
- echo -n "(I) [1] RS232 [2] USB [3] PS2 : "
- while : ; do
- read interface
- case $interface in
- 1) interface="rs232"
- break;;
- 2) interface="usb"
- break;;
- 3) interface="ps2"
- break;;
- *) echo "(I) Please choose [1] or [2] or [3]"
- echo -n "(A) ";;
- esac
- done
- }
-
- AskDevNums(){
- echo ""
- echo "(Q) How many controllers do you want to plug-in to system? [1-10]"
- echo -n "(I) Default [1]:"
- read nums
- echo "$nums"
- if [ -z $nums ];then
- echo "(I) Device Nums is set to 1"
- elif [ $nums -le 10 -a $nums -gt 1 ];then
- sed -i '/DeviceNums/s/1/'${nums}'/' $etcpath/$IniFile
- echo "(I) Device Nums is set to ${nums}"
- else
- echo "(I) Device Nums is set to 1"
- fi
-
- if [ ${interface} != "rs232" ]; then
- sed -i '/ScanInterface/s/0/1/' $etcpath/$IniFile
- fi
-
- if [ -e ${rclocalpathSUSE11} ]; then
- sed -i '/EventType/s/0/1/' $etcpath/$IniFile
- fi
-
- }
-
- AskTslib(){
- echo ""
- echo "(Q) Do you need to work with Tslib?"
- echo -n "(I) [y/N] :"
- read ans
- if [ -z $ans ];then
- echo "(I) No tslib support"
- elif [ ${ans} = "Y" -o ${ans} = "y" ];then
- sed -i '/BtnType/s/0/1/' $etcpath/$IniFile #replace BtnType value 0 to 1
- #sed -i '/EndOfDevice/i BtnType 1' $etcpath/$IniFile #insert a line BtnType before EndOfDevice
- else
- echo "(I) No tslib support"
- fi
- }
-
- AskSuppotRatationMultiMonitor(){
- echo ""
- echo "(Q) Do you have requirement of monitor rotation or multi monitor?"
- echo -n "(I) [y/N] :"
- read ans
- if [ -z $ans ];then
- SupportRotationMultiMonitor="false"
- elif [ ${ans} = "Y" -o ${ans} = "y" ];then
- SupportRotationMultiMonitor="true"
- fi
- }
-
- AskSupportBeep(){
- echo ""
- echo "(Q) Do you need beep sound?"
- echo -n "(I) [y/N] :"
- read ans
- if [ -z $ans ];then
- SupportBeep="false"
- elif [ ${ans} = "Y" -o ${ans} = "y" ];then
- SupportBeep="true"
- fi
- }
-
- EnablePCSPKR(){
- if [ -w ${blacklistpath} ]; then
- grep -q "blacklist pcspkr" ${blacklistpath}
- if [ $? -eq 0 ]; then
- sed -i 's/^.*blacklist pcspkr/#blacklist pcspkr/' ${blacklistpath}
- echo "(I) Enable pcspkr from ${blacklistpath}."
- fi
- fi
- }
-
- RemovePCSPKR(){
- if [ -w ${blacklistpath} ]; then
- grep -q "#blacklist pcspkr" ${blacklistpath}
- if [ $? -eq 0 ]; then
- sed -i 's/^.*blacklist pcspkr/blacklist pcspkr/' ${blacklistpath}
- echo "(I) Restored pcspkr from ${blacklistpath}."
- fi
- fi
- }
-
- InstallUdevRule(){
- if [ -e ${udevpath} ];then
- cp -f "Rule/${udevfile}" ${udevpath}
- chmod a+x ${udevpath}/${udevfile}
- echo "(I) Copy ${udevfile} to ${udevpath}."
- fi
- }
-
- RemoveUdevRule(){
- if [ -e ${udevpath}/${udevfile} ];then
- rm ${udevpath}/${udevfile}
- echo "(I) Removed ${udevpath}/${udevfile}"
- fi
- }
-
- if [ $# = 0 ]; then
- SilentMode="false"
- clear
- ShowTitle
- CheckPermission
- CheckCpuType
- InitMember
- CheckXexist
- if [ $Xexist = "true" ];then
- GetDistribution
- fi
- AllotRClocalPath
- PatentConfirm
- AskInterface
- pause
- #CheckRClocalExist
-
- CheckUinput
- InstallDriverRoutine
- InstallUdevRule
-
- AskSuppotRatationMultiMonitor
- if [ $SupportRotationMultiMonitor = "true" ];then
- echo "(I) Please assign MonitorName in /etc/eGTouchL.ini. ex:\"eDP-1\" ,you can check monitor name by command \"xrandr\"."
- echo "(I) Press [Enter] key to continue.........."
- read DISCARD
-
- AskSupportBeep
- if [ $SupportBeep = "true" ];then
- EnablePCSPKR
- fi
- else
- CheckRCExist
- fi
-
- if [ $interface = "usb" ];then
- CheckUSBType
- CheckUSBPIDnKernel
- CheckHIDRAW
- if [ $Xexist = "true" ];then
- CheckXversion
- else
- RemindKernelPatch
- fi
- elif [ $interface = "ps2" ];then
- SetPS2Config
- fi
-
-
- if [ -e ${systemctlpath} ]; then
- echo "(I) Found ${systemctlpath} path for systemd service"
- else
- ModifyRClocal
- fi
-
- AskDevNums
- if [ $Xexist = "true" ];then
- AttachUdevRule # Append udev rule onto X.org
- AddUtilityShortCut # Add/Remove ShortCut
- else
- AskTslib
- fi
-
- if [ -e ${systemdpath}/${daemonService} ]; then
- systemctl start eGTouchD.service
- systemctl enable eGTouchD.service
- elif [ -e ${usrbinpath}/${driverEXE} ]; then
- ${usrbinpath}/${driverEXE} -f
- fi
-
- if [ $SupportRotationMultiMonitor = "true" ];then
- sleep 1
- sed -i '/DetectRotation/s/0/1/' $etcpath/$IniFile
-
- if [ -e ${systemdpath} ];then
- #echo "(I) Put resume service in system"
- cp "Rule/${resumeService}" ${systemdpath}
- chmod a+x ${systemdpath}/${resumeService}
- systemctl enable ${resumeService}
- fi
- fi
-
- echo ""
- echo "(I) Driver installation completed. Setup version $Script_Ver."
- echo "(I) Please reboot the system."
-
- elif [ $# -ge 1 ]; then
- if [ $1 = "uninstall" ]; then
- SilentMode="false"
- clear
- ShowTitle
- CheckPermission
- CheckCpuType
- InitMember
- CheckXexist
- if [ $Xexist = "true" ];then
- GetDistribution
- fi
- AllotRClocalPath
-
- echo "(I) Begin to remove ${drivername} driver."
- RemoveDriver
- RemoveUtilityShortCut # Add/Remove Utility ShortCut
- RemoveLightDMSetting
- RemoveRCSetting
- RemovePCSPKR
- RemoveUdevRule
-
- if [ -e ${systemdpath}/${resumeService} ];then
- #echo "(I) Remove resume service"
- systemctl disable ${resumeService}
- rm "${systemdpath}/${resumeService}"
- fi
- echo ""
- echo "(I) The ${drivername} driver has been removed successfully."
- echo "(I) Please reboot the system."
- elif [ $1 = "-silent" ] || [ $1 = "silent" ]; then
- SilentMode="true"
- clear
- ShowTitle
- CheckPermission
- CheckCpuType
- InitMember
- CheckXexist
- if [ $Xexist = "true" ];then
- GetDistribution
- fi
- AllotRClocalPath
- PatentConfirm
- #AskInterface
- CheckUinput
- InstallDriverRoutine
- InstallUdevRule
- #AskSuppotRatationMultiMonitor
- CheckRCExist
-
- if [ $interface = "usb" ];then
- CheckUSBType
- CheckUSBPIDnKernel
- CheckHIDRAW
- if [ $Xexist = "true" ];then
- CheckXversion
- else
- RemindKernelPatch
- fi
- elif [ $interface = "ps2" ];then
- SetPS2Config
- fi
-
- if [ -e ${systemctlpath} ]; then
- echo "(I) Found ${systemctlpath} path for systemd service"
- else
- ModifyRClocal
- fi
-
- #AskDevNums
-
- if [ $Xexist = "true" ];then
- AttachUdevRule # Append udev rule onto X.org
- AddUtilityShortCut # Add/Remove ShortCut
- else
- AskTslib
- fi
- # Setting Device Nums Here
- if [ $# -ge 2 ]; then
- if [ $2 = "dev" ]||[ $2 = "-dev" ]; then
- nums=$3
- sed -i '/DeviceNums/s/1/'${nums}'/' $etcpath/$IniFile
- fi
- fi
-
- if [ ${interface} != "rs232" ]; then
- sed -i '/ScanInterface/s/0/1/' $etcpath/$IniFile
- fi
-
- if [ -e ${systemdpath}/${daemonService} ]; then
- systemctl start eGTouchD.service
- systemctl enable eGTouchD.service
- elif [ -e ${usrbinpath}/${driverEXE} ]; then
- ${usrbinpath}/${driverEXE} -f
- fi
-
- echo ""
- echo "(I) Driver installation completed. Setup version $Script_Ver."
- echo "(I) Please reboot the system."
-
-
- # Start eGTouchD
- #/usr/bin/eGTouchD -f
-
- else
- echo "(I) Usage:"
- echo "(I) sh $0: install driver package"
- echo "(I) sh $0 uninstall: uninstall driver package"
- fi
- else
- echo "(I) Usage:"
- echo "(I) sh $0: install driver package"
- echo "(I) sh $0 uninstall: uninstall driver package"
- fi
-
- echo ""
-
|