-
Notifications
You must be signed in to change notification settings - Fork 6
hcanhid udev
Das udev-System http://en.wikipedia.org/wiki/Udev sorgt dafuer, das an einem Linux-System angeschlossene Geraete bestimmte Namen im /dev Verzeichnis erhalten. Fuer den FT245, der auf dem Hostinterface verbaut ist, wird im Standardfalle ein /dev/ttyUSBx Device Node angelegt. Das Problem dabei ist, dass man im Voraus nicht weiss, welche Nummer fuer x eingesetzt wird - das legt udev zur Laufzeit dynamisch aufsteigend fest.
Daher ist es wuenschenswert, sowohl den Devicenamen, als auch gleich die Gruppe und Rechte festzulegen. Das geschieht mittels udev rules:
SUBSYSTEM=="tty", ATTRS{serial}=="0002", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", \
NAME="hcanhi0", MODE:="0660", GROUP:="hcanhi"
Weitere Infos zum Schreiben von udev rules finden sich unter http://www.reactivated.net/writing_udev_rules.html.
Um das System passend zu konfigurieren, sind folgende Schritte noetig:
groupadd --system hcanhi
Damit koennen nun nur root und Benutzer der Gruppe hcanhi auf das Hostinterface zugreifen.
Hinweis: bei den Hostinterfaces eines HCAN Starterkits ist bereits eine Seriennummer gesetzt.
Das Zuweisen einer Seriennummer geschieht mit dem Tool ftdi-eeprom, welches unter Debian wie gewohnt ueber das APT System installiert werden kann:
apt-get install ftdi-eeprom
Man legt nun eine Konfigurationsdatei namens "ftdi-eeprom.cf" mit folgendem Inhalt an:
vendor_id=0x0403 # Vendor ID
product_id=0x6001 # Product ID
max_power=50 # Max. power consumption: value * 2 mA. Use 0 if self_powered = true.
###########
# Strings #
###########
manufacturer="HCAN Labs, wiki.openhcan.de" # Manufacturer
product="HCAN Hostinterface v02" # Product
serial="15" # Serial
###########
# Options #
###########
self_powered=off # Turn this off for bus powered
remote_wakeup=false # Turn this on for remote wakeup feature
use_serial=true # Use the serial number string
# Normally out don't have to change one of these flags
BM_type_chip=true # Newer chips are all BM type
in_is_isochronous=false # In Endpoint is Isochronous
out_is_isochronous=false # Out Endpoint is Isochronous
suspend_pull_downs=false # Enable suspend pull downs for lower power
change_usb_version=false # Change USB Version
usb_version=0x0200 # Only used when change_usb_version is enabled
########
# Misc #
########
filename="eeprom.new" # Filename, leave empty to skip file writing
ACHTUNG: Wird ein FT245BL verwendet, so muss in der Konfiguration gesetzt werden:
BM_type_chip=false
Zum Beschreiben des FTDI EEPROMs muss das Kernel Modul entladen werden:
rmmod ftdi_sio
Dann werden die Daten geschrieben:
ftdi_eeprom --flash-eeprom ftdi-eeprom.cf
Nun wieder das Kernel-Modul laden:
modprobe ftdi_sio
Die Seriennummer kann nun z.B. mittels lsusb ermittelt werden:
$ lsusb -v | less
...
Bus 001 Device 016: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0403 Future Technology Devices International, Ltd
idProduct 0x6001 FT232 USB-Serial (UART) IC
bcdDevice 4.00
iManufacturer 1 HCAN Labs, wiki.openhcan.de
iProduct 2 HCAN Hostinterface v02
iSerial 3 0002
bNumConfigurations 1
Configuration Descriptor:
...
Nun wird eine Datei /etc/udev/rules.d/00-hcan.rules mit folgendem Inhalt erzeugt:
# HCAN udev rules
#
# siehe http://wiki.iuse.org/wiki/doku.php?id=hcanhid-udev
#
SUBSYSTEM=="tty", ATTRS{serial}=="0002", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", \
NAME="hcanhi0", MODE:="0660", GROUP:="hcanhi"
Das udev System wird neu gestartet:
/etc/init.d/udev restart
Das USB-Kabel des Hostinterfaces wird nun kurz aus- und wieder eingesteckt. Der Erfolg:
$ ls -l /dev/hcanhi0
crw-rw---- 1 root hcanhi 188, 0 2009-03-08 13:34 /dev/hcanhi0
Nun ist dieser Name (mit den Rechten und der Gruppe) immer existent, wenn das Hostinterface eingesteckt ist.
-
Tutorials
-
FAQ
-
Referenz
- Konzepte
- Hardware
- Software/PC
- Software/Firmware
- Patches
- EDS - EEPROM Data System
- HCAN Protokoll
- HCAN Protokoll - Referenz