|
![]() |
![]() |
|||
|
Polhemus Patriot Linux Driver - USB ComponentAuthor: Daniel Myall (daniel@westco.co.nz) February 10, 2004 July 20, 2005 Intro There are two components to the driver. The first is the firmware loader, the second is the Linux USB kernel module that communicates to the Patriot System. When the Patriot system is initially attached, it will appear with a device ID of 0f44:ef11. If the hotplug system is working, it will immediately download the firmware, and reconnect as a serial device with the ID of ID 0f44:ef12 at '/dev/ttyUSB0' or '/dev/usb/ttyUSB0'. The Patriot system can be directly addressed via the ttyUSB0 device by using a serial communication program such as minicom. InstallationThis assumes that USB is working correctly on the machine. The following instructions need to be done as root. Part A: FirmwareThe firmware is loaded by the program fxload, standard with most linux distributions (or available from First, edit (or create if needed) '/etc/hotplug/usb.usermap' (on Redhat 9.0 and Debian Sarge) and add the following line: patriot 0x0003 0x0f44 0xef11 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000 Copy the file "patriot" to '/etc/hotplug/usb'. This script assumes that a3load.hex and PatriotUSB.hex have been placed in the directory '/usr/share/usb'. If you wish to relocate the files, edit '/etc/hotplug/usb/patriot' and update the location. Note that case is important. The patriot script also assumes that fxload is located in '/sbin'. Change this as needed on your system. This will cause the firmware to be uploaded when the Patriot is connected. Look in '/var/log/messages' for any error messages. Part B: USB DriverAt the moment the generic linux USB driver is used. This works, although it is not ideal. Under a Linux 2.4 kernel to make this work simply run: /sbin/insmod usbserial vendor=0x0f44 product=0xef12 This assumes that usbserial has been compiled as a module. Redhat 8.0 has this by default. This line can be placed in '/etc/rc.d/rc.local' to run on startup. Under a Linux 2.6 kernel the visor module is used instead of usbserial. Edit '/etc/modprobe.conf' or '/etc/modprobe.d/usb' (create if needed) and add the following line. options visor vendor=0x0f44 product=0xef12 Either add the following lines to '/etc/rc.d/rc.local': modprobe usbserial OR under Debian add the lines to '/etc/modules': usbserial Troubleshooting* In a pinch, you can manually invoke: /sbin/insmod visor vendor=0x0f44 product=0xef12 to load the module (usbserial should autoload). * To make sure that the visor module is loaded with the right options, issue `modprobe -nv visor`. If you do not see the options appended to the end of the insmod statement, it will not work. Note that with the '-n' option modprobe performs a dry run, it does not load the module. * If `lsusb` (part of usbutils) outputs: Bus ### Device ###: ID 0f44:ef11 instead of: Bus ### Device ###: ID 0f44:ef12 This means that the firmware upload and/or hotplug failed. * Under 2.6 and udev, the device will automatically created at '/dev/ttyUSB0'. If necessary, `mknod /dev/ttyUSB0 c 188 0` can create the device. Disregard '/dev/ttyUSB1' if created. It is a useless |
||||
| Shane Tzen © 2010 | |||||
|
![]() |
||||
| brought to you by the number 7 and the letter T | |||||