"Warning: ...undefined" when installing driver for RTAI

This forum covers PCAN-Linux and Linux development issues concerning our products
Post Reply
niklas.b
Posts: 9
Joined: Fri 23. Sep 2016, 13:43

"Warning: ...undefined" when installing driver for RTAI

Post by niklas.b » Mon 26. Sep 2016, 09:47

Hi, I'm trying to install the 8.1 driver for a RTAI patched Linux for the PCAN-PCI 4-Channel card.

I have the linux headers, libpopt-dev and libstdc++6 installed and followed the installation instructions for the driver via the manual. When building the driver with

Code: Select all

make RT=RTAI
I get the following:
root@tux1035:/usr/src/can_driver/peak-linux-driver-8.1# make RT=RTAI
make[1]: Verzeichnis »/usr/src/can_driver/peak-linux-driver-8.1/driver« wird betreten
make[1]: Für das Ziel »depend« ist nichts zu tun.
make[1]: Verzeichnis »/usr/src/can_driver/peak-linux-driver-8.1/driver« wird verlassen
make[1]: Verzeichnis »/usr/src/can_driver/peak-linux-driver-8.1/driver« wird betreten
***
*** Host machine kernel version=3.10.32-rtai
*** Driver kernel version=3.10.32
*** Path to kernel sources=/lib/modules/3.10.32-rtai/build
*** use KBUILD=yes
*** cc version=4.8
***
make -C /lib/modules/3.10.32-rtai/build SUBDIRS=/usr/src/can_driver/peak-linux-driver-8.1/driver EXTRA_CFLAGS="-I/usr/src/can_driver/peak-linux-driver-8.1/driver -DNO_DEBUG -DMODVERSIONS -DNO_PARPORT_SUBSYSTEM -DNO_USB_SUPPORT -DPCI_SUPPORT -DNO_PCIEC_SUPPORT -DISA_SUPPORT -DDONGLE_SUPPORT -DNO_PCCARD_SUPPORT -DNO_NETDEV_SUPPORT -DRTAI -U_FORTIFY_SOURCE -I. -I/usr/realtime/include -D_FORTIFY_SOURCE=0 -ffast-math -mhard-float" V=0 modules
make[2]: Verzeichnis »/usr/src/linux-headers-3.10.32-rtai« wird betreten
Building modules, stage 2.
MODPOST 1 modules
WARNING: "rtdm_mutex_timedlock" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rt_sem_delete" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtdm_event_init" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "xnselect_destroy" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtdm_dev_register" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtdm_dev_unregister" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtdm_event_timedwait" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtdm_mutex_lock" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtdm_event_signal" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtdm_mutex_init" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rt_sem_signal" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "xnintr_detach" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtai_cpu_lock" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "start_rt_timer" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rt_get_time_ns" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rt_smp_current" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtdm_irq_request" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
WARNING: "rtdm_toseq_init" [/usr/src/can_driver/peak-linux-driver-8.1/driver/pcan.ko] undefined!
make[2]: Verzeichnis »/usr/src/linux-headers-3.10.32-rtai« wird verlassen
make[1]: Verzeichnis »/usr/src/can_driver/peak-linux-driver-8.1/driver« wird verlassen
make[1]: Verzeichnis »/usr/src/can_driver/peak-linux-driver-8.1/lib« wird betreten
make[1]: Für das Ziel »all« ist nichts zu tun.
make[1]: Verzeichnis »/usr/src/can_driver/peak-linux-driver-8.1/lib« wird verlassen
make[1]: Verzeichnis »/usr/src/can_driver/peak-linux-driver-8.1/test« wird betreten
make[1]: Für das Ziel »all« ist nichts zu tun.
make[1]: Verzeichnis »/usr/src/can_driver/peak-linux-driver-8.1/test« wird verlassen
root@tux1035:/usr/src/can_driver/peak-linux-driver-8.1#
I found a similar post here on the forums from 2012, but the answers back then was to install the driver in version 6.24. I tried that, but had no luck either.


Edit:
I ran the make command with additional VERBOSE=1:
make[2]: Verzeichnis »/usr/src/linux-headers-3.10.32-rtai« wird betreten
test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \
echo >&2; \
echo >&2 " ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
/bin/false)
Now, this is strange, because both mentioned files are there. It's like described here http://stackoverflow.com/questions/4715 ... d-anything, despite I didn't touch the make files at all.
Last edited by niklas.b on Mon 26. Sep 2016, 16:25, edited 1 time in total.

User avatar
S.Grosjean
Software Development
Software Development
Posts: 357
Joined: Wed 4. Jul 2012, 17:02

Re: "Warning: ...undefined" when installing driver for RTAI

