SteamVR-for-Linux icon indicating copy to clipboard operation
SteamVR-for-Linux copied to clipboard

Unable to update base station firmware with 2.x SteamVR (lastest tried is 2.1.8)

Open twhitehead opened this issue 7 months ago • 5 comments

Your system information

  • Steam client version (build number or date):

Steam Version: 1701289036 Steam Client Build Date: Wed, Nov 29 2:59 PM UTC -08:00 Steam Web Build Date: Wed, Nov 29 2:03 PM UTC -08:00 Steam API Version: SteamClient021

  • Distribution (e.g. Ubuntu): NixOS 23.05
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs: steam-logs.tar.gz
  • GPU: AMD Radeon RX 6600 XT

Please describe your issue in as much detail as possible:

If I try and update my base stations through the update pop up or the devices → base stations menu, the Updating Base Station window shows up briefly and then it and all other SteamVR windows vanish. Restarting says it was interrupted, and picking recovery just results in the same thing happening again.

The log files don't show much, but in the terminal where I started steam, it says

...
Thu Nov 30 2023 17:18:04.853186 [Info] - [NRF (HMD)] [Scan] Stop Scanning. All scan completion candidates found.
Thu Nov 30 2023 17:18:04.871785 [Info] - [NRF (HMD)] [Scan] Scan Stopped. Scan state cleanup.
Thu Nov 30 2023 17:18:04.872914 [Info] - [NRF (HMD)] [Scan] <= Exiting Context: (0.04 seconds)
Thu Nov 30 2023 17:18:04.873017 [Info] - [NRF (HMD)] BLE Serialization Shutdown.
Thu Nov 30 2023 17:18:04.907893 [Info] - [NRF (HMD)] SD RPC Info: serial port /dev/ttyACM0 closed.
Thu Nov 30 2023 17:18:04.907966 [Info] - [Bluetooth Controller] [BS_Scan] Setting Radio Mode: Valve
free(): invalid pointer

This free(): invalid pointer line does not seem to be logged anywhere else. Running coredumpctl shows that vrmonitor dumps core due to SIGABRT, so I attached a debugger and got a backtrace for you

