Race condition during start up leading to blank screen #88
Replies: 4 comments
-
There is some code in egpu-switcher already to fight potential race conditions. It may be possible to fix your issue by extending the amount of detection retries on system bootup 🤔 If you have the time, can you try out removing your This code is a hacky way to address the race condition, by extending the detection retries to 3 seconds To address the race conditions in a less hacky way, egpu-switcher would need to get notified about events from But to integrate egpu-switcher more deeply with boltctl, I'd prefer to rewrite the script in a more maintainable language than a bash script. I thought about rewriting the script and extending its functionality in Rust, but I'm working on some other projects too and didn't have enough time to finish up a prototype yet. Despite it being a bit hacky, it seems to work for a lot of people, so I didn't prioritize the race condition issue of egpu-switcher very highly. |
Beta Was this translation helpful? Give feedback.
-
Hi hertg The Workaround with ExecStartPre works for me and i am not in need of a solution, I just chose to post it here so you are aware and for other people with the same problem. |
Beta Was this translation helpful? Give feedback.
-
Hmm, that's curious. I'm guessing incrementing the value didn't delay the startup on your system? Or did it actually delay the start of the graphical environment for 32 seconds? Would be great if you could post your full systemd unit (
Sounds good, I'll leave the issue open for now. If you'd like to submit a PR that adds your issue+workaround to the |
Beta Was this translation helpful? Give feedback.
-
Incrementing the Value did not really have any observable impact. My systemd unit looks like this:
With `ExecStartPre=/bin/sleep 1``being the only change compared to the standard one. I obviously commented this line out when testing your suggestion
I'll do that when i find the time |
Beta Was this translation helpful? Give feedback.
-
egpu-switcher
via ppa or via git + make: PPAAfter installing egpu switcher, it would work every so often (maybe 5-10% of all cases) but booting with the egpu attached would mostly lead to a black screen with a blinking underscore or to the following error:
[drm:intel_cpu_fifo_underrun_irq_handler [i915]] ERROR CPU pipe A FIFO underrun
after trying out different approaches i found out, that decativating the systemd service and manually setting the egpu using
egpu-switcher switch egpu
worked.Since i suspected a race condition I added
ExecStartPre=/bin/sleep 1
to the systemd service and that resolved my problems. It is a bit of a hacky solution so I would prefer something more proper but so far it is working very reliably.
I have seen that you reccomend to enable Pre-Boot ACL to get rid of such race conditions but that option was not available in my BIOS (my machine has Thunderbolt 4 and i could not find any of the Thunderbolt settings i see mentioned here).
Beta Was this translation helpful? Give feedback.
All reactions