All devices are shown as unsupported

Having problems ? let us know the details here
Post Reply
wirew0rm
Newbie
Posts: 1
Joined: Sat Oct 10, 2020 3:32 pm

All devices are shown as unsupported

Post by wirew0rm »

Hello,

I'm using picoscope 7 on NixOS Linux to connect to our various Picoscopes. In this case a 4000a model, but I've also tested with 3000 and 5000 models. This used to work without problems but since some update all scopes are shown as unsupported and I can only select the Demo device.

I'm aware that I cannot expect the same level of support being on a not oficially supported distribution, but if anyone at Picotech or the community has any Ideas how to get to the root of this problem it would help me a lot. I've already done quite some research on my own, but without knowing the internals of the picoscope application it's a bit difficult. I've attached screenshots of the problem and my findings so far below.

I've verified using strace, that the correct driver (`libps4000a.so`) is actually found and loaded. There is very little information as to why the device is unsupported, no errors on the console or anything else. Using the device from c++ code by linking libps4000a.so works as expected.

The device as shown by lsusb:

Code: Select all

Bus 002 Device 008: ID 0ce9:1202 Pico Technology PicoScope 4000 series PC Oscilloscope
installed package versions:

Code: Select all

"libpicocv": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libpicocv/libpicocv_1.1.34-beta2r172_amd64.deb",
      "version": "1.1.34-beta2r172"
    },
    "libpicohrdl": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libpicohrdl/libpicohrdl_2.0.125-1r5401_amd64.deb",
      "version": "2.0.125-1r5401"
    },
    "libpicoipp": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libpicoipp/libpicoipp_1.4.0-4r161_amd64.deb",
      "version": "1.4.0-4r161"
    },
    "libpl1000": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libpl1000/libpl1000_2.0.125-1r5401_amd64.deb",
      "version": "2.0.125-1r5401"
    },
    "libplcm3": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libplcm3/libplcm3_2.0.125-1r5401_amd64.deb",
      "version": "2.0.125-1r5401"
    },
    "libps2000": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000/libps2000_3.0.125-3r5401_amd64.deb",
      "version": "3.0.125-3r5401"
    },
    "libps2000a": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000a/libps2000a_2.1.125-5r5401_amd64.deb",
      "version": "2.1.125-5r5401"
    },
    "libps3000": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000/libps3000_4.0.125-3r5401_amd64.deb",
      "version": "4.0.125-3r5401"
    },
    "libps3000a": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000a/libps3000a_2.1.125-6r5406_amd64.deb",
      "version": "2.1.125-6r5406"
    },
    "libps4000": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000/libps4000_2.1.125-2r5401_amd64.deb",
      "version": "2.1.125-2r5401"
    },
    "libps4000a": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000a/libps4000a_2.1.125-2r5401_amd64.deb",
      "version": "2.1.125-2r5401"
    },
    "libps5000": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000/libps5000_2.1.125-3r5401_amd64.deb",
      "version": "2.1.125-3r5401"
    },
    "libps5000a": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000a/libps5000a_2.1.125-5r5401_amd64.deb",
      "version": "2.1.125-5r5401"
    },
    "libps6000": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000/libps6000_2.1.125-6r5401_amd64.deb",
      "version": "2.1.125-6r5401"
    },
    "libps6000a": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000a/libps6000a_1.0.125-0r5401_amd64.deb",
      "version": "1.0.125-0r5401"
    },
    "libseafire": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libs/libseafire/libseafire_1.0.81-0r3269_amd64.deb",
      "version": "1.0.81-0r3269"
    },
    "libusbdrdaq": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libu/libusbdrdaq/libusbdrdaq_2.0.125-1r5401_amd64.deb",
      "version": "2.0.125-1r5401"
    },
    "libusbpt104": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libu/libusbpt104/libusbpt104_2.0.125-1r5401_amd64.deb",
      "version": "2.0.125-1r5401"
    },
    "libusbtc08": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libu/libusbtc08/libusbtc08_2.0.125-1r5401_amd64.deb",
      "version": "2.0.125-1r5401"
    },
    "picoscope": {
      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/p/picoscope/picoscope_7.1.15-1r17086_amd64.deb",
      "version": "7.1.15-1r17086"
    }
Verifying with strace that the dynamic library gets found.

Code: Select all