Post by S.Grosjean » Mon 26. Sep 2016, 16:15

Hi!

Did you nonetheless try to modprobe the pcan driver?

Regards,

Stéphane
— Stéphane

niklas.b
Posts: 9
Joined: Fri 23. Sep 2016, 13:43

Re: "Warning: ...undefined" when installing driver for RTAI

Post by niklas.b » Mon 26. Sep 2016, 16:32

Interestingly enough

Code: Select all

make install
does not give me any errors.

When I try to load the pcan driver, I get:
root@tux1035:/usr/src/can_driver/peak-linux-driver-8.1# modprobe pcan
modprobe: ERROR: could not insert 'pcan': Unknown symbol in module, or unknown parameter (see dmesg)
root@tux1035:/usr/src/can_driver/peak-linux-driver-8.1# dmesg | tail -n 20
...
[26334.550220] rtai_sem: Unknown symbol wake_up_srq (err 0)
[26334.550230] rtai_sem: Unknown symbol rt_get_time (err 0)
[26334.550235] rtai_sem: Unknown symbol rt_register (err 0)
[26334.550240] rtai_sem: Unknown symbol rtheap_alloc (err 0)
[26334.550244] rtai_sem: Unknown symbol rt_smp_current (err 0)
[26334.550249] rtai_sem: Unknown symbol rtheap_free (err 0)
[26334.550255] rtai_sem: Unknown symbol rt_smp_linux_task (err 0)
[26334.550261] rtai_sem: Unknown symbol rt_task_delete (err 0)
[26334.550266] rtai_sem: Unknown symbol rt_smp_time_h (err 0)
[26334.550271] rtai_sem: Unknown symbol rt_drg_on_adr_cnt (err 0)
[26334.550277] rtai_sem: Unknown symbol set_rt_fun_entries (err 0)
[26334.550281] rtai_sem: Unknown symbol rtai_global_heap (err 0)
[26334.550289] rtai_sem: Unknown symbol boot_epoch (err 0)
[26334.550293] rtai_sem: Unknown symbol rt_get_adr_cnt (err 0)
[26334.550300] rtai_sem: Unknown symbol reset_rt_fun_entries (err 0)
[26334.550304] rtai_sem: Unknown symbol rt_schedule (err 0)

User avatar
S.Grosjean
Software Development
Software Development
Posts: 357
Joined: Wed 4. Jul 2012, 17:02

Re: "Warning: ...undefined" when installing driver for RTAI

Post by S.Grosjean » Mon 26. Sep 2016, 16:37

Hi,

Running pcan with RTAI needs operator to load some RTAI modules by hand: try to load first:

rtai_hal.ko
rtai_sched
rtai_sem
rtai_rtdm

This should do the trick.

Regards,

Stéphane
— Stéphane

niklas.b
Posts: 9
Joined: Fri 23. Sep 2016, 13:43

Re: "Warning: ...undefined" when installing driver for RTAI

Post by niklas.b » Mon 26. Sep 2016, 16:41

Does the PCAN driver with RT support rely on any specific rtai module? Because it seems, that one of them cannot be loaded:
root@tux1035:/usr/src/can_driver/peak-linux-driver-8.1# cd /usr/realtime/modules
root@tux1035:/usr/realtime/modules# modprobe *.ko
modprobe: FATAL: Module latency_rt.ko not found.
Ah ok, sry. I posted before I saw your advice

Update:
It seems that some of the rtai modules are not loading (hal and sched working, sem and rtdm not), so RTAI seems to be the problem, I will investigate that.

Thank you for your help regarding the driver.

niklas.b
Posts: 9
Joined: Fri 23. Sep 2016, 13:43

Solved

Post by niklas.b » Tue 27. Sep 2016, 17:17

I got it working. Just in case someone have the same trouble, for me this worked:

The order of loading the 4 required rtai modules was crucial. The following code snippets can be put in /etc/rc_local before the exit so that the driver is loaded automatically on startup:

Code: Select all

# go to the RTAI modules directory
cd /usr/realtime/modules
modprobe rtai_hal
modprobe rtai_sched
modprobe rtai_rtdm
modprobe rtai_sem
# go to your PCAN driver module directory
cd /usr/src/can_driver/peak-linux-driver-8.1/driver
modprobe pcan

User avatar
S.Grosjean
Software Development
Software Development
Posts: 357
Joined: Wed 4. Jul 2012, 17:02

Re: "Warning: ...undefined" when installing driver for RTAI

Post by S.Grosjean » Wed 28. Sep 2016, 09:03

Hello Niklas,

Thanks for your contribution!

Best regards,

Stéphane
— Stéphane

Post Reply