protonscr

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

steamvropen
ValveSoftware/SteamVR-for-Linux#653 · opened 2023-11-30 by twhitehead · updated 2025-09-23 · 17 comments · github
Ttwhitehead 2023-11-30 github

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
HHicks79 2023-12-02 github

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.

Oodinu 2023-12-04 github

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

HHicks79 2023-12-04 github

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.

Ttwhitehead 2023-12-06 github

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.

KKaydax 2024-05-15 github

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

JJ37T3R 2024-07-23 github

Add me to the list of people having this problem.

HHicks79 2024-07-31 github

Hi
I put all logs here, this problem is related with my logs

https://github.com/ValveSoftware/SteamVR-for-Linux/issues/690#issuecomment-2260941754

Thanks VALVe <3

Eexuvo 2024-11-16 github

I posted some semi-advanced steps to do the updates manually if you are brave enough https://github.com/ValveSoftware/SteamVR-for-Linux/issues/5#issuecomment-2480592803
Worked for me for a base station/lighthouse and two controllers.

Ttwhitehead 2024-11-18 github

@exuvo thanks. It seems the linux version doesn't have the nrfutil program. The only binaries in the lighthouse directory are

~/.local/share/Steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/vivelink
~/.local/share/Steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/vivetools
~/.local/share/Steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/lighthouse_console
~/.local/share/Steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/lighthouse_watchman_update

I see you did provide a github link to the nrfutil source, so this might still be a possible route. Given that my lighthouses are still working okay with the older firmware, not sure I want to risk bricking them though...

Eexuvo 2024-11-18 github

As the other poster mentioned nrfutil github page has prebuilt binaries for linux
under releases tab.

On Mon, 18 Nov 2024, 16:55 Tyson Whitehead, @.***>
wrote:

@exuvo https://github.com/exuvo thanks. It seems the linux version
doesn't have the nrfutil program. The only binaries in the lighthouse
directory are

~/.local/share/Steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/vivelink
~/.local/share/Steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/vivetools
~/.local/share/Steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/lighthouse_console
~/.local/share/Steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/lighthouse_watchman_update

I see you did provide a github link to the nrfutil source though, so this
might still be a possible route. Given that my lighthouses are still
working okay with the older firmware, not sure I want to risk bricking them
though...


Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/SteamVR-for-Linux/issues/653#issuecomment-2483448148,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAPUKOTSGHWCC2BNOJONYM32BIEVHAVCNFSM6AAAAABAB4QIMWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBTGQ2DQMJUHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hhachi 2025-01-18 github

I'm hitting this issue too, does anyone from Valve even read this ticket?

JJRDetwiler 2025-01-31 github

I subscribed to this issue along with a few others similar to it a while ago... @hachi could you possibly see if the solution that worked for me also works for you?
https://github.com/ValveSoftware/SteamVR-for-Linux/issues/709#issuecomment-2594051041

Eexuvo 2025-02-01 github

@hachi have you tried the steps i linked in https://github.com/ValveSoftware/SteamVR-for-Linux/issues/5#issuecomment-2480592803 ? I just edited it to include steps for pure linux update method.

Hhachi 2025-02-06 github

@hachi have you tried the steps i linked in #5 (comment) ? I just edited it to include steps for pure linux update method.

I'll give it a try, but is the intention to give me a workaround or fix this bug in steamvr itself?

Ccverstege 2025-02-06 github

@hachi I hope you realise that none of the people who commented on this issue are employed by valve. We're all just normal users. No one of us can fix this issue in SteamVR. This needs to be done by valve, and they don't seem to work on this issue so far.

Ttwhitehead 2025-06-10 github

A note that I used @exuvo's directions, and it worked fine with my base stations. Thank's very much to @exuvo! 💯

FFrankyB 2025-09-23 github

Just wanted to chime in. Updating Base Stations from linux did not work at any time since I got my Index, on a MS OS VM my headset was not detected, so I am left with a firmware that is really old by now..

I will try the workaround hopefully this evening, but I also have to second hachis question, on we linux users should use the workaround, or have proper support built inst linux steamVR? And if first, why no word on this other that on this thread?

Nothing extracted yet.