$ strace -f -o strace_pico picoscope

$ grep -e "libps4000a-.*libps4000a.so" -A 10 -B 3 strace_pico
74004 openat(AT_FDCWD, "/nix/store/93lhjr4jwiszm635hr78zk8i461xbp27-liblibps3000-4.0.125-3r5401/lib/libps4000a.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
74004 openat(AT_FDCWD, "/nix/store/ps74fqzsybhnx5arhkxda5v2ashg94n0-liblibps3000a-2.1.125-6r5406/lib/libps4000a.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
74004 openat(AT_FDCWD, "/nix/store/49rc4kkdh3kxxljrpy21f48r213hiixw-liblibps4000-2.1.125-2r5401/lib/libps4000a.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
74004 openat(AT_FDCWD, "/nix/store/7wb0av5nll8yvaxiamgpd43i7pcvxsh0-liblibps4000a-2.1.125-2r5401/lib/libps4000a.so", O_RDONLY|O_CLOEXEC) = 16
74004 read(16, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\232\3\0\0\0\0\0"..., 832) = 832
74004 newfstatat(16, "", {st_mode=S_IFREG|0444, st_size=9397032, ...}, AT_EMPTY_PATH) = 0
74004 mmap(NULL, 9400160, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 16, 0) = 0x7efe4b600000
74004 mprotect(0x7efe4b638000, 9093120, PROT_NONE) = 0
74004 mmap(0x7efe4b638000, 2519040, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 16, 0x38000) = 0x7efe4b638000
74004 mmap(0x7efe4b89f000, 6569984, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 16, 0x29f000) = 0x7efe4b89f000
74004 mmap(0x7efe4bee4000, 77824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 16, 0x8e3000) = 0x7efe4bee4000
73972 <... poll resumed>)               = 1 ([{fd=15, revents=POLLIN}])
73972 futex(0x88e108, FUTEX_WAKE_PRIVATE, 1) = 1
73973 <... futex resumed>)              = 0

grep -e "libpicocv.*libpicocv.so" -A 10 -B 3 strace_pico
73954 openat(AT_FDCWD, "/nix/store/rrarp3qx2rk4asn8vv7bsbrf7vgw3nmn-libusb-1.0.26/lib/libpicocv.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
73954 openat(AT_FDCWD, "/nix/store/s5gzrzha72q79v92wqq61x9ir8xiwbxk-zlib-1.3/lib/libpicocv.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
73954 openat(AT_FDCWD, "/nix/store/4ckysk2r5i03qvpfi7mbcnm2mmwqzlbf-libpicoipp-1.4.0-4r161/lib/libpicocv.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
73954 openat(AT_FDCWD, "/nix/store/m5cfpg4rlrn970v2lxc1gmn61shbcafx-liblibpicocv-1.1.34-beta2r172/lib/libpicocv.so", O_RDONLY|O_CLOEXEC) = 15
73954 read(15, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 }\5\0\0\0\0\0"..., 832) = 832
73954 newfstatat(15, "", {st_mode=S_IFREG|0444, st_size=12411496, ...}, AT_EMPTY_PATH) = 0
73954 mmap(NULL, 13080040, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 15, 0) = 0x7efe62e00000
73954 mmap(0x7efe62e57000, 8814592, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 15, 0x57000) = 0x7efe62e57000
73954 mmap(0x7efe636bf000, 2953216, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 15, 0x8bf000) = 0x7efe636bf000
73954 mmap(0x7efe63990000, 290816, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 15, 0xb8f000) = 0x7efe63990000
73954 mmap(0x7efe639d7000, 665064, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7efe639d7000
73954 mprotect(0x7efea410b000, 1988, PROT_READ|PROT_WRITE) = 0
73954 mprotect(0x7efea410b000, 1988, PROT_READ) = 0
73954 mprotect(0x7fff8fe29000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC|PROT_GROWSDOWN) = 0
Any idea as to how I could further analyze the problem, enable further logging or maybe some information as to what could cause a detected device to be shown as unsupported?

PS: In general it would be helpful for packaging and reproduction of earlier behavior if the repository would keep older versions of the software available and not only the latest versions. I'm pretty sure that it worked previously, but there might also be some other change on the system...
Attachments
Screenshot from 2023-10-29 19-13-01.png
Screenshot from 2023-10-29 19-12-03.png

Post Reply