-
Notifications
You must be signed in to change notification settings - Fork 142
Description
Hello,
After upgrading from pylink-square==1.4.0 to 1.5.0, calling JLink.open(serial_no=...) over USB consistently fails with pylink.errors.JLinkException: No emulator with serial number … found, even though the J-Link is visible via lsusb and works with JLinkExe. Downgrading back to 1.4.0 restores expected behavior. Nothing else (Docker run, udev rules, permissions) changed between images beyond the pylink version bump.
Environment
• OS: Ubuntu 22.04 (inside Docker)
• Python: 3.10
• pylink-square:
• 1.4.0 → works
• 1.5.0 → fails (regression)
• J-Link SDK: V8.74 (installed under /opt/SEGGER/JLink_V874/libjlinkarm.so.8)
• Hardware (examples from lsusb):
1366:0101 SEGGER J-Link PLUS
1366:1061 SEGGER J-Link
• Example device S/Ns observed: 821008920, 821008926
• JLinkExe output (works):
SEGGER J-Link Commander V8.74 Connecting to J-Link via USB...O.K. S/N: 821008926 ... Device "EFM32GG11B820F2048" selected. Connecting to target via SWD ... OK
- Install SEGGER J-Link V8.74 (Linux), so the library is at /opt/SEGGER/JLink_V874/libjlinkarm.so.8.
- pip install pylink-square==1.5.0
- Run:
import pylink j = pylink.JLink() j.open(serial_no=821008920) # any connected J-Link serial
-
Observe failure (exception below).
pylink.errors.JLinkException: No emulator with serial number 821008920 found.
- Downgrade to pylink-square==1.4.0 and re-run the same snippet → succeeds.
Notes / Possibly Relevant Change
This regression coincides with the 1.5.0 @bbrown1867 change that dynamically decides whether to load a temporary copy of the J-Link DLL (use_tmpcpy) based on a parsed DLL version. I didn’t modify that setting explicitly; I only observe that 1.5.0 fails and 1.4.0 works under the same environment.
Happy to provide any extra diagnostics you’d like.