danke für den Hinweis.
Wie im Handbuch beschrieben, habe ich diesen Treiber jetzt für SocketCAN bzw. netdev gebaut.
Code: Select all
pi@raspberrypi:~/Prerequisites/peak-linux-driver-8.6.0 $ make NET=NETDEV_SUPPORT
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
make[1]: Nothing to be done for 'depend'.
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
***
*** Host machine kernel version=4.9.35-rt25-v7+
*** Driver kernel version=4.9.35-v7+ (4.9.35)
*** Path to kernel sources=/lib/modules/4.9.35-rt25-v7+/build
*** use KBUILD=yes
*** cc version=4.9.2
***
make -C /lib/modules/4.9.35-rt25-v7+/build SUBDIRS=/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver EXTRA_CFLAGS="-I/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver -DNO_DEBUG -DMODVERSIONS -DPARPORT_SUBSYSTEM -DUSB_SUPPORT -DPCI_SUPPORT -DPCIEC_SUPPORT -DISA_SUPPORT -DDONGLE_SUPPORT -DPCCARD_SUPPORT -DNETDEV_SUPPORT -DNO_RT -Wno-date-time" V=0 modules
make[2]: Entering directory '/home/pi/kernel/linux-be2540e540f5442d7b372208787fb64100af0c54'
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_main.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_fops.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_fifo.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_filter.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_parse.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_sja1000.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_common.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_timing.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcanfd_core.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcanfd_ucan.o
CC [M] /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_pci.o
/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_pci.c: In function ‘pcan_pci_enable_msi’:
/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_pci.c:369:2: error: implicit declaration of function ‘pci_alloc_irq_vectors’ [-Werror=implicit-function-declaration]
pa->msi_count = pcan_pci_enable_msi_range(pa->dev, 1, msi_max);
^
/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_pci.c:276:33: error: ‘PCI_IRQ_MSI’ undeclared (first use in this function)
pci_alloc_irq_vectors(a, b, c, PCI_IRQ_MSI)
^
/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_pci.c:369:18: note: in expansion of macro ‘pcan_pci_enable_msi_range’
pa->msi_count = pcan_pci_enable_msi_range(pa->dev, 1, msi_max);
^
/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_pci.c:276:33: note: each undeclared identifier is reported only once for each function it appears in
pci_alloc_irq_vectors(a, b, c, PCI_IRQ_MSI)
^
/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_pci.c:369:18: note: in expansion of macro ‘pcan_pci_enable_msi_range’
pa->msi_count = pcan_pci_enable_msi_range(pa->dev, 1, msi_max);
^
cc1: some warnings being treated as errors
scripts/Makefile.build:293: recipe for target '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_pci.o' failed
make[3]: *** [/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_pci.o] Error 1
Makefile:1490: recipe for target '_module_/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver' failed
make[2]: *** [_module_/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver] Error 2
make[2]: Leaving directory '/home/pi/kernel/linux-be2540e540f5442d7b372208787fb64100af0c54'
Makefile:452: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/lib'
cc -DNO_RT -I. -I../driver -fPIC -Wall -Wcast-align -Wredundant-decls -DPCANFD_OLD_STYLE_API -c src/libpcan.c -o obj/libpcan.o
cc -shared -Wl,-soname,libpcan.so.0 -o lib/libpcan.so.0.6 obj/libpcan.o
cd lib/; ln -sf libpcan.so.0.6 libpcan.so
cc -DNO_RT -I. -I../driver -fPIC -Wall -Wcast-align -Wredundant-decls -DPCANFD_OLD_STYLE_API -c src/libpcanfd.c -o obj/libpcanfd.o
cc -shared -Wl,-soname,libpcanfd.so.0 -o lib/libpcanfd.so.0.1 obj/libpcanfd.o
cd lib/; ln -sf libpcanfd.so.0.1 libpcanfd.so
ar rcs lib/libpcanfd.a obj/libpcanfd.o
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/lib'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/test'
cc -DNO_RT -g -I. -I../lib -I../driver src/receivetest.c src/common.c -lpcanfd -L../lib/lib -o receivetest
cc -DNO_RT -g -I. -I../lib -I../driver src/transmitest.cpp src/common.c src/parser.cpp -lpcanfd -lstdc++ -L../lib/lib -o transmitest
cc -DNO_RT -g -I. -I../lib -I../driver src/bitratetest.c src/common.c -lpcanfd -L../lib/lib -o bitratetest
cc -DNO_RT -g -I. -I../lib -I../driver src/filtertest.cpp src/common.c -lpcanfd -lstdc++ -L../lib/lib -o filtertest
cc -DNO_RT -g -I. -I../lib -I../driver src/pcanfdtst.c -lpcanfd -L../lib/lib -o pcanfdtst
cc -DNO_RT -g -I. -I../lib -I../driver src/pcan-settings.c -lpopt -L../lib/lib -g -o pcan-settings
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/test'
Code: Select all
pi@raspberrypi:~/Prerequisites/peak-linux-driver-8.6.0 $ sudo make install
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
Info: /lib/modules/4.9.35-v7+/misc exists.
cp: der Aufruf von stat für „pcan.ko“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
Makefile:549: recipe for target 'install_files' failed
make[1]: *** [install_files] Error 1
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.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/pi/Prerequisites/peak-linux-driver-8.6.0/lib'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/test'
cp receivetest transmitest bitratetest filtertest pcanfdtst pcan-settings /usr/local/bin
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/test'

Danke für Ihre schnelle und kompetente Hilfe!
EDIT:
Es klappt wieder. Ich habe alles deaktiviert, außer die USB Schnittstelle.
Muss der Treiber jetzt dennoch irgendwie ins System eingebunden werden?
sudo insmod pcan.ko -> Klappt nicht
sudo modprobe pcan -> Klappt nicht