(lldb) bt
* thread ValveSoftware/steam-for-linux#14, name = 'BaseStationWork', stop reason = signal SIGABRT
  * frame #0: 0x00007f79d90a1adc libc.so.6`__pthread_kill_implementation(threadid=<unavailable>, signo=6, no_tid=<unavailable>) at pthread_kill.c:44:76
    frame ValveSoftware/steam-for-linux#1: 0x00007f79d9052cb6 libc.so.6`__GI_raise(sig=6) at raise.c:26:13
    frame ValveSoftware/steam-for-linux#2: 0x00007f79d903c8ba libc.so.6`__GI_abort at abort.c:79:7
    frame ValveSoftware/steam-for-linux#3: 0x00007f79d903d5f5 libc.so.6`__libc_message.cold at libc_fatal.c:150:3
    frame ValveSoftware/steam-for-linux#4: 0x00007f79d90ab785 libc.so.6`malloc_printerr(str="") at malloc.c:5651:3
    frame ValveSoftware/steam-for-linux#5: 0x00007f79d90ad524 libc.so.6`_int_free(av=<unavailable>, p=<unavailable>, have_lock=0) at malloc.c:4425:5
    frame ValveSoftware/steam-for-linux#6: 0x00007f79d90afe83 libc.so.6`__GI___libc_free(mem=<unavailable>) at malloc.c:3367:7
    frame ValveSoftware/steam-for-linux#7: 0x0000556ada5ebaa8 vrmonitor`std::vector<basestation_scan_t, std::allocator<basestation_scan_t>>::~vector() + 248
    frame ValveSoftware/steam-for-linux#8: 0x0000556ada5ea4e0 vrmonitor`CQBaseStationControllerWorker::OnWorker_BaseStationFirmwareUpdate(unsigned long long, QString const&, unsigned int, EBaseStationComponent_t, QString const&) + 2048
    frame ValveSoftware/steam-for-linux#9: 0x0000556ada5a19a2 vrmonitor`CQBaseStationControllerWorker::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) + 450
    frame ValveSoftware/steam-for-linux#10: 0x00007f79d94c0402 libQt5Core.so.5`QObject::event(QEvent*) + 210
    frame ValveSoftware/steam-for-linux#11: 0x00007f79d7f554dc libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 140
    frame ValveSoftware/steam-for-linux#12: 0x00007f79d7f5a640 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 896
    frame ValveSoftware/steam-for-linux#13: 0x00007f79d94916a3 libQt5Core.so.5`QCoreApplication::notifyInternal(QObject*, QEvent*) + 195
    frame ValveSoftware/steam-for-linux#14: 0x00007f79d9493913 libQt5Core.so.5`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 483
    frame ValveSoftware/steam-for-linux#15: 0x00007f79d94e66f3 libQt5Core.so.5`___lldb_unnamed_symbol8395 + 19
    frame ValveSoftware/steam-for-linux#16: 0x00007f79d6d22e6b libglib-2.0.so.0.6600.8`g_main_context_dispatch + 603
    frame ValveSoftware/steam-for-linux#17: 0x00007f79d6d23118 libglib-2.0.so.0.6600.8`___lldb_unnamed_symbol2378 + 488
    frame ValveSoftware/steam-for-linux#18: 0x00007f79d6d231cf libglib-2.0.so.0.6600.8`g_main_context_iteration + 47
    frame ValveSoftware/steam-for-linux#19: 0x00007f79d94e6ae7 libQt5Core.so.5`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 87
    frame ValveSoftware/steam-for-linux#20: 0x00007f79d948f252 libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 306
    frame ValveSoftware/steam-for-linux#21: 0x00007f79d929e96c libQt5Core.so.5`QThread::exec() + 140
    frame ValveSoftware/steam-for-linux#22: 0x00007f79d92a37df libQt5Core.so.5`___lldb_unnamed_symbol6294 + 303
    frame ValveSoftware/Source-1-Games#2674: 0x00007f79d909fe24 libc.so.6`start_thread(arg=<unavailable>) at pthread_create.c:444:8
    frame ValveSoftware/steam-for-linux#24: 0x00007f79d91219b0 libc.so.6`__clone3 at clone3.S:81

which appears to agree well with the free(): invalid pointer message.

Here is the status of the other threads for good measure too

