Package Details: pivccu-modules-dkms 1.0.79-1

Git Clone URL: https://aur.archlinux.org/pivccu-modules-dkms.git (read-only, click to copy)
Package Base: pivccu-modules-dkms
Description: Kernel modules needed for Homematic
Upstream URL: https://github.com/alexreinert/piVCCU/
Licenses: GPL
Conflicts: pivccu-modules
Submitter: AlexanderS
Maintainer: None
Last Packager: AlexanderS
Votes: 10
Popularity: 0.000131
First Submitted: 2019-03-25 18:35 (UTC)
Last Updated: 2023-02-24 11:08 (UTC)

Dependencies (2)

Required by (0)

Sources (2)

Latest Comments

1 2 Next › Last »

raudi commented on 2023-09-24 17:32 (UTC)

I was able to install it rather easily on kernel 6.5.4. since support for Kernel 6.4+ was added. Just a simple edit of the PKGBUILD needed. Just installed 1.0.84 by editing the version and removing the commit part from the source. Built and installed without any issues and seems to work.

df8oe commented on 2023-08-05 07:51 (UTC)

Does no longer build (my kernel 6.4.8-1):

/var/lib/dkms/pivccu-modules/1.0.79/build/generic_raw_uart.c: In Funktion »generic_raw_uart_init«:
./include/linux/export.h:27:22: Fehler: Übergabe des Arguments 1 von »class_create« von inkompatiblem Zeigertyp [-Werror=incompatible-pointer-types]
27 | #define THIS_MODULE (&__this_module)
| ~^~~~~~~~~~~~~~~
| |
| struct module
/var/lib/dkms/pivccu-modules/1.0.79/build/generic_raw_uart.c:1247:24: Anmerkung: bei Substitution des Makros »THIS_MODULE«
1247 | class = class_create(THIS_MODULE, DRIVER_NAME);
| ^~~~~~~~~~~
In Datei, eingebunden von ./include/linux/device.h:31, von /var/lib/dkms/pivccu-modules/1.0.79/build/generic_raw_uart.c:24:
./include/linux/device/class.h:230:54: Anmerkung: »const char
« erwartet, aber Argument hat Typ »struct module «
230 | struct class * __must_check class_create(const char
name);
| ~~~~~~~~~~~~^~~~
/var/lib/dkms/pivccu-modules/1.0.79/build/generic_raw_uart.c:1247:11: Fehler: zu viele Argumente für Funktion »class_create«
1247 | class = class_create(THIS_MODULE, DRIVER_NAME);
| ^~~~~~~~~~~~
./include/linux/device/class.h:230:29: Anmerkung: hier deklariert
230 | struct class * __must_check class_create(const char *name);
| ^~~~~~~~~~~~
cc1: Einige Warnungen werden als Fehler behandelt
make[1]: *** [scripts/Makefile.build:252: /var/lib/dkms/pivccu-modules/1.0.79/build/generic_raw_uart.o] Fehler 1
make[1]: *** Es wird auf noch nicht beendete Prozesse gewartet …
make: *** [Makefile:2032: /var/lib/dkms/pivccu-modules/1.0.79/build] Fehler 2

df8oe commented on 2023-07-09 08:11 (UTC)

1) Please add aarch64 architecture. I can confirm that modules have built with this architecture for a longer time.

2) I cannot say when this has started but modules cannot be built with recent kernel 6.4.1-1. Can this be due to this:
warning: the compiler differs from the one used to build the kernel
The kernel was built by: aarch64-linux-gnu-gcc (GCC) 13.1.0
You are using: gcc (GCC) 12.1.0

raudi commented on 2023-06-08 14:36 (UTC)

DKMS has problems with rtc-rx8130 on my Intel Atom J1900 system. But since I don't need it, I have just removed it from /usr/src/pivccu-modules-1.0.79/dkms.conf and the Makefile. Afterwards the dkms autoinstall works. I also had to install eq3_char_loop-dkms for Raspberrymatic to run as a home assistant supervised addon without any errors.

kuchenblech commented on 2023-02-23 18:13 (UTC)

@df8oe and others:

Upstream has now been fixed to work with kernel 6.1+, thus my patch below should no longer be required once the package is updated.

See: https://github.com/alexreinert/piVCCU/commit/b787f3d84b311bd3e07b0ca8f2aa63330030746e

AlexanderS commented on 2023-02-20 18:52 (UTC)

@martimcfly: dkms already depends on linux-headers (it's an optional dependency, so you might have missed that).

martimcfly commented on 2023-02-20 01:22 (UTC)

Hey Alex!

Thank's for that great package! I didn't know kernel modules can be compiled during installation.

Just a little thing had been neccessary to make it work on Pi4 aarch64. I had to install 'linux-headers' to make dkms compile the modules. For the pi I was offered taking option 1) linux-aarch64-headers.

Could you please add 'linux-headers' as a dependency?

thanks!

df8oe commented on 2023-01-07 10:44 (UTC)

I can confirm the patch of @kuchenblech works for me (kernel 6.1.3-2-rpi-ARCH), too. In addition I am running aarch64 architecture - you can add this architecture.

kuchenblech commented on 2023-01-06 21:19 (UTC) (edited on 2023-01-06 21:20 (UTC) by kuchenblech)

The package fails to build on the 6.1 kernel series. It works for me when applying this patch:

diff --git a/kernel/generic_raw_uart.c b/kernel/generic_raw_uart.c
index f2862a1..b2ba431 100644
--- a/kernel/generic_raw_uart.c
+++ b/kernel/generic_raw_uart.c
@@ -848,7 +848,11 @@ int generic_raw_uart_get_gpio_pin_number(struct generic_raw_uart_instance *insta
   {
     struct fwnode_handle *fwnode = dev_fwnode(dev);
     const char *label = generic_raw_uart_get_pin_label(pin);
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
+    // `fwnode_get_named_gpiod` was removed in 6.1.0.
+    dev_err(instance->dev, "Determining GPIOs is not implemented for this device on kernel>=6.1.0.");
+    struct gpio_desc *gpiod = NULL;
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0))
     struct gpio_desc *gpiod = fwnode_get_named_gpiod(fwnode, label, 0, GPIOD_ASIS, label);
 #else
     struct gpio_desc *gpiod = fwnode_get_named_gpiod(fwnode, label);
diff --git a/kernel/rtc-rx8130.c b/kernel/rtc-rx8130.c
index ca8ae8f..3c4aa8c 100644
--- a/kernel/rtc-rx8130.c
+++ b/kernel/rtc-rx8130.c
@@ -39,6 +39,7 @@
 #include <linux/list.h>
 #include <linux/rtc.h>
 #include <linux/of_gpio.h>
+#include <linux/version.h>

 #include <linux/of.h>
 #include <linux/of_device.h>
@@ -820,7 +821,11 @@ errout:
 // Todo: - maybe change kzalloc to devm_kzalloc
 //       -
 //----------------------------------------------------------------------
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
+static void rx8130_remove(struct i2c_client *client)
+#else
 static int rx8130_remove(struct i2c_client *client)
+#endif
 {
        struct rx8130_data *rx8130 = i2c_get_clientdata(client);
        struct mutex *lock = &rx8130->rtc->ops_lock;
@@ -836,7 +841,9 @@ static int rx8130_remove(struct i2c_client *client)
        }

        kfree(rx8130);
+       #if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0))
        return 0;
+       #endif
 }

 static struct i2c_driver rx8130_driver = {