Package Details: hid-lg-g710-plus-dkms-git r19.ecd2099-3

Git Clone URL: https://aur.archlinux.org/hid-lg-g710-plus-dkms-git.git (read-only)
Package Base: hid-lg-g710-plus-dkms-git
Description: Linux dkms kernel module to allow use of extra keys on the Logitech g710+ (logitech-g710-linux-driver)
Upstream URL: http://github.com/Wattos/logitech-g710-linux-driver
Licenses: GPL2
Conflicts: hid-lg-g710-plus, logitech-g710, logitech-g710-kmod-git
Provides: hid-lg-g710-plus
Submitter: forivall
Maintainer: None
Last Packager: forivall
Votes: 9
Popularity: 0.161444
First Submitted: 2015-04-04 02:50
Last Updated: 2018-07-01 18:16

Latest Comments

1 2 Next › Last »

aereaux commented on 2018-08-11 02:32

@Zeth I think that should work. Only thing is that the patching should probably go in the package() function.

Zeth commented on 2018-08-09 09:11

@Eschwartz: yes, it's gross because I didn't know how to include a file in the src tree. @aereaux: The issue comes from the upstream module code ignoring the kernel version.

I incorporated the suggestions by Eschwartz and found this patch to work better: https://github.com/Wattos/logitech-g710-linux-driver/pull/31/commits/63713452247688de6f660419bb708f437c870bb3

The whole work looks like this:

makefile.patch:

--- a/src/kernel/dkms.conf
+++ b/src/kernel/dkms.conf
@@ -1,8 +1,8 @@
 BUILT_MODULE_NAME=hid-lg-g710-plus
 PACKAGE_NAME=hid-lg-g710-plus
 PACKAGE_VERSION=0.1
-MAKE="make"
-CLEAN="make clean"
+MAKE="make KVERSION=$kernelver"
+CLEAN="make clean KVERSION=$kernelver"
 DEST_MODULE_LOCATION="/updates"
 REMAKE_INITRD=yes
 AUTOINSTALL="yes"

PKGBUILD:

# Maintainer: forivall <forivall@gmail.com>

_pkgbase=hid-lg-g710-plus
_pkgname=${_pkgbase}-dkms
pkgname=${_pkgname}-git
pkgver=r19.ecd2099
pkgrel=3
pkgdesc="Linux dkms kernel module to allow use of extra keys on the Logitech g710+ (logitech-g710-linux-driver)"
arch=('i686' 'x86_64')
url="http://github.com/Wattos/logitech-g710-linux-driver"
license=('GPL2')
depends=('dkms' 'linux-headers')
makedepends=('git')
provides=('hid-lg-g710-plus')
conflicts=('logitech-g710-kmod-git' 'hid-lg-g710-plus' 'logitech-g710')
install='hid-lg-g710-plus-dkms.install'

source=(
  "${_pkgbase}::git://github.com/Wattos/logitech-g710-linux-driver.git"
  "makefile.patch"
)
sha1sums=('SKIP'
          'c7659301e9d326249a2ea220395b0c08818d443b')


