On 30.04.2011 14:09, AD wrote:
> Hi all,
> 
> I hope that someone can give me a hint for the following problem.
> 
> That's what I did:
> 
> checkout socketcan from svn (revision 1240)
> 
> in the folder socketcan/kernel/2.6:
> 
> make
> make modules_install
> 
> modprobe can-isotp
> 
> This results in the following error:
> FATAL: Error inserting can_isotp
> /lib/modules/2.6.32-bpo.5-686/extra/can-isotp.ko): Unknown symbol in module,
> or unknown parameter (see dmesg)
> 
> dmesg | tail output:
> 
> [41334.983203] can: controller area network core (rev 20090105 abi 8)
> [41334.984140] NET: Registered protocol family 29
> [41334.985885] can_isotp: disagrees about version of symbol can_proto_register
> [41334.985891] can_isotp: Unknown symbol can_proto_register
> [41334.986323] can_isotp: Unknown symbol can_ioctl
> [41334.987262] can_isotp: disagrees about version of symbol 
> can_proto_unregister
> [41334.987265] can_isotp: Unknown symbol can_proto_unregister
> 
> lsmod | grep can results in this output
> can                    17795  0
> 
> this does also work:
> modprobe can-raw
> modprobe can-bcm
> 
> lsmod | grep can results in this output
> 
> can_bcm                 9527  0
> can_raw                 4235  0
> can                    17795  2 can_bcm,can_raw
> 
> So any ideas how the problem can be fixed?

Yes.

The problem is, that you have a mix of mainline CAN sources (that came with
your Debian kernel) and the SocketCAN SVN sources.

You built the SocketCAN sources against the includes from the SVN which
contain some updates that will emerge in the 2.6.39 mainline kernel (but not
in your 2.6.32-bpo.5-686).

You need to load consistent modules from mainline *OR* the BerliOS SVN:

By default the Mainline modules are loaded (that's why can_raw and can_bcm are
loading without problems). They are located in

/lib/modules/2.6.32-bpo.5-686/kernel/net/can/*.ko

The SocketCAN SVN modules are located in

/lib/modules/2.6.32-bpo.5-686/extra/net/can/*.ko

or (in your setup seen above)

/lib/modules/2.6.32-bpo.5-686/extra/*.ko

which therefore interferes ...

So if you would like to run can-isotp you must be sure not to load the
mainline modules:

Unload all 'mainline' modules:

modprobe -r can-bcm
modprobe -r can-raw
modprobe -r can

cd /lib/modules/2.6.32-bpo.5-686/extra/

insmod ./can.ko
insmod ./can-isotp.ko
insmod ./can-raw.ko
insmod ./can-bcm.ko

This works :-)

If you would like to use the SocketCAN modules generally you may remove the
mainline CAN modules from the mainline modules directory:

rm /lib/modules/2.6.32-bpo.5-686/kernel/net/can/*.ko

and reorder the module depencies to select the stuff from
/lib/modules/2.6.32-bpo.5-686/extra/

depmod -a

But this is your choice - if you know what you're doing ;-)

Regards,
Oliver

_______________________________________________
Socketcan-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/socketcan-users

Reply via email to