Re: Raspberry mit USB PCAN
Posted: Tue 18. Sep 2018, 14:12
Hallo,
danke für den Hinweis.
Wie im Handbuch beschrieben, habe ich diesen Treiber jetzt für SocketCAN bzw. netdev gebaut.
Jetzt klappt auch das Bauen nicht mehr.
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
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