pkgver() {
  cd "$srcdir/$_pkgbase"
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

# build() {
#   cd "$srcdir/$_pkgbase"
#   # make
# }

package() {
  cd "$srcdir/$_pkgbase"

  # patch kernel version detection
  patch -p1 -i "$srcdir/makefile.patch"

  local rev="$(git rev-parse --short HEAD)"

  # msg2 "Starting make install..."
  # make DESTDIR="${pkgdir}" install

  # copy dkms.conf
  # install -Dm644 src/kernel/dkms.conf "${pkgdir}/usr/src/${_pkgbase}-$pkg/dkms.conf"

  # copy sources
  msg2 "Copying sources, including dkms.conf..."
  mkdir -p "${pkgdir}/usr/src/"
  cp -r src/kernel "${pkgdir}/usr/src/${_pkgbase}-$pkgver/"

  msg2 "Copying udev rules..."
  mkdir -p "${pkgdir}/etc/udev/rules.d/"
  cp misc/90-logitech-g710-plus.rules "$pkgdir/etc/udev/rules.d/"

  msg2 "Copying .Xmodmap..."
  mkdir -p "${pkgdir}/usr/share/logitech-g710/"
  cp misc/.Xmodmap "${pkgdir}/usr/share/logitech-g710/"
}

# vim:set ts=2 sw=2 et:

When I down-/upgrade linux and linux-headers now, there's no error popping up for me. Can you confirm that?

aereaux commented on 2018-07-13 19:57

This is also still wrong as far as building for the right kernel, as well. When the kernel is updated, the build (in the hook) fails because it is looking for the wrong version. I think the variable you need to use is $kernelver, although I'm not sure that's the only change that might be needed. Anyways, this page might help: https://wiki.archlinux.org/index.php/Dynamic_Kernel_Module_Support#DKMS_package_creation

eschwartz commented on 2018-07-11 05:03

That's utterly gross, what makes this package different from pretty much every other PKGBUILD ever written which uses $srcdir?

The problem with ../../ is that it's completely wrong and at the beginning of the package function (before any cd) will point to a file two directories above the actual PKGBUILD, which makes no sense whatsoever...

$startdir is just wrong because makepkg by design is supposed to unify $startdir and $SRCDEST (which might not be the same) by symlinking everything to $srcdir.

Please read the PKGBUILD(5) manpage and take heed of:

srcdir

  • This contains the directory where makepkg extracts, or copies, all source files.

startdir

  • This contains the absolute path to the directory where the PKGBUILD is located, which is usually the output of $(pwd) when makepkg is started. Use of this variable is deprecated and strongly discouraged.

Zeth commented on 2018-06-26 20:08

Interesting, didn't know that. It works with the relative path on my system but with $srcdir is pointing to hid-lg-g710-plus-dkms-git/src/makefile.patch so it's not working, too. Just found the proper variable: $startdir

--- a/PKGBUILD
+++ b/PKGBUILD
@@ -31,7 +31,7 @@

 package() {
   # patch kernel version detection
-  patch "$srcdir/$_pkgbase/src/kernel/Makefile" < "../../makefile.patch"
+  patch "$srcdir/$_pkgbase/src/kernel/Makefile" < "$startdir/makefile.patch"

   cd "$srcdir/$_pkgbase"

Sorry for that <.<

aereaux commented on 2018-06-25 01:41

../../makefile.patch is not always the correct path. $srcdir/makefile.patch should work instead.

forivall commented on 2018-06-24 15:48

I added @Zeth's patches.

Zeth commented on 2018-06-02 10:29

@thorsteng Does your problem still exist? It looks like this issue: https://forum.manjaro.org/t/manjaro-4-14-15-version-magic-doesnt-match-prevents-module-from-loading/39318/7

Another thing I noticed is that this module fails to build directly after a new kernel was installed. That is because the module itself assumes you want to build for your current running kernel instead for the "next".

I did a quick fix for myself, here are the patches. PKGBUILD:

--- a/PKGBUILD
+++ b/PKGBUILD
@@ -30,6 +30,9 @@
 # }

 package() {
+  # patch kernel version detection
+  patch "$srcdir/$_pkgbase/src/kernel/Makefile" < "../../makefile.patch"
+
   cd "$srcdir/$_pkgbase"

   local rev="$(git rev-parse --short HEAD)"

The makefile.patch looks like this:

--- a/src/kernel/Makefile
+++ b/src/kernel/Makefile
@@ -1,5 +1,7 @@

-KVERSION = $(shell uname -r)
+ifndef KVERSION
+  KVERSION = $(shell uname -r)
+endif
 KDIR := /lib/modules/$(KVERSION)/build
 PWD := $(shell pwd)

And the lastly the install file hid-lg-g710-plus-dkms.install:

--- a/hid-lg-g710-plus-dkms.install
+++ b/hid-lg-g710-plus-dkms.install
@@ -2,7 +2,8 @@
 # new version (without -$pkgrel): ${2%%-*}

 post_install() {
-    dkms install hid-lg-g710-plus/${1%%-*}
+    export KVERSION="$(pacman -Q | grep "^linux " | cut -d " " -f 2)-ARCH"
+    dkms install hid-lg-g710-plus/${1%%-*} -k $KVERSION
 }

 pre_upgrade() {
@@ -14,5 +15,8 @@
 }

 pre_remove() {
-    dkms remove hid-lg-g710-plus/${1%%-*} --all
+    dkms status | grep "^hid-lg-g710-plus, ${1%%-*}"
+    if [ $? -eq 0 ]; then
+       dkms remove hid-lg-g710-plus/${1%%-*} --all
+    fi
 }

thorsteng commented on 2018-01-31 20:15

After the last update the module does not run anymore.

I installed with yaourt and everything runs without a error message, then I recognized that the g-keys not working anymore. I searched a bit and tried to insert the module manually with the following error:

sudo modprobe hid-lg-g710-plus modprobe: ERROR: could not insert 'hid_lg_g710_plus': Exec format error

dmesg tells me:

[12338.792998] hid_lg_g710_plus: version magic '4.4.113-1-MANJARO SMP preempt mod_unload modversions retpoline ' should be '4.4.113-1-MANJARO SMP preempt mod_unload modversions '

I'm on manjaro here with latest packages installed. Can anyone help?

Regards Thorsten

AlexanderS commented on 2017-11-12 13:29

I think the udev rules file should be installed into /usr/lib/udev/rules.d/.