BASICS :
1.) You need to edit and recompile the ftdi_sio kernel object.
This can be done either in a "hacker" fashion or in a "developer" fasion :
HACKER one ( just use hard-coded data ) :
- Locate the ftdi_sio.c file in the kernel source directory. ( /usr/src/kernel###/drivers/usb/serial )
- Add to ftdi_sio.c the following line in the "static struct usb_device_id id_table_combined [] = {" definition :
{ USB_DEVICE(0x0403, 0xFFA8) }, // Added for CANUSB
DEVELOPER one ( with .h and symbols ) :
You need to add 1 lines in the ftdi_sio.[ch] files.
- Locate the ftdi_sio.c and ftdi_sio.h files in the kernel source directory. ( /usr/src/kernel###/drivers/usb/serial )
- Add to ftdi_sio.h the following, anywhere :
#define FTDI_LAWICEL_CANUSB_PID 0xFFA8
- Add to ftdi_sio.c the following line in the "static struct usb_device_id id_table_combined [] = {" definition :
{ USB_DEVICE(FTDI_VID, FTDI_LAWICEL_CANUSB_PID) }, // Added for CANUSB
( Since FTDI_VID is already "0x0403" )
Recompile and install the module.
(It should be transferred to /lib/modules/#version#/kernel/drivers/usb/serial/ as "ftdi_sio.ko" in my 2.6 Debian case )
2.) Add to /etc/hotplug/usb.handmap :
ftdi_sio 0x0003 0x0403 0xffa8 0x0000 0x0000 0x00 0x00 0x00 0xff 0x00 0x00 0x0
3.) CANUSB will show up on /dev/ttyUSB[012..] and the original USB232 code can be used, as things like baud setting does not apply...
You will need to take care of permissions for the /dev/ttyUSB0 if not running as root... Email me if you have problems.