This forum covers PCAN-Linux and Linux development issues concerning our products
-
vince_headache
- Posts: 3
- Joined: Wed 14. Jan 2026, 23:16
Post
by vince_headache » Thu 15. Jan 2026, 23:20
Hello!
New to the PEAK/PCAN ecosystem. Following the instructions for driver installation found in the Documentation file posted here:
https://www.peak-system.com/fileadmin/m ... roproetary
I have gotten to section 3.2, Install package, and have hit the following error:
Code: Select all
(base) vince@user-xps:~/peak-linux-driver-8.20.0$ sudo make install
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/driver'
mkdir -p /usr/local/bin
cp -f udev/pcan_usb_minor_check.bash /usr/local/bin
chmod 744 /usr/local/bin/pcan_usb_minor_check.bash
cp -f udev/45-pcan.rules /etc/udev/rules.d
Info: Copied 45-pcan.rules to /etc/udev/rules.d.
cp -f udev/blacklist-peak.conf /etc/modprobe.d
chmod 644 /etc/modprobe.d/blacklist-peak.conf
Info: mainline drivers removed and blacklisted in
/etc/modprobe.d/blacklist-peak.conf
udevadm control --reload-rules
make[1]: *** No rule to make target 'pcan.ko', needed by 'install_module'. Stop.
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/driver'
make: *** [Makefile:98: install] Error 2
Does anyone know how to deal with this error? I really appreciate any help!
-
M.Maidhof
- Support

