2025-06-25 1:39 AM
Hi.
Trying to connect a STM32G0 USB PD discovery kit using the linux
software package. Device is detected find, just opening the serial
port gives reasonable output (binary data which look like PD
messages). However the Java app doesn't work.
On linux machine 1, it crashes with a segmentation fault in libX11
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f3c022e0661, pid=2060337, tid=0x00007f3bbd1bb6c0
#
# JRE version: OpenJDK Runtime Environment (8.0_412-b09) (build 1.8.0_412-b09)
# Java VM: OpenJDK 64-Bit Server VM (25.412-b09 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libX11.so.6+0x18661] XInternAtom+0x41
#
# Core dump written. Default location: /tmp/core or core.2060337
#
# An error report file with more information is saved as:
# /tmp/hs_err_pid2060337.log
#
# If you would like to submit a bug report, please visit:
# https://bell-sw.com/support
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
On linux machine 2, the software fails to detect the discovery board. Not knowing anything about this software, it seems like it's trying to find the correct device, but it looks in the wrong place in /sys.
# openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.2/tty/ttyACM0/device/../product", O_RDONLY) = 46
# openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.2/tty/ttyACM0/../interface", O_RDONLY) = -1 ENOENT (No such file or directory)
# openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.2/tty/ttyACM0/device/../interface", O_RDONLY) = -1 ENOENT (No such file or directory)
# stat("/dev/ttyACM0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0xa6, 0), ...}) = 0
# stat("/dev/ttyACM0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0xa6, 0), ...}) = 0
# openat(AT_FDCWD, "/dev/ttyACM0", O_RDWR|O_NOCTTY|O_NONBLOCK) = 42
# openat(AT_FDCWD, "/dev/ttyACM0", O_RDWR|O_NOCTTY|O_NONBLOCK) = 42
# stat("/dev/ttyACM0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0xa6, 0), ...}) = 0
# stat("/dev/ttyACM0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0xa6, 0), ...}) = 0
# openat(AT_FDCWD, "/dev/ttyACM0", O_RDWR|O_NOCTTY|O_NONBLOCK) = 42
# stat("/dev/ttyACM0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0xa6, 0), ...}) = 0
# stat("/dev/ttyACM0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0xa6, 0), ...}) = 0
# openat(AT_FDCWD, "/dev/ttyACM0", O_RDWR|O_NOCTTY|O_NONBLOCK) = 42
# openat(AT_FDCWD, "/dev/ttyACM0", O_RDWR|O_NOCTTY|O_NONBLOCK) = 42
# stat("/dev/ttyACM0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0xa6, 0), ...}) = 0
# stat("/dev/ttyACM0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0xa6, 0), ...}) = 0
# openat(AT_FDCWD, "/dev/ttyACM0", O_RDWR|O_NOCTTY|O_NONBLOCK) = 42
2025-07-04 4:25 AM
Hi @jd1234
Could you specify which Linux version are you using ? Could you provide more details about your environment setup to escalate this issue?
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2025-07-22 7:21 AM
Sorry for late response.
The first machine is running Fedora 41, and I guess the problem spells
Wayland.
I did manage to get the app to detect the device on the second machine
(running good old X11) -- not sure if I did anything differently.
I'm happy with this right now. Thanks for your time.