News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

Driver not loading using Ubuntu 20.04

Started by tcmichals, August 02, 2020, 06:25:33 AM

Previous topic - Next topic

tcmichals

The USB Arrow driver is not found using Quartus.  This was all working until I upgraded from 18.04 to 20.04.
lsusb
Bus 001 Device 019: ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC

If I remeber right it use to have Arrow in the descriptor

Here is my udev file:
# Arrow-USB-Programmer
SUBSYSTEM=="usb",\
ENV{DEVTYPE}=="usb_device",\
ATTR{idVendor}=="0403",\
ATTR{idProduct}=="6010",\
MODE="0666",\
NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}",\
RUN+="/bin/chmod 0666 %c"

SUBSYSTEM=="usb",\
ATTRS{idVendor}=="0403",\
ATTRS{idProduct}=="6010",\
ATTR{interface}=="Arrow USB Blaster",\
ATTR{bInterfaceNumber}=="00",\
RUN="/bin/sh -c 'echo $kernel > /sys/bus/usb/drivers/ftdi_sio/unbind'"

lsusb -vd 0403:6010

Bus 001 Device 016: ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6010 FT2232C/D/H Dual UART/FIFO IC
  bcdDevice            7.00
  iManufacturer           1 FTDI
  iProduct                2 Dual RS232-HS
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0037
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 Dual RS232-HS
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 Dual RS232-HS
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

I did:
sudo rmmod ftdi_sio
sudo rmmod usbserial
repeated the  lsusb -vd 0403:6010  the output was the same.

If I use virtual box and start win10 dump the descriptor info, it has Arrow descriptor, serial number etc. 



tcmichals

Some more information running virtualbox win10:

diag tools:
Arrow USB Programmer2 Diagnostic Program V1.2

Reading version info.
- Operating system version number is 10.0.19041.
- Quartus version is 20.1.0.711.

Searching programmer hardware.
- Error. No programmer hardware found.

Reading registry entries for programmer DLL.
- Successful. TCK frequency is 20.000.000 Hz.

Searching programmer DLL.
- Successful. Programmer DLL installed properly.

Checking Altera JTAG server service.
- Service has been stopped successfully.
- Service has been started successfully.

Reading registry entries for FTDI driver configuration settings.
- Successful. FTDI driver configuration settings are OK.

Total errors: 1
Hit any key to exit program.
attached is screen shot of the FTDI app

JH

Hi,

VM and JTAG can make trouble, that's maybe the reason why JTAG not works on your VM.

I use  Win OS native only, so I can't help much with your Ubuntu 20.04 problem.

Did you check that your setup on 20.4 is still correct, we have some notes:
https://wiki.trenz-electronic.de/display/PD/Arrow+USB+Programmer#ArrowUSBProgrammer-Linux

and Arrow driver files includes additional notes:
http://www.trenz-electronic.de/fileadmin/docs/Trenz_Electronic/Software/Drivers/Arrow_USB_Programmer/Arrow_USB_Programmer_2.4/Arrow_USB_Programmer_2.4_linux64.zip

your rules looks like the same which arrow describes in the readme from the download.  Did you checkedtthe VCP drivers are still removed?


br
John

tcmichals

Installed WIN 10 on PC and install Quartus along with Arrow USB drivers and still not working.

Arrow USB Programmer2 Diagnostic Program V1.2

Reading version info.
- Operating system version number is 10.0.19041.
- Quartus version is 20.1.0.711.

Searching programmer hardware.
- Error. No programmer hardware found.


Reading registry entries for programmer DLL.
- Successful. TCK frequency is 20.000.000 Hz.

Searching programmer DLL.
- Successful. Programmer DLL installed properly.

Checking Altera JTAG server service.
- Service has been stopped successfully.
- Service has been started successfully.

Reading registry entries for FTDI driver configuration settings.
- Successful. FTDI driver configuration settings are OK.

Total errors: 1
Hit any key to exit program.


What else to try?  is The eeprom wrong?



tcmichals

I also tried the -c option on the tool.

tcmichals

Here is a screen shot of the device manager


tcmichals


JH

Hi,

in this case the EEPROM is empty (your last picture with USB viewer).

But your wrote at the beginning:
QuoteThe USB Arrow driver is not found using Quartus.  This was all working until I upgraded from 18.04 to 20.04.

If I understand this correctly, eeprom content was correct before you has done the update?

So did you try to modify eeprom with some tools? I can't imagine how linux update can influence eeprom content.

br
John

tcmichals

"If I understand this correctly, eeprom content was correct before you has done the update?"

-The EEPROM was changed before the OS grade. via the FTDI - FT Prog tool.  There was no test performed to validate the change. The change was made to Hardware Specific/Port B/Hardware to set RS232 UART.

The attached screen shot was taken from a WIN10 PC, no VM installed. So how can the EEPROM be blank? The Product Name, Desc etc looks valid. Is there invalid CRC or checksum? special key?





JH

Hi.

QuoteThe EEPROM was changed before the OS grade. via the FTDI - FT Prog tool.  There was no test performed to validate the change. The change was made to Hardware Specific/Port B/Hardware to set RS232 UART.

JTAG for port A and UART for port B was predefined. You didn't have to change that.

You used the newest FT_PROG tool from FTDI webpage? This is the problem, in case you has used the newest version. The new FT_PROG seems to have a bug. It didn't not write check sum on the correct address in the EEPROM, like it should be done from the FTDI specification. With older FT_PROG version it works fine.
Do you have some older version of FT_PROG?

br
John


tcmichals

Problem resolved.

Loaded /Support/Utilities/FT_Prog_v3.0.56.245.zip (common basename) 
using this link  https://www.ftdichip.com/Support/Utilities/FT_Prog_v3.0.0%20Installer.exe

Windows and 20.04 Ubuntu both work.

JH

Hi,
thanks for the link.

PS: Use only https://www.ftdichip.com/Support/Utilities/FT_Prog_v3.
--> than list with available versions will be larger

br
John