FTDI zmiana vendor i product id w Ubuntu 14.04LTS

Już od dość dawna korzystam z kas fiskalnych posnet, które do komunikacji z komputerem wykorzystują wirtualny port szeregowy na bazie popularnego układu FTDI. Żeby jednak nie było tak różowo, producent – posnet – postanowił zmienić idVendor i idProduct urządzenia na niestandardowe wartości. Wartości te możemy odczytać, korzystając z polecenia lsusb (są to dwie liczby rozdzielone dwukropkiem). W moim przypadku jest to odpowiednio 0x1424 oraz 0x1001. Do tej pory nie było z tym problemów, gdyż wystarczyło podczas uruchamiania systemu (np. dodając do /etc/rc.local) wykonać:

/sbin/modprobe ftdi_sio vendor=0x1424 product=0x1001

i po sprawie. Niestety od wersji jądra 3.12 po wykonaniu takiej komendy otrzymamy informację:

# dmesg
ftdi_sio: unknown parameter 'vendor' ignored 
ftdi_sio: unknown parameter 'product' ignored 

Okazuje się, że parametry vendor oraz product były wykorzystywane przez programistów w celu debugowania i nie powinny być wykorzystywane przez użytkownika końcowego. W zamian za to został udostępniony odpowiedni interfejs w pliku /sys/bus/usb-serial/drivers/ftdi_sio/new_id, w którym wystarczy dopisać odpowiednią parę vendor i product i wszystko powinno znów działać poprawnie. Zatem w tej chwili moje linijki z /etc/rc.local wyglądają dokładnie tak:

/sbin/modprobe ftdi_sio 
echo "1424 1001" > /sys/bus/usb-serial/drivers/ftdi_sio/new_id 

i po podłączeniu kasy fiskalnej do komputera zostaje utworzone nowe urządzenie /dev/ttyUSB0.

Jedna odpowiedź do “FTDI zmiana vendor i product id w Ubuntu 14.04LTS”

  1. test pisze:

    To automate this, add the following to /etc/udev/rules.d/99-ftdi.rules:

    ACTION==”add”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”9090″, RUN+=”/sbin/modprobe ftdi_sio” RUN+=”/bin/sh -c ‘echo 0403 9090 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *