You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bbswitch-g14/scripts/install_dkms.sh

58 lines
1.4 KiB
Bash

#!/bin/bash
uninstall_bbswitch_modules()
{
local PKGVER="$(ls /usr/src/ | grep bbswitch | sed 's/^.*-//')"
# Warning: dmks say error if it doesn't know bbswitch module.
# This is the case for the first time, but it's not an error!
# TODO: Don't use the code below if PKGVER is empty (no return,
# no space...)
# Remove all version of bbswitch known by dkms
dkms remove -m bbswitch -v $PKGVER --all
depmod -a
# Remove all sources of bbswitch
# Keep rm after dkms remove because this last use dkms.conf
rm -fr /usr/src/bbswitch-$PKGVER
}
install_bbswitch_module()
{
# Before install, remove previous versions
uninstall_bbswitch_modules
# Give a version to this bbswitch module
local GITVERSION=`git describe --tags`
sudo mkdir -p "/usr/src/bbswitch-$GITVERSION"
cp *.c "/usr/src/bbswitch-$GITVERSION"
cp Makefile "/usr/src/bbswitch-$GITVERSION"
cp ./dkms/dkms.conf "/usr/src/bbswitch-$GITVERSION"
sed "s/REPLACE/$GITVERSION/" "/usr/src/bbswitch-$GITVERSION/dkms.conf"
# Compilation and installation
dkms add -m bbswitch -v $GITVERSION
dkms build -m bbswitch -v $GITVERSION
dkms install -m bbswitch -v $GITVERSION
depmod -a
#Now user can do : modprobe bbswitch
}
case $1 in
"install") install_bbswitch_module;;
"uninstall") uninstall_bbswitch_modules;;
*) echo "Error: Don't call this script directly";;
esac