- Posts: 1770
- Joined: Wed 22. Sep 2010, 14:00
Post
by M.Maidhof » Mon 19. Jan 2026, 09:38
Hi,
please do the following steps:
make clean
make
sudo make install
cat /proc/pcan
and send us the output of all commands to see if there are any problems.
regards
Michael
-
vince_headache
- Posts: 3
- Joined: Wed 14. Jan 2026, 23:16
Post
by vince_headache » Tue 20. Jan 2026, 16:47
Hi Michael,
Thanks for your response! I have posted the full output at the bottom of this message.
Looks to me like "make clean" runs ok, and "make" is where the problems start:
Code: Select all
src/pcan-settings.c:47:10: fatal error: popt.h: No such file or directory
47 | #include <popt.h>
| ^~~~~~~~
compilation terminated.
make[1]: *** [Makefile:196: pcan-settings] Error 1
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/test'
make: *** [Makefile:84: all] Error 2
I'm not sure where popt.h is supposed to come from, or why I don't have it. Perhaps the other errors are downstream of this. I went ahead and ran all commands after the error, in case there's more useful information. Really appreciate your help.
Here's the full output:
Code: Select all
(base) vince@user-xps:~/peak-linux-driver-8.20.0$ make clean
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/driver'
rm -f src/*.o src/*~ src/.*cmd *.o .*.o *.ko *~ .*cmd pcan.mod.c Module.symvers modules.order .cache.mk pcan.mod
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/driver'
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/lib'
rm -f src/*~
rm -rf obj lib obj32 lib32
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/lib'
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/test'
rm -f src/*~ src/*.o *~ receivetest transmitest bitratetest filtertest pcanfdtst pcan-settings receivetest_posix transmitest_posix
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/test'
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic'
***
*** Processing 'pcanbasic' directory...
***
make[2]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/pcanbasic'
***
*** 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]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/pcanbasic'
***
*** Processing 'pcaninfo' directory...
***
make[2]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/pcaninfo'
***
*** Cleaning pcaninfo...
***
rm -f src/*~ src/*.o ../pcanbasic/src/*~ ../pcanbasic/src/*.o *~ *.so.* *.so pcaninfo.1.4.0 pcaninfo
make[2]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/pcaninfo'
***
*** Processing 'examples' directory...
***
make[2]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples'
***
*** Processing 'C' directory (console examples)...
***
make[3]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/c'
***
*** Cleaning PCANBasic C examples
rm -f src/*~ src/*.o *~ pcanwrite pcanread pcaneventread pcaneventwrite
make[3]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/c'
***
*** Processing 'NativeC++' directory (console examples)...
***
make[3]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++'
***
*** Cleaning PCANBasic C++ examples...
***
make[4]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/01_LookUpChannel'
rm -f *.o *~ ../LookUpChannel
make[4]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/01_LookUpChannel'
make[4]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/02_GetSetParameter'
rm -f *.o *~ ../GetSetParameter
make[4]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/02_GetSetParameter'
make[4]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/03_ManualRead'
rm -f *.o *~ ../ManualRead
make[4]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/03_ManualRead'
make[4]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/04_ManualWrite'
rm -f *.o *~ ../ManualWrite
make[4]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/04_ManualWrite'
make[4]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/05_TimerRead'
rm -f *.o *~ ../TimerRead
make[4]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/05_TimerRead'
make[4]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/06_TimerWrite'
rm -f *.o *~ ../TimerWrite
make[4]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/06_TimerWrite'
make[4]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/07_ThreadRead'
rm -f *.o *~ ../ThreadRead
make[4]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/07_ThreadRead'
make[4]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/08_EventDrivenRead'
rm -f *.o *~ ../EventDrivenRead
make[4]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/08_EventDrivenRead'
make[4]: Entering directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/09_TraceFiles'
rm -f *.o *~ ../TraceFiles
make[4]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++/09_TraceFiles'
make[3]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples/NativeC++'
make[2]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic/examples'
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/libpcanbasic'
(base) vince@user-xps:~/peak-linux-driver-8.20.0$ make
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/driver'
***
*** Making pcan driver in chardev mode
***
*** Host OS Release=Ubuntu v20.04
*** Host machine kernel version=5.15.0-139-generic
*** Driver kernel version=5.15.0-139-generic (5.15.0)
*** Path to kernel sources=/usr/src/linux-headers-5.15.0-139-generic
*** use KBUILD=yes
*** use DKMS=
*** gcc version=9
*** gcc versions detected on this host:
*** /usr/bin/gcc-9
***
make -C /usr/src/linux-headers-5.15.0-139-generic EXTRA_CFLAGS="-I/home/vince/peak-linux-driver-8.20.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/vince/peak-linux-driver-8.20.0/driver
make[2]: Entering directory '/usr/src/linux-headers-5.15.0-139-generic'
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_main.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_fops.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_fifo.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_filter.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_parse.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_sja1000.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_common.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_timing.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcanfd_core.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcanfd_ucan.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_usb_core.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_usb.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_usbpro.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcanfd_usb.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_pci.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcanfd_pci.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_pci_spi.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_pciec.o
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/src/pcan_isa.o
LD [M] /home/vince/peak-linux-driver-8.20.0/driver/pcan.o
MODPOST /home/vince/peak-linux-driver-8.20.0/driver/Module.symvers
CC [M] /home/vince/peak-linux-driver-8.20.0/driver/pcan.mod.o
LD [M] /home/vince/peak-linux-driver-8.20.0/driver/pcan.ko
BTF [M] /home/vince/peak-linux-driver-8.20.0/driver/pcan.ko
Skipping BTF generation for /home/vince/peak-linux-driver-8.20.0/driver/pcan.ko due to unavailability of vmlinux
make[2]: Leaving directory '/usr/src/linux-headers-5.15.0-139-generic'
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/driver'
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/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/vince/peak-linux-driver-8.20.0/lib'
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/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
src/pcan-settings.c:47:10: fatal error: popt.h: No such file or directory
47 | #include <popt.h>
| ^~~~~~~~
compilation terminated.
make[1]: *** [Makefile:196: pcan-settings] Error 1
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/test'
make: *** [Makefile:84: all] Error 2
(base) vince@user-xps:~/peak-linux-driver-8.20.0$ sudo make install
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/driver'
Info: Left current 'pcan'-entry in /etc/modprobe.d/pcan.conf untouched.
mkdir -p /usr/local/bin
cp -f udev/pcan_usb_minor_check.bash /usr/local/bin
chmod 744 /usr/local/bin/pcan_usb_minor_check.bash
cp -f udev/45-pcan.rules /etc/udev/rules.d
Info: Copied 45-pcan.rules to /etc/udev/rules.d.
cp -f udev/blacklist-peak.conf /etc/modprobe.d
chmod 644 /etc/modprobe.d/blacklist-peak.conf
Info: mainline drivers removed and blacklisted in
/etc/modprobe.d/blacklist-peak.conf
udevadm control --reload-rules
- manually installing pcan under /lib/modules/5.15.0-139-generic/misc...
mkdir -p /lib/modules/5.15.0-139-generic/misc
cp -f pcan.ko /lib/modules/5.15.0-139-generic/misc/pcan.ko
- Building dependencies...
depmod 5.15.0-139-generic
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/driver'
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/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/vince/peak-linux-driver-8.20.0/lib'
make[1]: Entering directory '/home/vince/peak-linux-driver-8.20.0/test'
cp receivetest transmitest bitratetest filtertest pcanfdtst pcan-settings receivetest_posix transmitest_posix /usr/local/bin
cp: cannot stat 'pcan-settings': No such file or directory
cp: cannot stat 'receivetest_posix': No such file or directory
cp: cannot stat 'transmitest_posix': No such file or directory
make[1]: *** [Makefile:211: install] Error 1
make[1]: Leaving directory '/home/vince/peak-linux-driver-8.20.0/test'
make: *** [Makefile:99: install] Error 2
(base) vince@user-xps:~/peak-linux-driver-8.20.0$ cat /proc/pcan
cat: /proc/pcan: No such file or directory
-
vince_headache
- Posts: 3
- Joined: Wed 14. Jan 2026, 23:16
Post
by vince_headache » Tue 20. Jan 2026, 20:14
Update--- I used "sudo apt-get install libpopt-dev" to install popt. Now "make" and "sudo make install" run without errors, but "cat /proc/pcan" givest the error
Code: Select all
/proc/pcan: No such file or directory
Do I need to manually add a /proc/pcan directory?
-
G.Lang
- Support

- Posts: 192
- Joined: Wed 22. Sep 2010, 14:58
Post
by G.Lang » Wed 21. Jan 2026, 07:37
Please load the driver with "sudo modprobe pcan" or reboot your PC so that the driver will be loaded automatically.