• Javascript restriction in Trixie

    From bp@3:633/10 to All on Mon Dec 8 10:00:01 2025
    I just set up another Trixie install for a Pi2Bv1.1, so armv7, for
    use with an Owon vds1022 USB oscilloscope. I have an older install
    (bookworm) on a separate microSD card which works correctly, but the
    card is too small (8GB) to allow useful working space. The new install
    is less than a year newer than the working one.

    The new install allows installation of Florentbr's software found at
    GitHub but when the software is run it gets stuck in a loop and can't
    connect to the 'scope:

    bob@raspberrypi:~/OWON-VDS1022-1.1.5-cf19 $ sudo owon-vds-tiny
    env: Linux, Java 25.0.1 arm
    app dir: /opt/owon-vds-tiny
    user dir: /root/.owon-vds-tiny
    locale: en_US, en_US, true
    WARNING: A restricted method in java.lang.System has been called
    WARNING: java.lang.System::load has been called by ch.ntb.usb.LibusbJava in an unnamed module (file:/opt/owon-vds-tiny/lib/ch.ntb.usb-0.5.9.jar)
    WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
    WARNING: Restricted methods will be blocked in a future release unless native access is enabled

    ch.ntb.usb.USBException: LibusbJava.usb_claim_interface: Device or resource busy
    at com.owon.uppersoft.vds.core.usb.CDevice.open(CDevice.java:91)
    at com.owon.uppersoft.vds.core.usb.CDevice.getDevices(CDevice.java:300)
    at com.owon.uppersoft.dso.source.usb.USBSourceManager.refreshUSBPort(USBSourceManager.java:79)
    at com.owon.uppersoft.dso.source.comm.detect.USBLoopChecker.checkUSBDevice(USBLoopChecker.java:74)
    at com.owon.uppersoft.dso.source.comm.USBDaemonHelper.onNotConnecting(USBDaemonHelper.java:35)
    at com.owon.uppersoft.vds.machine.InfiniteDaemonTiny0.onNotConnecting(InfiniteDaemonTiny0.java:37)
    at com.owon.uppersoft.dso.source.comm.Flow.run(Flow.java:79)
    at com.owon.uppersoft.dso.global.ControlAppsTiny$1.run(ControlAppsTiny.java:38)

    that never seems to stop.

    The warning prompted me to try running under sudo, but that made no difference.

    On closer inspection, it's not clear the warning has any relevance to the "device or resource busy" message. Busy isn't the same as restricted.

    If anybody's got a suggestion please post!

    Thanks for reading,

    bob prohaska


    --- PyGate Linux v1.5.1
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Theo@3:633/10 to All on Mon Dec 8 03:05:02 2025
    bp@www.zefox.net wrote:
    I just set up another Trixie install for a Pi2Bv1.1, so armv7, for
    use with an Owon vds1022 USB oscilloscope. I have an older install
    (bookworm) on a separate microSD card which works correctly, but the
    card is too small (8GB) to allow useful working space. The new install
    is less than a year newer than the working one.

    The new install allows installation of Florentbr's software found at
    GitHub but when the software is run it gets stuck in a loop and can't
    connect to the 'scope:

    bob@raspberrypi:~/OWON-VDS1022-1.1.5-cf19 $ sudo owon-vds-tiny
    env: Linux, Java 25.0.1 arm

    That's Java, not Javascript.

    app dir: /opt/owon-vds-tiny
    user dir: /root/.owon-vds-tiny
    locale: en_US, en_US, true
    WARNING: A restricted method in java.lang.System has been called
    WARNING: java.lang.System::load has been called by ch.ntb.usb.LibusbJava in an unnamed module (file:/opt/owon-vds-tiny/lib/ch.ntb.usb-0.5.9.jar)
    WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
    WARNING: Restricted methods will be blocked in a future release unless native access is enabled

    ch.ntb.usb.USBException: LibusbJava.usb_claim_interface: Device or resource busy
    at com.owon.uppersoft.vds.core.usb.CDevice.open(CDevice.java:91)
    at com.owon.uppersoft.vds.core.usb.CDevice.getDevices(CDevice.java:300)
    at com.owon.uppersoft.dso.source.usb.USBSourceManager.refreshUSBPort(USBSourceManager.java:79)
    at com.owon.uppersoft.dso.source.comm.detect.USBLoopChecker.checkUSBDevice(USBLoopChecker.java:74)
    at com.owon.uppersoft.dso.source.comm.USBDaemonHelper.onNotConnecting(USBDaemonHelper.java:35)
    at com.owon.uppersoft.vds.machine.InfiniteDaemonTiny0.onNotConnecting(InfiniteDaemonTiny0.java:37)
    at com.owon.uppersoft.dso.source.comm.Flow.run(Flow.java:79)
    at com.owon.uppersoft.dso.global.ControlAppsTiny$1.run(ControlAppsTiny.java:38)

    that never seems to stop.

    The warning prompted me to try running under sudo, but that made no difference.

    On closer inspection, it's not clear the warning has any relevance to the "device or resource busy" message. Busy isn't the same as restricted.

    If anybody's got a suggestion please post!

    From various searching it seems this error is to do with something else
    already having grabbed the port. Could be an old run of the app that hasn't properly stopped, a desktop app (eg GNOME's Nautilus file manager likes to
    grab MTP devices, which prevents digiKam downloading photos) or a system service (eg if appears as a HID device, maybe the system USB keyboard driver grabs it, or a storage device that got automounted).

    Depending on what kind of device it appears as (serial, keyboard, mass
    storage, network, ...) see if you can work out what other app might have grabbed it. ('sudo lsof' is handy here, if it appears as a device node that you can grep for)

    Theo

    --- PyGate Linux v1.5.1
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Daniel James@3:633/10 to All on Mon Dec 8 12:23:27 2025
    On 07/12/2025 18:55, bp@www.zefox.net wrote:
    WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module

    Have you done that?

    I'm not saying it *will* help (it's been a while since I did anything
    with Java) but it *might*.

    https://docs.oracle.com/en/java/javase/25/core/restricted-methods.html

    --
    Cheers,
    Daniel.

    --- PyGate Linux v1.5.1
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From bp@3:633/10 to All on Tue Dec 9 10:00:01 2025
    Daniel James <daniel@me.invalid> wrote:
    On 07/12/2025 18:55, bp@www.zefox.net wrote:
    WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module

    Have you done that?

    After a fashion, yes. I tried appending
    --enable-native-access=ALL-UNNAMED
    on the command line, but it made no difference.

    Clearly, the restriction is new(ish) and there's no obvious reason to
    think that's the right place put the option. The references I found on-line
    to this change date from 2025, the application was last updated in 2022 IIRC.

    Thanks for writing!

    bob prohaska



    --- PyGate Linux v1.5.1
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Daniel James@3:633/10 to All on Mon Dec 8 17:47:50 2025
    On 08/12/2025 13:13, Andy Burns wrote:

    Have you done that?
    It only says it's a warning, not an error.

    True, but if you $(SEARCH_ENGINE_OF_CHOICE) for it you will find that
    there is a suggestion that some things may not work in the situations
    that trigger the warning.

    It's surprising how often clutching at straws yields results!

    --
    Cheers,
    Daniel.

    --- PyGate Linux v1.5.1
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Theo@3:633/10 to All on Tue Dec 9 10:46:38 2025
    bp@www.zefox.net wrote:
    [apologies for the wide lines]

    Theo <theom+news@chiark.greenend.org.uk> wrote:

    Depending on what kind of device it appears as (serial, keyboard, mass storage, network, ...) see if you can work out what other app might have grabbed it. ('sudo lsof' is handy here, if it appears as a device node that
    you can grep for)

    Sudo lsof is loquatious, but not obviously informative. These tests were
    on a Pi5 running up-to-date Bookworm, but the behavior is outwardly the
    same as Trixie on Pi2.

    What I'm looking for is something having grabbed the USB device. This is
    hard to specify without knowing how the OWON does its USB, but for example
    if it was serial I'd 'lsof | grep /dev/tty' and look for things using the /dev/ttyUSB0 or /devttyACM0 device the OWON probably uses.

    Since the OWON app has failed to grab the USB you're looking for other apps that have grabbed it, ie not at the OWON app.

    Theo

    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Theo@3:633/10 to All on Tue Dec 9 11:21:24 2025
    Theo <theom+news@chiark.greenend.org.uk> wrote:
    bp@www.zefox.net wrote:
    [apologies for the wide lines]

    Theo <theom+news@chiark.greenend.org.uk> wrote:

    Depending on what kind of device it appears as (serial, keyboard, mass storage, network, ...) see if you can work out what other app might have grabbed it. ('sudo lsof' is handy here, if it appears as a device node that
    you can grep for)

    Sudo lsof is loquatious, but not obviously informative. These tests were
    on a Pi5 running up-to-date Bookworm, but the behavior is outwardly the same as Trixie on Pi2.

    What I'm looking for is something having grabbed the USB device. This is
    hard to specify without knowing how the OWON does its USB, but for example
    if it was serial I'd 'lsof | grep /dev/tty' and look for things using the /dev/ttyUSB0 or /devttyACM0 device the OWON probably uses.

    Since the OWON app has failed to grab the USB you're looking for other apps that have grabbed it, ie not at the OWON app.

    Another debugging trick is to run your app under strace:

    strace -ft -o strace.log <whatever command>

    That outputs a huge logfile which takes a bit of picking through. What
    you're looking for is when it tries to access the USB nodes and fails.
    Maybe that gives some clues as to where the error is coming from.

    eg
    strace -ft -o strace.log picocom /dev/ttyUSB0

    has a lot of stuff but it says:

    15875 11:16:22 openat(AT_FDCWD, "/dev/ttyUSB0", O_RDWR|O_NOCTTY|O_NONBLOCK)
    = -1 ENOENT (No such file or directory)
    15875 11:16:22 write(2, "\r\nFATAL: ", 9) = 9
    15875 11:16:22 write(2, "cannot open /dev/ttyUSB0: No suc"..., 51) = 51
    15875 11:16:22 write(2, "\r\n", 2) = 2
    15875 11:16:22 exit_group(1) = ?
    15875 11:16:22 +++ exited with 1 +++

    which tells me it couldn't open the /dev/ttyUSB0 device because it doesn't exist, and then puts a FATAL message on the console. This error is correct because I have no USB serial devices plugged into this machine.

    Theo

    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From The Natural Philosopher@3:633/10 to All on Tue Dec 9 10:59:37 2025
    On 09/12/2025 10:46, Theo wrote:
    bp@www.zefox.net wrote:
    [apologies for the wide lines]

    Theo <theom+news@chiark.greenend.org.uk> wrote:

    Depending on what kind of device it appears as (serial, keyboard, mass
    storage, network, ...) see if you can work out what other app might have >>> grabbed it. ('sudo lsof' is handy here, if it appears as a device node that
    you can grep for)

    Sudo lsof is loquatious, but not obviously informative. These tests were
    on a Pi5 running up-to-date Bookworm, but the behavior is outwardly the
    same as Trixie on Pi2.

    What I'm looking for is something having grabbed the USB device. This is
    hard to specify without knowing how the OWON does its USB, but for example
    if it was serial I'd 'lsof | grep /dev/tty' and look for things using the /dev/ttyUSB0 or /devttyACM0 device the OWON probably uses.

    Since the OWON app has failed to grab the USB you're looking for other apps that have grabbed it, ie not at the OWON app.

    Theo
    OOI I discovered a weird thing
    IF I have a raspberry PI PICO plugged into my desktop as a power supply
    and running code , then my PC does not detect when the samsung mobile
    phone is plugged in...unless I unplug the PI first...

    My friend also reports weird shit with his (PI's) USB. I think it's not
    as rock solid as we sometimes assume.




    --
    There is something fascinating about science. One gets such wholesale
    returns of conjecture out of such a trifling investment of fact.

    Mark Twain


    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From bp@3:633/10 to All on Wed Dec 10 10:00:02 2025
    Theo <theom+news@chiark.greenend.org.uk> wrote:
    bp@www.zefox.net wrote:
    [apologies for the wide lines]

    Theo <theom+news@chiark.greenend.org.uk> wrote:

    Depending on what kind of device it appears as (serial, keyboard, mass
    storage, network, ...) see if you can work out what other app might have >> > grabbed it. ('sudo lsof' is handy here, if it appears as a device node that
    you can grep for)

    Sudo lsof is loquatious, but not obviously informative. These tests were
    on a Pi5 running up-to-date Bookworm, but the behavior is outwardly the
    same as Trixie on Pi2.

    What I'm looking for is something having grabbed the USB device. This is
    hard to specify without knowing how the OWON does its USB, but for example
    if it was serial I'd 'lsof | grep /dev/tty' and look for things using the /dev/ttyUSB0 or /devttyACM0 device the OWON probably uses.

    Since the OWON app has failed to grab the USB you're looking for other apps that have grabbed it, ie not at the OWON app.

    A chance dmesg output reported that owon was associated with tty1. The obvious
    candidate for conflict was gtkterm, which occupied tty0. Alas, killing gtkterm and removing the ft232 usb-serial adapter didn't fix/change anything.

    As an aside, I also tried connecting with the Owon tty using gtkterm.
    Can't get a rise out of it by tinkering with the speed or sending break.
    That probably isn't relevant, but it did surprise me a little. I thought
    at least some garbage would appear if I sent a carriage return.

    Thanks for reading,

    bob prohaska



    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Theo@3:633/10 to All on Tue Dec 9 11:12:28 2025
    Daniel James <daniel@me.invalid> wrote:
    On 08/12/2025 13:13, Andy Burns wrote:

    Have you done that?
    It only says it's a warning, not an error.

    When something gives a warning that says 'this thing probably won't work',
    it pays to pay heed, even if it doesn't immediately fail stop.

    True, but if you $(SEARCH_ENGINE_OF_CHOICE) for it you will find that
    there is a suggestion that some things may not work in the situations
    that trigger the warning.

    It's surprising how often clutching at straws yields results!

    Indeed!

    On the subject of trying random things, the one Java+USB weirdness I know
    about (using the Altera JTAG stack, which is mostly C++ but some higher
    level tools are in Java) is fixed via installing the libudev0 package.

    Seemingly the JTAG tools try to use the bindings for libudev but an old
    version and then try something less reliable if they aren't found. I've
    found that symlinking /usr/lix/x86_64-linux-gnu/libudev.so.1 to libudev.so.0 fixes that - only just discovered there's a 'libudev0' package that does it properly.

    I doubt this is the OP's problem though.

    Theo

    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From bp@3:633/10 to All on Sun Dec 14 17:30:01 2025
    bp@www.zefox.net wrote:
    bp@www.zefox.net wrote:
    Daniel James <daniel@me.invalid> wrote:
    On 07/12/2025 18:55, bp@www.zefox.net wrote:
    WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module

    Have you done that?

    After a fashion, yes. I tried appending
    --enable-native-access=ALL-UNNAMED
    on the command line, but it made no difference.

    Clearly, the restriction is new(ish) and there's no obvious reason to
    think that's the right place put the option. The references I found on-line >> to this change date from 2025, the application was last updated in 2022 IIRC.

    Thanks for writing!

    bob prohaska

    It turns out there's a problem report that resembles mine at https://github.com/florentbr/OWON-VDS1022/issues/76
    but it doesn't offer an explicit resolution.

    At this point I have Trixie and Bookworm installs that don't connect
    and a somewhat older Bookworm install that worked out of the box. So
    far, the one that works is on a 33 bit Pi2.

    I made a copy of the working microSD, booted that and verified it could communicate with the 'scope. Then I invited the system to upgrade and
    it made about 350 changes to packages. After that, the 'scope couldn't
    be connected to.

    So, clearly, an incompatibility has been introduced by the upgrade.

    Is there some way to selectively update and revert when trouble strikes?
    It isn't something I _have_ to fix, but it might be useful to know now.

    Thanks for reading,

    bob prohaska


    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)