4 # name of the file with module
5 MODULE_FILE=swap_driver
9 DEVICE_MAJOR=__DEV_MAJOR__
11 # name of device visible in /proc/devices
15 DEVICE_FILE=__DEV_DIR__/${DEVICE}
17 KSYMS=kallsyms_lookup_name
19 # ADDRESS for "kallsyms_lookup_name" function taken from /proc/kallsyms
20 ADDRESS=0x`sed "/ kallsyms_lookup_name/ ! d" /proc/kallsyms | sed "s/ T kallsyms_lookup_name//"`
22 if [ "${ADDRESS}" = "0x" ]; then
23 if [ "$1" = "" ]; then
24 echo "Enter kallsyms_lookup_name as parameter:"
25 echo "insmod.sh <kallsyms_lookup_name address>"
29 echo "kallsyms_lookup_name address is ${ADDRESS}"
33 MAJOR=`sed "/${DEVICE_NAME}/ ! d" /proc/devices | sed "s/ ${DEVICE_NAME}//"`
34 if [ "${MAJOR}" != "" ] ; then
35 echo "SWAP Driver is already loaded!"
38 MAJOR=`sed "/${DEVICE_NAME}/ ! d" /proc/devices | sed "s/ ${DEVICE_NAME}//"`
39 if [ "${MAJOR}" != "" ] ; then
40 echo "Error: Unable to unload driver module '${MODULE_FILE}'"
45 if [ ! -c ${DEVICE_FILE} ] ; then
46 echo "WARNING: Creating device node with major number [${DEVICE_MAJOR}]!"
47 mknod ${DEVICE_FILE} c ${DEVICE_MAJOR} 0
49 echo "Error: Unable to create device node!"
52 chmod a+r ${DEVICE_FILE}
54 # stat is better, but DTV doesn't have stat
55 DEVICE_MAJOR=`ls -l ${DEVICE_FILE} | awk '{sub(/,/,"",$5); print $5}'`
59 echo "loading module '${MODULE_FILE}'"
60 ./bin/insmod.sh ${MODULE_FILE}.ko device_name=${DEVICE_NAME} device_major=${DEVICE_MAJOR}
62 echo "Error: Unable to load Swap Driver!"
65 MAJOR=`sed "/${DEVICE_NAME}/ ! d" /proc/devices | sed "s/ ${DEVICE_NAME}//"`