#!/bin/bash VERSION=`uname -r` # Set execute permission chmod a+x skinstall skuninstall smartdem skeyver error-report # Remove the loaded module (lsmod | grep skey > /dev/null) && rmmod skey # Copy the module if ! install -d -o root -g root /lib/modules/$VERSION/misc ; then echo Error creating the directory /lib/modules/$VERSION/misc/ exit 1 fi if grep printk_R1b7d4074 /proc/ksyms > /dev/null ; then if ! install -D -o root -g root -m 644 skey_R.o /lib/modules/$VERSION/misc/skey.o ; then echo Error copying module skey_R.o in /lib/modules/$VERSION/misc/ exit 1 fi elif grep printk_Rsmp_1b7d4074 /proc/ksyms > /dev/null ; then if ! install -D -o root -g root -m 644 skey_Rsmp_.o /lib/modules/$VERSION/misc/skey.o ; then echo Error copying module skey_Rsmp_.o in /lib/modules/$VERSION/misc/ exit 1 fi elif grep printk_Rsmp1b7d4074 /proc/ksyms > /dev/null ; then if ! install -D -o root -g root -m 644 skey_Rsmp.o /lib/modules/$VERSION/misc/skey.o ; then echo Error copying module skey_Rsmp.o in /lib/modules/$VERSION/misc/ exit 1 fi else if ! install -D -o root -g root -m 644 skey.o /lib/modules/$VERSION/misc/skey.o ; then echo Error copying module skey.o in /lib/modules/$VERSION/misc/ exit 1 fi fi # Remove devices [ -e /dev/skey0 ] && rm -f /dev/skey0 [ -e /dev/skey1 ] && rm -f /dev/skey1 [ -e /dev/skey2 ] && rm -f /dev/skey2 [ -e /dev/skey3 ] && rm -f /dev/skey3 [ -e /dev/skey4 ] && rm -f /dev/skey4 [ -e /dev/skey5 ] && rm -f /dev/skey5 # Create devices mknod /dev/skey0 c 59 0 chmod 666 /dev/skey0 chgrp daemon /dev/skey0 mknod /dev/skey1 c 59 1 chmod 666 /dev/skey1 chgrp daemon /dev/skey1 mknod /dev/skey2 c 59 2 chmod 666 /dev/skey2 chgrp daemon /dev/skey2 mknod /dev/skey3 c 59 3 chmod 666 /dev/skey3 chgrp daemon /dev/skey3 mknod /dev/skey4 c 59 4 chmod 666 /dev/skey4 chgrp daemon /dev/skey4 mknod /dev/skey5 c 59 5 chmod 666 /dev/skey5 chgrp daemon /dev/skey5 # Configure the module if ! ./skeyver /lib/modules/$VERSION/misc/skey.o > /dev/null ; then echo Error setting module version exit 1 fi # Add alias for the module if [ -e /etc/modules.conf ] ; then CONFMODULES=/etc/modules.conf else CONFMODULES=/etc/conf.modules fi cp $CONFMODULES $CONFMODULES.orig cat $CONFMODULES.orig | grep -v "char-major-59" > $CONFMODULES echo alias char-major-59 skey >> $CONFMODULES # Run depmod echo Updating modules dependencies if ! depmod -a ; then echo Error running depmod exit 1 fi # Manually load the module the first time if ! modprobe skey ; then echo Error loading the module exit 1 fi echo SmartKey driver installed exit 0