Used SW:
- Slackware LINUX
- perl
- mpd (music player daemon)
- kernel socket-can to join to canbus
- candump and cansend utils from socket-can
CAN bus:
- to show text on SID is used message "337h - SPA to SID text", and "357h - SPA to SID text control".
(as Tomi used in OBD to SID application).
- to handle buttons is used message "290h - Steering wheel and SID buttons"
- in CDC version also 3C0h, 3C8h, and 6A2h is used. 290h is not used
==================================================
=> Simple howto for Linux users which would like to test and play or develop apps for saab can bus,
because didn't find any info on web, how-to get saab ibus working on Linux OS.
So joined all info together, from Tomi page and all info from socket-can page and I got successful connection to i-bus based on socket-can.
=> So here is step by step.
1. Fist download sources from http://developer.berlios.de/projects/socketcan
(will be needed utils and slcan module)
2. You can download it with: "svn checkout svn://svn.berlios.de/socketcan/trunk"
3. To build slcan.ko module go to directory trunk/kernel/2.6/drivers/net/can/
4. Execute "make CONFIG_CAN_SLCAN=m", because in default slcan.ko will not build
5. Copy new module to kernel modules dir: mkdir /lib/modules/$(uname -r)/socketcan; cp slcan.ko /lib/modules/$(uname -r)/socketcan; depmod -a
6. Build and install can-utils: ( I am using "slcan_attach", "candump" and "cansend", it's enough for saab ibus)
cd trunk/can-utils, make, make install
7. Load default kernel modules can, can-raw and new compiled module slcan from socketcan:
modprobe can; modprobe can-raw; modprobe slcan
8. Plug canusb to PC, and you should see in dmesg message with new device at ttyUSB0
9. Now attach serial interface "ttyUSB0" to network-socket "slc0":
slcan_attach -w -o -b CB9A -c /dev/ttyUSB0 ( it will open canbus on canusb device with speed 47,619 kbit/s as Tomi wrote on his site)
10. Bring up slc0 interface:
ifconfig slc0 up
11. Now you can dump or send data with candump and cansend.
example dump: candump slc0,290:7FF => will log just 290H message (candump slc0 will log all i-bus traffic )
example send: cansend slc0 337#4296015041524B2E => will send can message to 337h
( for all command-line switches execute candump and cansend without parameters)