diff --git a/Makefile.dkms b/Makefile.dkms new file mode 100644 index 0000000..3ef3a7f --- /dev/null +++ b/Makefile.dkms @@ -0,0 +1,24 @@ +modname := asus_fan +DKMS := dkms +modver := $(shell awk -F'"' '/define *ASUS_FAN_VERSION/{print $$2}' < asus-fan.c) + +# directory in which generated files are stored +DKMS_DEST := /usr/src/$(modname)-$(modver) + +all: install + +src_install: + mkdir -p '$(DKMS_DEST)' + cp Makefile asus-fan.c '$(DKMS_DEST)' + sed 's/#MODULE_VERSION#/$(modver)/' dkms/dkms.conf > '$(DKMS_DEST)/dkms.conf' + +build: src_install + $(DKMS) build -m asus-fan -v $(modver) + +install: build + $(DKMS) install -m asus-fan -v $(modver) + +uninstall: + $(DKMS) remove -m asus-fan -v $(modver) --all + +.PHONY: all src_install build install uninstall diff --git a/asus_fan.c b/asus_fan.c index e8693da..0fae0f4 100644 --- a/asus_fan.c +++ b/asus_fan.c @@ -30,6 +30,8 @@ MODULE_LICENSE("GPL"); (container_of((pdrv), struct asus_fan_driver, platform_driver)) #define DRIVER_NAME "asus_fan" +#define ASUS_FAN_VERSION "0.4" + #define TEMP1_CRIT 105 #define TEMP1_LABEL "gfx_temp" diff --git a/dkms/dkms.conf b/dkms/dkms.conf new file mode 100644 index 0000000..b28bb75 --- /dev/null +++ b/dkms/dkms.conf @@ -0,0 +1,7 @@ +PACKAGE_NAME="asus-fan" +PACKAGE_VERSION="#MODULE_VERSION#" +MAKE[0]="make KVERSION=$kernelver" +CLEAN="make clean" +BUILT_MODULE_NAME[0]="asus_fan" +DEST_MODULE_LOCATION[0]="/kernel/drivers/acpi" +AUTOINSTALL="yes" diff --git a/misc/buildscripts/archlinux/PKGBUILD b/misc/buildscripts/archlinux/PKGBUILD new file mode 100644 index 0000000..aed511d --- /dev/null +++ b/misc/buildscripts/archlinux/PKGBUILD @@ -0,0 +1,28 @@ +# Maintainer: Markus Meissner + +pkgname=asus-fan-dkms +pkgver=0.9 +pkgrel=1 +_realname=asus-fan +pkgdesc="Kernel module allowing to controll (both) fan inside various asus laptops" +arch=('i686' 'x86_64') +url=("http://github.com/daringer/asus-fan") +license=('GPL') +depends=('dkms') +install=asus-fan-dkms.install +source=("https://github.com/daringer/asus-fan/archive/v${pkgver}.tar.gz") + +build() { + cd ${srcdir}/${_realname}-${pkgver} + + _kernver="$(uname -r)" + + make KDIR=/lib/modules/${_kernver}/build +} + +package() { + cd ${srcdir}/${_realname}-${pkgver} + + make install + gzip "${pkgdir}/usr/lib/modules/${_extramodules}/bbswitch.ko" +} diff --git a/misc/buildscripts/archlinux/asus-fan-dkms.install b/misc/buildscripts/archlinux/asus-fan-dkms.install new file mode 100644 index 0000000..97b624c --- /dev/null +++ b/misc/buildscripts/archlinux/asus-fan-dkms.install @@ -0,0 +1,15 @@ +post_install() { + dkms install -m asus-fan -v ${1%%-*} +} +pre_upgrade() { + local curver=${2%%-*} + # $2 is unset due to a bug. Query current version using pacman as fallback + [ -n "$curver" ] || curver=$(pacman -Qi asus-fan-dkms | awk '/^Version/{print $3}') + pre_remove $curver +} +post_upgrade() { + post_install ${1%%-*} +} +pre_remove() { + dkms remove -m asus-fan -v ${1%%-*} --all +}