chardev driver install issues (Ubuntu 20.04 Focal)

This forum covers PCAN-Linux and Linux development issues concerning our products
Post Reply
fkelava
Posts: 2
Joined: Fri 21. Aug 2020, 21:44

chardev driver install issues (Ubuntu 20.04 Focal)

Post by fkelava » Fri 21. Aug 2020, 22:01

Hello,

I seem to be having some issues while trying to install the chardev PCAN driver. Even when following the manual instructions as-is, I receive errors during modprobe.
Attached is the complete make log. Thank you kindly for your time. This is on a clean Focal installation with no special modification. g++ and libpopt-dev are present.

At the end of sudo make install, /proc/pcan does not exist and sudo modprobe pcan produces errors. Kernel version is 5.4.0-42-generic.

I believe that I have missed something, and I would be very grateful if you could point me in the right direction.

Regards.

Code: Select all

fkelava@atomos-linux:~/Documents/peak-linux-driver-8.10.2$ ls
Documentation  lib           LICENSE.gpl   Makefile  test
driver         libpcanbasic  LICENSE.lgpl  README


fkelava@atomos-linux:~/Documents/peak-linux-driver-8.10.2$ make clean
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/driver'
rm -f src/*o src/*~ src/.*cmd *o *ko *~ .*cmd  pcan.mod.c Module.symvers modules.order .cache.mk 
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/driver'
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/lib'
rm -f src/*~
rm -rf obj lib obj32 lib32
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/lib'
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/test'
rm -f src/*~ src/*.o *~ receivetest transmitest bitratetest filtertest pcanfdtst pcan-settings receivetest_posix transmitest_posix
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/test'
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic'
make[2]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcanbasic'
rm -f src/*~ out/*.o *~ *.so.* *.so
make[2]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcanbasic'
make[2]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcaninfo'
rm -f src/*~ src/*.o ../pcanbasic/src/*~ ../pcanbasic/src/*.o *~ *.so.* *.so pcaninfo.1.0.3 pcaninfo
make[2]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcaninfo'
make[2]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples'
make[3]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/c++'
rm -f src/*~ src/*.o *~ pcanwrite pcanread pcaneventread pcaneventwrite
make[3]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/c++'
make[3]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/python'
rm -f *.pyc
make[3]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/python'
make[2]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples'
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic'


fkelava@atomos-linux:~/Documents/peak-linux-driver-8.10.2$ make
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/driver'
***
*** Making pcan driver in chardev mode
***
*** Host OS Release=Ubuntu v20.04
*** Host machine kernel version=5.4.0-42-generic
*** Driver kernel version=5.4.0-42-generic (5.4.0)
*** Path to kernel sources=/usr/src/linux-headers-5.4.0-42-generic
*** use KBUILD=yes
*** gcc version=9
***
make -C /usr/src/linux-headers-5.4.0-42-generic  EXTRA_CFLAGS="-I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -DNO_DEBUG -DMODVERSIONS -DPARPORT_SUBSYSTEM -DUSB_SUPPORT -DPCI_SUPPORT -DPCIEC_SUPPORT -DISA_SUPPORT -DDONGLE_SUPPORT -DPCCARD_SUPPORT -DNO_NETDEV_SUPPORT -DNO_RT   -Wno-date-time" V=0 modules M=/home/fkelava/Documents/peak-linux-driver-8.10.2/driver
make[2]: Entering directory '/usr/src/linux-headers-5.4.0-42-generic'
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_main.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_fops.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_fifo.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_filter.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_parse.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_sja1000.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_common.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_timing.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcanfd_core.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcanfd_ucan.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_usb_core.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_usb.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_usbpro.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcanfd_usb.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_pci.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcanfd_pci.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_pci_spi.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_pciec.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_isa.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_dongle.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_pccard_core.o
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/src/pcan_pccard.o
  LD [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/pcan.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/pcan.mod.o
  LD [M]  /home/fkelava/Documents/peak-linux-driver-8.10.2/driver/pcan.ko
make[2]: Leaving directory '/usr/src/linux-headers-5.4.0-42-generic'
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/driver'
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/lib'
***
*** Making pcan libraries
***
*** gcc version: 9
***
gcc -DNO_RT -I. -I../driver -fPIC -Wall -Wcast-align -Wredundant-decls  -DPCANFD_OLD_STYLE_API -c src/libpcan.c -o obj/libpcan.o
gcc -shared -Wl,-soname,libpcan.so -o lib/libpcan.so.6 obj/libpcan.o 
cd lib/; ln -sf libpcan.so.6 libpcan.so
gcc -DNO_RT -I. -I../driver -fPIC -Wall -Wcast-align -Wredundant-decls  -DPCANFD_OLD_STYLE_API -c src/libpcanfd.c -o obj/libpcanfd.o
gcc -shared -Wl,-soname,libpcanfd.so -o lib/libpcanfd.so.8 obj/libpcanfd.o 
cd lib/; ln -sf libpcanfd.so.8 libpcanfd.so
ar rcs lib/libpcanfd.a obj/libpcanfd.o

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]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/lib'
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/test'
***
*** Making example and test programs
***
*** gcc version: 9
***
gcc -DNO_RT -I. -I../lib -I../driver  -g src/receivetest.c src/common.c -lpcanfd  -L../lib/lib -Wl,-rpath ../lib/lib -o receivetest
g++ -DNO_RT -I. -I../lib -I../driver  -g src/transmitest.cpp src/common.c src/parser.cpp -lstdc++ -lpcanfd  -L../lib/lib -Wl,-rpath ../lib/lib -o transmitest
gcc -DNO_RT -I. -I../lib -I../driver  -g src/bitratetest.c src/common.c -lpcanfd  -L../lib/lib -Wl,-rpath ../lib/lib -o bitratetest
g++ -DNO_RT -I. -I../lib -I../driver  -g src/filtertest.cpp src/common.c -lstdc++ -lpcanfd  -L../lib/lib -Wl,-rpath ../lib/lib -o filtertest
gcc -DNO_RT -I. -I../lib -I../driver  -g src/pcanfdtst.c -lpcanfd  -L../lib/lib -Wl,-rpath ../lib/lib -lpthread -o pcanfdtst
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
gcc -DNO_RT -I. -I../lib -I../driver  -g src/receivetest_posix.c src/common.c -lpcanfd  -L../lib/lib -Wl,-rpath ../lib/lib -lpthread -o receivetest_posix
g++ -DNO_RT -I. -I../lib -I../driver  -g src/transmitest_posix.cpp src/common.c src/parser.cpp -lstdc++ -lpcanfd  -L../lib/lib -Wl,-rpath ../lib/lib -lpthread -o transmitest_posix
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/test'
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic'
make[2]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcanbasic'
***
*** Making PCANBasic library with FD support (PCAN driver >= 8.0)
***
*** target=libpcanbasic
*** version=4.3.4
*** PCAN_ROOT=/home/fkelava/Documents/peak-linux-driver-8.10.2
*** gcc version=9
***
mkdir -p out
gcc -fPIC -shared -O2 -Wall -Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wunused -DNO_RT -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -I/home/fkelava/Documents/peak-linux-driver-8.10.2/lib   -c src/libpcanbasic.c -o out/libpcanbasic.o
gcc -fPIC -shared -O2 -Wall -Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wunused -DNO_RT -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -I/home/fkelava/Documents/peak-linux-driver-8.10.2/lib   -c src/pcaninfo.c -o out/pcaninfo.o
gcc -fPIC -shared -O2 -Wall -Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wunused -DNO_RT -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -I/home/fkelava/Documents/peak-linux-driver-8.10.2/lib   -c src/pcanlog.c -o out/pcanlog.o
gcc -fPIC -shared -O2 -Wall -Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wunused -DNO_RT -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -I/home/fkelava/Documents/peak-linux-driver-8.10.2/lib   -c src/pcbcore.c -o out/pcbcore.o
gcc -fPIC -shared -O2 -Wall -Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wunused -DNO_RT -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -I/home/fkelava/Documents/peak-linux-driver-8.10.2/lib   -c src/pcblog.c -o out/pcblog.o
gcc -fPIC -shared -O2 -Wall -Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wunused -DNO_RT -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -I/home/fkelava/Documents/peak-linux-driver-8.10.2/lib   -c src/pcbtrace.c -o out/pcbtrace.o
gcc -fPIC -shared -O2 -Wall -Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wunused -DNO_RT -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -I/home/fkelava/Documents/peak-linux-driver-8.10.2/lib   -c /home/fkelava/Documents/peak-linux-driver-8.10.2/lib/src/libpcanfd.c -o out/libpcanfd.o
gcc -shared -Wl,-soname,libpcanbasic.so -o libpcanbasic.so.4.3.4 out/libpcanbasic.o out/pcaninfo.o out/pcanlog.o out/pcbcore.o out/pcblog.o out/pcbtrace.o out/libpcanfd.o -lm    
ln -sf libpcanbasic.so.4.3.4 libpcanbasic.so
make[2]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcanbasic'
make[2]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcaninfo'
*** Making PCANINFO
***
*** target=pcaninfo
*** version=1.0.3
*** PCAN_ROOT=/home/fkelava/Documents/peak-linux-driver-8.10.2
*** gcc version=9
***
gcc src/main.c ../pcanbasic/src/pcanlog.c ../pcanbasic/src/pcblog.c ../pcanbasic/src/pcbtrace.c ../pcanbasic/src/pcbcore.c ../pcanbasic/src/pcaninfo.c /home/fkelava/Documents/peak-linux-driver-8.10.2/lib/src/libpcanfd.c -O2 -Wall -Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wunused -DNO_RT -I../pcanbasic/src -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -I/home/fkelava/Documents/peak-linux-driver-8.10.2/lib  -lm  -o pcaninfo.1.0.3
ln -sf pcaninfo.1.0.3 pcaninfo
make[2]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcaninfo'
make[2]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples'
make[3]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/c++'
***
*** Making PCANBasic C++ examples
***
*** target=pcanwrite pcanread pcaneventread pcaneventwrite
*** g++ version=9
*** PCANBASIC_ROOT=../../pcanbasic
***
g++ -I../../pcanbasic -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -DNO_RT src/pcanwrite.cpp -L../../pcanbasic -Wl,-rpath ../../pcanbasic -lpcanbasic -o pcanwrite
g++ -I../../pcanbasic -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -DNO_RT src/pcanread.cpp -L../../pcanbasic -Wl,-rpath ../../pcanbasic -lpcanbasic -o pcanread
g++ -I../../pcanbasic -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -DNO_RT src/pcaneventread.cpp -L../../pcanbasic -Wl,-rpath ../../pcanbasic -lpcanbasic -o pcaneventread
g++ -I../../pcanbasic -I/home/fkelava/Documents/peak-linux-driver-8.10.2/driver -DNO_RT src/pcaneventwrite.cpp -L../../pcanbasic -Wl,-rpath ../../pcanbasic -lpcanbasic -o pcaneventwrite
make[3]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/c++'
make[3]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/python'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/python'
make[2]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples'
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic'


fkelava@atomos-linux:~/Documents/peak-linux-driver-8.10.2$ sudo make install
[sudo] password for fkelava: 
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/driver'
Info: /lib/modules/5.4.0-42-generic/misc exists.
Info: Copied 45-pcan.rules to /etc/udev/rules.d.
Info: mainline drivers removed and blacklisted in
      /etc/modprobe.d/blacklist-peak.conf
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/driver'
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/lib'
mkdir -p /usr/lib
cp -d lib/* /usr/lib
if [ -d lib32 ]; then \
	mkdir -p /usr/lib32; \
	cp -d lib32/* /usr/lib32; \
fi
mkdir -p /usr/include
chmod 644 libpcan.h libpcanfd.h
cp libpcan.h libpcanfd.h /usr/include
/sbin/ldconfig
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/lib'
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/test'
cp receivetest transmitest bitratetest filtertest pcanfdtst pcan-settings receivetest_posix transmitest_posix /usr/local/bin
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/test'
make[1]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic'
make[2]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcanbasic'
cp libpcanbasic.so.4.3.4 /usr/lib/libpcanbasic.so.4.3.4
ln -sf /usr/lib/libpcanbasic.so.4.3.4 /usr/lib/libpcanbasic.so.4
ln -sf /usr/lib/libpcanbasic.so.4.3.4 /usr/lib/libpcanbasic.so.0
ln -sf /usr/lib/libpcanbasic.so.4 /usr/lib/libpcanbasic.so
cp PCANBasic.h /usr/include/PCANBasic.h
chmod 644 /usr/include/PCANBasic.h
/sbin/ldconfig
make[2]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcanbasic'
make[2]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcaninfo'
cp pcaninfo.1.0.3 /usr/local/bin/pcaninfo
chmod 755 /usr/local/bin/pcaninfo
make[2]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/pcaninfo'
make[2]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples'
make[3]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/c++'
#cp pcanwrite pcanread pcaneventread pcaneventwrite /usr/local/bin
make[3]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/c++'
make[3]: Entering directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/python'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples/python'
make[2]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic/examples'
make[1]: Leaving directory '/home/fkelava/Documents/peak-linux-driver-8.10.2/libpcanbasic'


fkelava@atomos-linux:~/Documents/peak-linux-driver-8.10.2$ sudo modprobe pcan
modprobe: ERROR: could not insert 'pcan': Operation not permitted
modprobe: ERROR: ../libkmod/libkmod-module.c:990 command_do() Error running install command 'modprobe --ignore-install pcan' for module pcan: retcode 1
modprobe: ERROR: could not insert 'pcan': Invalid argument


fkelava@atomos-linux:~/Documents/peak-linux-driver-8.10.2$ 

M.Maidhof
Support
Support
Posts: 1753
Joined: Wed 22. Sep 2010, 14:00

Re: chardev driver install issues (Ubuntu 20.04 Focal)

Post by M.Maidhof » Mon 24. Aug 2020, 10:07

Hi,

is secureboot enabled on this system?

This will prevent third-party-modules from being loaded.

Please check your BIOS settings and disable secureboot.

regards

Michael

fkelava
Posts: 2
Joined: Fri 21. Aug 2020, 21:44

Re: chardev driver install issues (Ubuntu 20.04 Focal)

Post by fkelava » Mon 24. Aug 2020, 17:57

It is indeed. I wasn't aware that this was causing the issue.

Thank you kindly for your guidance.

Regards.

Post Reply