37 lines
1.0 KiB
Bash
Executable File
37 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
MODULE_NAME="tempMonitor"
|
|
DEVICE_NAME="/dev/temp_monitor"
|
|
|
|
echo "What would you like to do?"
|
|
echo "1. Install"
|
|
echo "2. Uninstall"
|
|
read -p "Enter option [1 or 2]: " option
|
|
|
|
case $option in
|
|
1)
|
|
echo "Installing the kernel module..."
|
|
make clean
|
|
make
|
|
sudo rmmod $MODULE_NAME 2>/dev/null
|
|
sudo insmod ${MODULE_NAME}.ko
|
|
MAJOR_NUMBER=$(sudo dmesg | grep "temp_monitor: Device initialized with major number" | tail -1 | awk '{print $NF}')
|
|
if [ -z "$MAJOR_NUMBER" ]; then
|
|
echo "Failed to get major number from dmesg. Aborting."
|
|
exit 1
|
|
fi
|
|
sudo mknod $DEVICE_NAME c $MAJOR_NUMBER 0
|
|
sudo chmod 666 $DEVICE_NAME
|
|
echo "Module installed and device file created successfully."
|
|
;;
|
|
2)
|
|
echo "Uninstalling the kernel module..."
|
|
sudo rmmod $MODULE_NAME
|
|
sudo rm -f $DEVICE_NAME
|
|
echo "Module and device file removed successfully."
|
|
;;
|
|
*)
|
|
echo "Invalid option."
|
|
;;
|
|
esac
|