Linux Driver Build Problems

This forum covers PCAN-Linux and Linux development issues concerning our products
Post Reply
mdenton
Posts: 19
Joined: Thu 23. Sep 2010, 16:04

Linux Driver Build Problems

Post by mdenton » Tue 6. Dec 2011, 20:29

Hi,

I am currently having problems building the driver for one of my linux platforms using kernel files for version 2.6.29. I can successfully build the driver if it is specified as type ISA, but I'm now trying to build the USB version. After I add USB support the pcan.ko file is not generated. I'm using the following build command:

Code: Select all

# make clean
# make KERNEL_LOCATION=/home/matt/HE_Kernel/src/linux-2.6.29 USB=USB_SUPPORT PCI=NO DNG=NO PCC=NO NET=NO ISA=NO
This produces the library file but not the driver pcan.ko or pcan.o file, I get the following output:

Code: Select all

make[1]: Entering directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver'
make[1]: *** No rule to make target `depend'. Stop.
make[1]: Leaving directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver'
make[1]: Entering directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver'
***
*** Host machine kernel version=2.6.32-36-generic
*** Driver kernel version=2.6.29
*** Path to kernel sources=/home/matt/HE_Kernel/src/linux-2.6.29
*** use KBUILD=yes
***
make -C /home/matt/HE_Kernel/src/linux-2.6.29 SUBDIRS=/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver        EXTRA_CFLAGS="-I/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver        -DNO_DEBUG -DMODVERSIONS -DPARPORT_SUBSYSTEM -DUSB_SUPPORT -DNO -DNO_PCIEC_SUPPORT -DNO -DNO -DNO -DNO -DNO_RT " V=0 modules
make[2]: Entering directory `/home/matt/HE_Kernel/src/linux-2.6.29'
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_main.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_fops.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_fifo.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_filter.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_parse.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_sja1000.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_common.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_usb_core.o
/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_usb_core.c: In function ‘pcan_usb_plugin’:
/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_usb_core.c:1176: error: implicit declaration of function ‘usb_reset_endpoint’
make[3]: *** [/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver/src/pcan_usb_core.o] Error 1
make[2]: *** [_module_/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver] Error 2
make[2]: Leaving directory `/home/matt/HE_Kernel/src/linux-2.6.29'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/driver'
make[1]: Entering directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/lib'
# ln -sf ../driver/pcan.h pcan.h
cc src/libpcan.c -fPIC -shared -O2 -Wall -Wl,-soname,libpcan.so.0 -lc -I. -I../driver -DNO_RT -o libpcan.so.0.6
ln -sf libpcan.so.0.6 libpcan.so
make[1]: Leaving directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/lib'
make[1]: Entering directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/test'
cc src/receivetest.c src/common.c -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o receivetest   -lpcan -DNO_RT
cc src/transmitest.cpp src/common.c src/parser.cpp -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o transmitest   -lpcan -lstdc++ -DNO_RT
cc src/bitratetest.c src/common.c -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o bitratetest   -lpcan -DNO_RT
cc src/filtertest.cpp src/common.c -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o filtertest   -lpcan -lstdc++ -DNO_RT
cc src/pcan-settings.c -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o pcan-settings   -lpopt -g
make[1]: Leaving directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-7.4/test'
It looks as though there is a problem at the start with the message: "*** No rule to make target `depend'. Stop." But being a relative linux novice I'm not sure what to do to fix this?
Matt Denton

Micromagic Systems - www.micromagicsystems.com
Hexapod Robot - www.hexapodrobot.com

mdenton
Posts: 19
Joined: Thu 23. Sep 2010, 16:04

Re: Linux Driver Build Problems

Post by mdenton » Tue 6. Dec 2011, 22:49

Ok, just to test things a little further I went back to an older version of the driver, V 6.2 which I had used before also only in ISA mode, this version compiles properly creating the pcan.ko and pcan.o files.

Here is the output:

Code: Select all

make[1]: Entering directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver'
make[1]: *** No rule to make target `depend'. Stop.
make[1]: Leaving directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver'
make[1]: Entering directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver'
***
*** Host machine kernel version=2.6.32-36-generic
*** Driver kernel version=2.6.29
*** Path to kernel sources=/home/matt/HE_Kernel/src/linux-2.6.29
*** use KBUILD=yes
***
make -C /home/matt/HE_Kernel/src/linux-2.6.29 SUBDIRS=/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver        EXTRA_CFLAGS="-I/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver        -DNO_DEBUG -DMODVERSIONS -DPARPORT_SUBSYSTEM -DUSB_SUPPORT -DNO -DNO -DNO -DNO -DNO -DNO_RT " V=0 modules
make[2]: Entering directory `/home/matt/HE_Kernel/src/linux-2.6.29'
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/src/pcan_main.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/src/pcan_fops.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/src/pcan_fifo.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/src/pcan_filter.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/src/pcan_parse.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/src/pcan_sja1000.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/src/pcan_common.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/src/pcan_usb_kernel.o
  CC [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/src/pcan_usb.o
  LD [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/pcan.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/pcan.mod.o
  LD [M]  /home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver/pcan.ko
make[2]: Leaving directory `/home/matt/HE_Kernel/src/linux-2.6.29'
make[1]: Leaving directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/driver'
make[1]: Entering directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/lib'
# ln -sf ../driver/pcan.h pcan.h
cc src/libpcan.c -fPIC -shared -O2 -Wall -Wl,-soname,libpcan.so.0 -lc -I. -I../driver -DNO_RT -o libpcan.so.0.6
ln -sf libpcan.so.0.6 libpcan.so
make[1]: Leaving directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/lib'
make[1]: Entering directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/test'
cc src/receivetest.c src/common.c -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o receivetest   -lpcan -DNO_RT
cc src/transmitest.cpp src/common.c src/parser.cpp -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o transmitest   -lpcan -lstdc++ -DNO_RT
cc src/bitratetest.c src/common.c -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o bitratetest   -lpcan -DNO_RT
cc src/filtertest.cpp src/common.c -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o filtertest   -lpcan -lstdc++ -DNO_RT
cc src/pcan-settings.c -I. -I../lib -I../driver -L../lib -L/lib -L/usr/lib -L/usr/local/lib -o pcan-settings   -lpopt -g
make[1]: Leaving directory `/home/matt/HE_Kernel/pcan/peak-linux-driver-6.20/test'
So up to which version of the driver will support linux 2.6.29 ?

Matt.
Matt Denton

Micromagic Systems - www.micromagicsystems.com
Hexapod Robot - www.hexapodrobot.com

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

Re: Linux Driver Build Problems

Post by M.Maidhof » Wed 7. Dec 2011, 11:32

Hello,

to solve your problem please see the following forum entry:

http://www.peak-system.com/forum/viewto ... p=603#p603

best regards

Michael

mdenton
Posts: 19
Joined: Thu 23. Sep 2010, 16:04

Re: Linux Driver Build Problems

Post by mdenton » Wed 7. Dec 2011, 20:25

Great, thanks for the pointer!
Matt Denton

Micromagic Systems - www.micromagicsystems.com
Hexapod Robot - www.hexapodrobot.com

Post Reply