wineftd2xx
wineftd2xx copied to clipboard
device not found, ubuntu 20.04 (AMD64)
Hello and thanks for you efforts!
I spent a good 45 min trying different things.
I even reinstalled wine
So I have built your lib and put it in the right place (removed the .so):
:/usr/lib/wine$ ll
total 964
drwxr-xr-x 2 root root 4096 May 20 10:37 ./
drwxr-xr-x 135 root root 12288 May 20 10:28 ../
-rwxr-xr-x 1 root root 332984 May 20 10:05 ftd2xx.dll*
-rw-r--r-- 1 root root 2217 May 20 09:57 libftd2xx.def
-rwxr-xr-x 1 root root 13692 Apr 20 2020 wine*
-rwxr-xr-x 1 root root 115 Apr 20 2020 wineapploader*
-rwxr-xr-x 1 root root 382 Apr 20 2020 wineserver*
-rwxr-xr-x 1 root root 603804 Apr 20 2020 wineserver32*
my udev rule fires correctly
May 20 10:46:10 maxime-ThinkPad-T14-Gen-1 systemd-udevd[760811]: 6-2: /etc/udev/rules.d/81-logicport.rules:2 GROUP 46
May 20 10:46:10 maxime-ThinkPad-T14-Gen-1 systemd-udevd[760811]: 6-2: /etc/udev/rules.d/81-logicport.rules:2 MODE 0664
May 20 10:46:10 maxime-ThinkPad-T14-Gen-1 systemd-udevd[760811]: 6-2: Handling device node '/dev/bus/usb/006/107', devnum=c189:746
May 20 10:46:10 maxime-ThinkPad-T14-Gen-1 systemd-udevd[760811]: 6-2: Preserve already existing symlink '/dev/char/189:746' to '../bus/usb/006/107'
May 20 10:46:10 maxime-ThinkPad-T14-Gen-1 systemd-udevd[760811]: 6-2: sd-device: Created db file '/run/udev/data/c189:746' for '/devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb6/6-2'
May 20 10:46:10 maxime-ThinkPad-T14-Gen-1 systemd-udevd[760811]: 6-2: Device (SEQNUM=9468, ACTION=bind) processed
May 20 10:46:10 maxime-ThinkPad-T14-Gen-1 systemd-udevd[760811]: 6-2: sd-device-monitor: Passed 760 byte to netlink monitor
When I fire LogicPort, it says it can't find my device...
i also have this issue trying to get LogicPort running on Ubuntu 22.04 did you find out anything since your last post?
i came to this project from https://www.mikrocontroller.net/topic/459834 , but not understanding the german!
my USB port in linux seems ok, from dmesg:
[2349911.143702] usb 3-2: new full-speed USB device number 23 using xhci_hcd
[2349911.317071] usb 3-2: New USB device found, idVendor=0403, idProduct=dc48, bcdDevice= 4.00
[2349911.317080] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[2349911.317084] usb 3-2: Product: LogicPort Logic Analyzer
[2349911.317087] usb 3-2: Manufacturer: Intronix
[2349911.317089] usb 3-2: SerialNumber: 22060462
[2350255.128680] usb 3-2: USB disconnect, device number 23
[2350274.043700] usb 3-2: new full-speed USB device number 24 using xhci_hcd
[2350274.213714] usb 3-2: New USB device found, idVendor=0403, idProduct=dc48, bcdDevice= 4.00
[2350274.213727] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[2350274.213731] usb 3-2: Product: LogicPort Logic Analyzer
[2350274.213733] usb 3-2: Manufacturer: Intronix
[2350274.213736] usb 3-2: SerialNumber: 22060462
[2350676.764325] ftdi_sio 3-2:1.0: FTDI USB Serial Device converter detected
[2350676.764398] usb 3-2: Detected FT232B
[2350676.768278] usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB1
Ubuntu 22.04.2 LTS wine version is 8.0.1 packages from wine-stable
i built this project and put the lib : /opt/wine-stable/lib/wine/i386-unix/ftd2xx.dll.so
i have the following link in ~/.wine/dosdevices/ com34 -> /dev/ttyUSB1
when i start LogicPort.exe , it just has the popup 'No LogicPort Hardware'
~/.wine/drive_c/Program Files (x86)/LogicPort$ FTDID=DC48 wine LogicPort.exe
0138:fixme:olepicture:OleLoadPictureEx 027B3B04, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BF8F8, partially implemented.
0138:fixme:olepicture:OleLoadPictureEx 027B3B04, 326, 1, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BF8F8, partially implemented.
0138:fixme:olepicture:OleLoadPictureEx 027B3B04, 1086, 1, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BF8C8, partially implemented.
0138:fixme:olepicture:OleLoadPictureEx 027B3B04, 1086, 1, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BF8C8, partially implemented.
0138:fixme:olepicture:OleLoadPictureEx 027B3B04, 1086, 1, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BF8C8, partially implemented.
0138:fixme:olepicture:OleLoadPictureEx 027B3B04, 1086, 1, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BF898, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (0080A018)->(015C45B8, 0, 00000000), hacked stub.
0138:fixme:olepicture:OleLoadPictureEx 027D42C4, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BFA30, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (0088D6E0)->(015C4900, 0, 00000000), hacked stub.
0138:fixme:olepicture:OleLoadPictureEx 027D534C, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BFA30, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (0088E440)->(015C58C0, 0, 00000000), hacked stub.
0138:fixme:olepicture:OleLoadPictureEx 027D7BB4, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BFA30, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (008905D8)->(015C69D0, 0, 00000000), hacked stub.
0138:fixme:olepicture:OleLoadPictureEx 027DA69C, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BFA30, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (00894E78)->(015C8BF0, 0, 00000000), hacked stub.
0138:fixme:olepicture:OleLoadPictureEx 027DF7DC, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BFA30, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (00899AB0)->(015C9670, 0, 00000000), hacked stub.
0138:fixme:olepicture:OleLoadPictureEx 027E1714, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BFA30, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (0089BCA0)->(015CA780, 0, 00000000), hacked stub.
0138:fixme:olepicture:OleLoadPictureEx 027E4204, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BFA30, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (0089FAE0)->(015CB938, 0, 00000000), hacked stub.
0138:fixme:olepicture:OleLoadPictureEx 027E719C, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BFA30, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (008A3628)->(015CEB18, 0, 00000000), hacked stub.
0138:fixme:olepicture:OleLoadPictureEx 027EE1B4, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BFA30, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (008AB5C0)->(015CEC68, 0, 00000000), hacked stub.
0138:fixme:imm:ImeSetActiveContext (000401CC, 1): stub
0138:fixme:imm:ImmReleaseContext (00020124, 000401CC): stub
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:toolbar:TOOLBAR_ReplaceBitmap resources not in the current module not implemented
0138:fixme:win:NtUserLockWindowUpdate (0x4004a), partial stub!
0138:fixme:win:NtUserLockWindowUpdate ((nil)), partial stub!
0138:fixme:htmlhelp:HtmlHelpW HH case HH_INITIALIZE not handled.
0138:fixme:olepicture:OleLoadPictureEx 027F9334, 1086, 0, {7bf80980-bf32-101a-8bbb-00aa00300cab}, 0, 0, 0, 006BF570, partially implemented.
0138:fixme:olepicture:OLEPictureImpl_SaveAsFile (009AF430)->(015D28A0, 0, 00000000), hacked stub.
i am not sure how it looks for the correct com port , or how wine knows to use the lib for this usb port...
Did you remember to set the FTDID env var as described in step 5 of the README?
The ftd2xx.dll.so file must be copied into the wine/x86_64 or wine_i386 directory of your wine installation.
The proper directory is full of other .so files. It is NOT a windows dll. Its .so suffix must be retained.
thank you for the quick response!
i set FTDID=DC48 , which matches the idProduct from dmesg: ~/.wine/drive_c/Program Files (x86)/LogicPort$ FTDID=DC48 wine LogicPort.exe
the dll is here: /opt/wine-stable/lib/wine/i386-unix/ftd2xx.dll.so
there doesn't seem t any log indicating what usb port is begin opened, or what happened the UI and 'Demo' comes up fine.
Ahh. I think I see the problem...
When I plug my LogicPort into my x86_64 Debian 11 system the kernel log displays:
usb 1-11.1: new full-speed USB device number 31 using xhci_hcd
usb 1-11.1: New USB device found, idVendor=0403, idProduct=dc48, bcdDevice= 4.00
usb 1-11.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-11.1: Product: LogicPort Logic Analyzer
usb 1-11.1: Manufacturer: Intronix
usb 1-11.1: SerialNumber: 15629559
Note that the FTDI serial driver (ftdi_sio) DID NOT claim the device, as it did on your system. A device must not be claimed by any other kernel driver if it is to be used by libftdi
You can read about the problem, and how to solve it, here: https://unix.stackexchange.com/questions/305439/blacklisting-removing-driver-for-a-particular-vid-pid
Otherwise, your set up looks good. It should work once you pry the device free from other kernel drivers.
thanks again,
i could unbind it per your link echo "3-2:1.0" > /sys/bus/usb/drivers/ftdi_sio/unbind
but i still get the same 'No LogicPort Hardware' starting LogicPort
it seems your output indicates you dont have mod ftdi_sio
my 'lsmod' :
ftdi_sio 69632 0
usbserial 69632 2 ftdi_sio,ch341
i removed it with 'rmmod ftdi_sio' (it is my only ftdi device) now when i plug in the logicport, output is similar to yours
[2561343.515752] usb 3-2: new full-speed USB device number 34 using xhci_hcd
[2561343.685818] usb 3-2: New USB device found, idVendor=0403, idProduct=dc48, bcdDevice= 4.00
[2561343.685830] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[2561343.685834] usb 3-2: Product: LogicPort Logic Analyzer
[2561343.685837] usb 3-2: Manufacturer: Intronix
[2561343.685839] usb 3-2: SerialNumber: 22060462
but i still get the same 'No LogicPort Hardware' starting LogicPort
start:
~/.wine$ FTDID=DC48 wine 'C:\Program Files (x86)\LogicPort\LogicPort.exe'
when starting after 'wineserver -k' , the first log line output is :
007c:fixme:wineusb:query_id Unhandled ID query type 0x5.
(bug ref)
subsequent restarts do not show this.
it seems wine or software maybe doesn't see the ports or use the ftdi lib? (or software often loads libs in static blocks without error logging...)
am i supported to install VCP or D2XX drivers into wine from https://ftdichip.com/drivers/d2xx-drivers/ ?
lib info
$ file /opt/wine-stable/lib/wine/i386-unix/ftd2xx.dll.so
/opt/wine-stable/lib/wine/i386-unix/ftd2xx.dll.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=58c69536e1082f038d4f8293d7fc73373e15bc3f, not stripped
$ file ~/.wine/drive_c/Program\ Files\ \(x86\)/LogicPort/LogicPort.exe
/home/sje/.wine/drive_c/Program Files (x86)/LogicPort/LogicPort.exe: PE32 executable (GUI) Intel 80386, for MS Windows
I have just retested my LogicPort running on Debian 11 after building the shim following the instructions in the README. It works for me. But, it didn't work the first time :-)
I forgot that, on my x86_64 machine, I needed to build an i386 shim library to support the LogicPort 32-bit windows application. See the instructions at the end of the README for how to do that.
yes, i built with and installed with ARCH=i386 per the instructions i must be missing something in my understanding
$ make ARCH=i386 clean
WINELIBDIR=/opt/wine-stable/lib/wine/i386-unix
Linked with libftd2xx1.4.22/build/libftd2xx.a
rm -f *.o *xftd2xx.* *.so *.def libftd2xx1.4.22/build/libftd2xx.a
$ make ARCH=i386
WINELIBDIR=/opt/wine-stable/lib/wine/i386-unix
Linked with libftd2xx1.4.22/build/libftd2xx.a
sed "s/WINAPI FT_/xFT_/g" libftd2xx1.4.22/ftd2xx.h >xftd2xx.h
sed -i "/^#include <windows\.h>.*/a typedef const char \*LPCTSTR;" xftd2xx.h
winegcc -D_REENTRANT -D__WINESRC__ -c -Os -Wall -m32 \
-Ilibftd2xx1.4.22 -I/home/sje/.wine/wine-source/include -fno-omit-frame-pointer -o ftd2xx.o ftd2xx.c
In file included from ftd2xx.c:13:
/home/sje/.wine/wine-source/include/wine/debug.h:488:48: warning: ‘__wine_dbch___default’ defined but not used [-Wunused-const-variable=]
488 | static struct __wine_debug_channel * const __wine_dbch___default = &__wine_dbch_##ch
| ^~~~~~~~~~~~~~~~~~~~~
ftd2xx.c:14:1: note: in expansion of macro ‘WINE_DEFAULT_DEBUG_CHANNEL’
14 | WINE_DEFAULT_DEBUG_CHANNEL(ftd2xx);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
tar xzf libftd2xx-i386-1.4.22.tgz
rm -rf libftd2xx1.4.22
mv release libftd2xx1.4.22
objcopy --redefine-syms=xFTsyms.objcopy libftd2xx1.4.22/build/libftd2xx.a libxftd2xx.a
winegcc -Os -Wall -m32 -I/home/sje/.wine/wine-source/include -mwindows -lntdll -lkernel32 \
-o ftd2xx.dll ftd2xx.o libxftd2xx.a -shared ftd2xx.spec libxftd2xx.a -ldl -lrt -lpthread
chmod -x ftd2xx.dll.so
winebuild -m32 -w --def -o libftd2xx.def --export ftd2xx.spec
$ make ARCH=i386 install
WINELIBDIR=/opt/wine-stable/lib/wine/i386-unix
Linked with libftd2xx1.4.22/build/libftd2xx.a
sudo cp ftd2xx.dll.so /opt/wine-stable/lib/wine/i386-unix
I'm running Wine 9.0 on Kubuntu 22.04. After installing the 32-bit shim library, LogicPort still couldn't find its hardware. After much perusal of strace logs and experimentation, I found adding this symlink allows the program to run:
ln -s /opt/wine-stable/lib/wine/i386-unix/ftd2xx.dll.so ~/.wine/drive_c/windows/system/ftd2xx.dll
I suspect this is not the proper solution, but I'm not familiar enough with wine to offer something better.
I have verified that valid samples are being captured by LogicPort, so it seems to be working.