Page 1 of 1
Patch for peak-linux-driver_8.16 and kernel 6.5.x
Posted: Wed 17. Jan 2024, 08:55
by M.Maidhof
Hi,
here a patch for peak-linux-driver-8.16 for kernel 6.5.x.
here the info how to install that patch:
$ cd peak-linux-driver-8.16.0
$ patch -p 1 < /some/where/0001-Fix-compilation-issues-with-Linux-6.5.x.patch
$ make
$ sudo make install
$ sudo modprobe pcan
when building a driver module against a kernel that has been built with gcc-12, then it's better to also use gcc-12:
$ sudo apt install gcc-12
Edit: Meanwhile we have the new driver version 8.17 available which will work on kernel 6.5.x without issues (no need to use the patch anymore):
https://www.peak-system.com/quick/PCAN-Linux-Driver
regards
Michael
Re: Patch for peak-linux-driver_8.16 and kernel 6.5.x
Posted: Tue 6. Feb 2024, 15:19
by EntwB
Hi Michael,
Unfortunately, I can't install the driver for PCAN-USB IPEH-002021 after the Linux kernel upgrade. I tried both 8.16 (with patch) and 8.17.
Do you have a solution for this? Thanks in advance.
Regards
Code: Select all
UserName@Ubuntu:~/Downloads/peak-linux-driver-8.17.0$ make clean
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/driver“ wird betreten
rm -f src/*o src/*~ src/.*cmd *o *ko *~ .*cmd pcan.mod.c Module.symvers modules.order .cache.mk pcan.mod
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/driver“ wird verlassen
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/lib“ wird betreten
rm -f src/*~
rm -rf obj lib obj32 lib32
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/lib“ wird verlassen
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/test“ wird betreten
rm -f src/*~ src/*.o *~ receivetest transmitest bitratetest filtertest pcanfdtst pcan-settings receivetest_posix transmitest_posix
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/test“ wird verlassen
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic“ wird betreten
***
*** Processing 'pcanbasic' directory...
***
make[2]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/pcanbasic“ wird betreten
***
*** Cleaning PCANBasic library...
***
rm -f src/*~ out/*.o out/*.gcno *~ *.so.* *.so lib/*~ lib/*.so.* lib/*.so lib32/*~ lib32/*.so.* lib32/*.so out32/*.o out32/*.gcno
make[2]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/pcanbasic“ wird verlassen
***
*** Processing 'pcaninfo' directory...
***
make[2]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/pcaninfo“ wird betreten
***
*** Cleaning pcaninfo...
***
rm -f src/*~ src/*.o ../pcanbasic/src/*~ ../pcanbasic/src/*.o *~ *.so.* *.so pcaninfo.1.3.2 pcaninfo
make[2]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/pcaninfo“ wird verlassen
***
*** Processing 'examples' directory...
***
make[2]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples“ wird betreten
***
*** Processing 'C' directory (console examples)...
***
make[3]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/c“ wird betreten
***
*** Cleaning PCANBasic C examples
rm -f src/*~ src/*.o *~ pcanwrite pcanread pcaneventread pcaneventwrite
make[3]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/c“ wird verlassen
***
*** Processing 'NativeC++' directory (console examples)...
***
make[3]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++“ wird betreten
***
*** Cleaning PCANBasic C++ examples...
***
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/01_LookUpChannel“ wird betreten
rm -f *.o *~ ../LookUpChannel
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/01_LookUpChannel“ wird verlassen
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/02_GetSetParameter“ wird betreten
rm -f *.o *~ ../GetSetParameter
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/02_GetSetParameter“ wird verlassen
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/03_ManualRead“ wird betreten
rm -f *.o *~ ../ManualRead
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/03_ManualRead“ wird verlassen
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/04_ManualWrite“ wird betreten
rm -f *.o *~ ../ManualWrite
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/04_ManualWrite“ wird verlassen
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/05_TimerRead“ wird betreten
rm -f *.o *~ ../TimerRead
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/05_TimerRead“ wird verlassen
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/06_TimerWrite“ wird betreten
rm -f *.o *~ ../TimerWrite
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/06_TimerWrite“ wird verlassen
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/07_ThreadRead“ wird betreten
rm -f *.o *~ ../ThreadRead
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/07_ThreadRead“ wird verlassen
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/08_EventDrivenRead“ wird betreten
rm -f *.o *~ ../EventDrivenRead
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/08_EventDrivenRead“ wird verlassen
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/09_TraceFiles“ wird betreten
rm -f *.o *~ ../TraceFiles
make[4]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++/09_TraceFiles“ wird verlassen
make[3]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples/NativeC++“ wird verlassen
make[2]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic/examples“ wird verlassen
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/libpcanbasic“ wird verlassen
UserName@Ubuntu:~/Downloads/peak-linux-driver-8.17.0$ sudo make
[sudo] Passwort für UserName:
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/driver“ wird betreten
***
*** Making pcan driver in chardev mode
***
*** Host OS Release=Ubuntu v22.04
*** Host machine kernel version=6.5.0-15-generic
*** Driver kernel version=6.5.0-15-generic (6.5.0)
*** Path to kernel sources=/usr/src/linux-headers-6.5.0-15-generic
*** use KBUILD=yes
*** use DKMS=
*** gcc version=11
***
make -C /usr/src/linux-headers-6.5.0-15-generic EXTRA_CFLAGS="-I/home/UserName/Downloads/peak-linux-driver-8.17.0/driver -DNO_DEBUG -DMODVERSIONS -DNO_PARPORT_SUBSYSTEM -DUSB_SUPPORT -DPCI_SUPPORT -DPCIEC_SUPPORT -DISA_SUPPORT -DNO_DONGLE_SUPPORT -DNO_PCCARD_SUPPORT -DNO_NETDEV_SUPPORT -DNO_RT -Wno-date-time" V=0 modules M=/home/UserName/Downloads/peak-linux-driver-8.17.0/driver
make[2]: Verzeichnis „/usr/src/linux-headers-6.5.0-15-generic“ wird betreten
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
CC [M] /home/UserName/Downloads/peak-linux-driver-8.17.0/driver/src/pcan_main.o
gcc: error: unrecognized command-line option ‘-ftrivial-auto-var-init=zero’
make[4]: *** [scripts/Makefile.build:251: /home/UserName/Downloads/peak-linux-driver-8.17.0/driver/src/pcan_main.o] Fehler 1
make[3]: *** [/usr/src/linux-headers-6.5.0-15-generic/Makefile:2037: /home/UserName/Downloads/peak-linux-driver-8.17.0/driver] Fehler 2
make[2]: *** [Makefile:234: __sub-make] Fehler 2
make[2]: Verzeichnis „/usr/src/linux-headers-6.5.0-15-generic“ wird verlassen
make[1]: *** [Makefile:523: all] Fehler 2
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/driver“ wird verlassen
make: *** [Makefile:84: all] Fehler 2
UserName@Ubuntu:~/Downloads/peak-linux-driver-8.17.0$ uname -a
Linux Ubuntu 6.5.0-15-generic #15~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 12 18:54:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
UserName@Ubuntu:~/Downloads/peak-linux-driver-8.17.0$[code]
Re: Patch for peak-linux-driver_8.16 and kernel 6.5.x
Posted: Tue 6. Feb 2024, 16:28
by M.Maidhof
Hi,
please reboot your system once and try again. Looks like a mismatch with gcc-11 and gcc-12. Sure you have installed gcc-12?
regards
Michael
Re: Patch for peak-linux-driver_8.16 and kernel 6.5.x
Posted: Thu 8. Feb 2024, 09:58
by EntwB
Hallo Michael,
now gcc-12 has been used, but installation ends with error.
Code: Select all
UserName@Ubuntu ~/Downloads/peak-linux-driver-8.17.0 $ make
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/driver“ wird betreten
***
*** Making pcan driver in chardev mode
***
*** Host OS Release=Ubuntu v22.04
*** Host machine kernel version=6.5.0-15-generic
*** Driver kernel version=6.5.0-15-generic (6.5.0)
*** Path to kernel sources=/usr/src/linux-headers-6.5.0-15-generic
*** use KBUILD=yes
*** use DKMS=
*** gcc version=12
***
make -C /usr/src/linux-headers-6.5.0-15-generic EXTRA_CFLAGS="-I/home/UserName/Downloads/peak-linux-driver-8.17.0/driver -DNO_DEBUG -DMODVERSIONS -DNO_PARPORT_SUBSYSTEM -DUSB_SUPPORT -DPCI_SUPPORT -DPCIEC_SUPPORT -DISA_SUPPORT -DNO_DONGLE_SUPPORT -DNO_PCCARD_SUPPORT -DNO_NETDEV_SUPPORT -DNO_RT -Wno-date-time" V=0 modules M=/home/UserName/Downloads/peak-linux-driver-8.17.0/driver
make[2]: Verzeichnis „/usr/src/linux-headers-6.5.0-15-generic“ wird betreten
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
make[2]: Verzeichnis „/usr/src/linux-headers-6.5.0-15-generic“ wird verlassen
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/driver“ wird verlassen
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/lib“ wird betreten
***
*** Making pcan libraries
***
*** gcc version: 12
***
Info: only 64-bit version of libpcan can be built. 32-bit version of libpcan can't because the 32-bit version of libc seems not being installed...
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/lib“ wird verlassen
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/test“ wird betreten
***
*** Making example and test programs
***
*** gcc version: 12
***
gcc -DNO_RT -I. -I../lib -I../driver -g src/pcan-settings.c -lpopt -lpcanfd -L../lib/lib -Wl,-rpath ../lib/lib -g -o pcan-settings
src/pcan-settings.c:47:10: fatal error: popt.h: Datei oder Verzeichnis nicht gefunden
47 | #include <popt.h>
| ^~~~~~~~
compilation terminated.
make[1]: *** [Makefile:196: pcan-settings] Fehler 1
make[1]: Verzeichnis „/home/UserName/Downloads/peak-linux-driver-8.17.0/test“ wird verlassen
make: *** [Makefile:84: all] Fehler 2
Re: Patch for peak-linux-driver_8.16 and kernel 6.5.x
Posted: Thu 8. Feb 2024, 10:16
by M.Maidhof
Hi,
please see driver manual page 6:
https://www.peak-system.com/fileadmin/m ... an_eng.pdf
You need to have libpopt-dev installed to be able to compile the test examples.
regards
Michael