(lldb) thread list
Process 683191 stopped
  thread ValveSoftware/steam-for-linux#1: tid = 683191, 0x00007f79d911477f libc.so.6`__GI___poll(fds=0x0000556adb62a6a0, nfds=4, timeout=20) at poll.c:29:10, name = 'vrmonitor'
  thread ValveSoftware/steam-for-linux#2: tid = 683219, 0x00007f79d911477f libc.so.6`__GI___poll(fds=0x00007f79d07febc8, nfds=1, timeout=-1) at poll.c:29:10, name = 'QXcbEventReader'
  thread ValveSoftware/steam-for-linux#3: tid = 683234, 0x00007f79d911477f libc.so.6`__GI___poll(fds=0x00007f79c00038e0, nfds=1, timeout=-1) at poll.c:29:10, name = 'Qt bearer threa'
  thread ValveSoftware/steam-for-linux#5: tid = 683237, 0x00007f79d911477f libc.so.6`__GI___poll(fds=0x00007f79bc003ae0, nfds=1, timeout=-1) at poll.c:29:10, name = 'AudioWorker'
  thread ValveSoftware/steam-for-linux#6: tid = 683243, 0x00007f79d909ca36 libc.so.6`__futex_abstimed_wait_common at futex-internal.c:57:12, name = 'vrmonitor:cs0'
  thread ValveSoftware/steam-for-linux#7: tid = 683244, 0x00007f79d909ca36 libc.so.6`__futex_abstimed_wait_common at futex-internal.c:57:12, name = 'vrmonit:disk$0'
  thread ValveSoftware/steam-for-linux#8: tid = 683245, 0x00007f79d909ca36 libc.so.6`__futex_abstimed_wait_common at futex-internal.c:57:12, name = 'vrmonitor:sh0'
  thread ValveSoftware/steam-for-linux#9: tid = 683246, 0x00007f79d909ca36 libc.so.6`__futex_abstimed_wait_common at futex-internal.c:57:12, name = 'vrmonito:shlo0'
  thread ValveSoftware/steam-for-linux#10: tid = 683254, 0x00007f79d909ca36 libc.so.6`__futex_abstimed_wait_common at futex-internal.c:57:12, name = 'vrmonito:gdrv0'
  thread ValveSoftware/steam-for-linux#11: tid = 683255, 0x00007f79d909ca36 libc.so.6`__futex_abstimed_wait_common at futex-internal.c:57:12, name = 'vrmonito:gdrv0'
  thread ValveSoftware/steam-for-linux#12: tid = 683314, 0x00007f79d909ca36 libc.so.6`__futex_abstimed_wait_common at futex-internal.c:57:12, name = 'vrmonito:gdrv0'
  thread ValveSoftware/steam-for-linux#13: tid = 683315, 0x00007f79d909ca36 libc.so.6`__futex_abstimed_wait_common at futex-internal.c:57:12, name = 'vrmonitor:sh1'
* thread ValveSoftware/steam-for-linux#14: tid = 683316, 0x00007f79d90a1adc libc.so.6`__pthread_kill_implementation(threadid=<unavailable>, signo=6, no_tid=<unavailable>) at pthread_kill.c:44:76, name = 'BaseStationWork', stop reason = signal SIGABRT
  thread ValveSoftware/steam-for-linux#15: tid = 683330, 0x00007f79d911477f libc.so.6`__GI___poll(fds=0x00007f797c0034e0, nfds=1, timeout=-1) at poll.c:29:10, name = 'Qt HTTP thread'

Steps for reproducing this issue:

  1. Start SteamVR by clicking green play button
  2. Base stations show up with '!' mark
  3. Click base station icon pops up dialogue saying update is available
  4. Picking update device brings up update device dialogue that says it will quit any currently running VR applications
  5. Picking yes say preparing system for device update
  6. Update base station window briefly pops up and then vanishes along with all other SteamVR windows

twhitehead avatar Nov 30 '23 22:11 twhitehead

Hi, I try to update the stations and the same thing happens to me. SteamVR closes leaving the update in the middle of the process.

  1. Start SteamVR

imagen

imagen

imagen

then SteamVR is closed.

Hicks79 avatar Dec 02 '23 12:12 Hicks79

I think this is a duplicate because afaik this has never worked on Linux.

odinu avatar Dec 04 '23 18:12 odinu

I think this is a duplicate because afaik this has never worked on Linux.

a year ago I could update everything without problems and play HL:A, then came SteamVr updates and all problems.

Hicks79 avatar Dec 04 '23 20:12 Hicks79

Does seem like there are a few prior firmware update issues going way back to early 1.x releases

  • 2017: #5 (these are older lighthouses you could plug in with USB cables)
  • 2020: #294 (this is about there being no bluetooth, which is no longer the case, e.g., power management works great)

I know there was some firmware updates when I first unpacked the index. Can't recall if that included the lighthouses or not though. I had also thought I had read somewhere that someone updated their firmware by reverting to one of the earlier 2.x versions. I can't seem to find it now though. I guess, given some time, I could try the earlier 2.x versions.

twhitehead avatar Dec 06 '23 03:12 twhitehead

I'm having the same issue. It just closes without any warning and no update happens

Kaydax avatar May 15 '24 18:05 Kaydax