Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

systemd-boot hangs on keypress #3632

Closed
2 tasks done
r0l1 opened this issue Jun 30, 2016 · 5 comments
Closed
2 tasks done

systemd-boot hangs on keypress #3632

r0l1 opened this issue Jun 30, 2016 · 5 comments

Comments

@r0l1
Copy link
Contributor

r0l1 commented Jun 30, 2016

Submission type

  • Bug report
  • Request for enhancement (RFE)

systemd version the issue has been seen with

systemd 230

Used distribution

Arch Linux

In case of bug report: Expected behaviour you didn't see

Possibility to boot Windows (Dual Boot)

In case of bug report: Unexpected behaviour you saw

systemd-boot freezes as soon as a key is pressed

In case of bug report: Steps to reproduce the problem

Press a key in systemd-boot on a Razer Blade 2016

@r0l1
Copy link
Contributor Author

r0l1 commented Jul 1, 2016

I installed the rEFInd boot manager and didn't have any problems with it. Is there a possibility to obtain a log from systemd-boot? I am willing to fix this problem. Any hints where to start digging in the source code? How and where does systemd-boot handle keyboard inputs? Thanks!

@medhefgo
Copy link
Contributor

medhefgo commented Jul 2, 2016

Do you have a Steam Controller? I recently got one and it seems that whenever it is plugged in, systemd-boot will hang shortly after first keypress. If it's no plugged in, it works fine. Grub does not exhibit this behavior.

@r0l1
Copy link
Contributor Author

r0l1 commented Jul 2, 2016

No, there is nothing plugged into the laptop :/

@medhefgo
Copy link
Contributor

medhefgo commented Jul 4, 2016

I looked into the code and the culprit seems to be https://github.com/systemd/systemd/blob/master/src/boot/efi/console.c#L98

If I force the else branch to execute unconditionally, everything works fine. Seems like WaitForKeyEx is borked in my UEFI.

@kaysievers Any thoughts on this?

@r0l1
Copy link
Contributor Author

r0l1 commented Jul 4, 2016

I recompiled the systemd package and forced the else branch to execute unconditionally. Now everything works as expected! Thank you!

How should we continue to fix this upstream? What does the TextInputEx_ define? Is there a possibility to determine faulty behaviour and force the else branch?

aszlig added a commit to openlab-aux/vuizvui that referenced this issue Jul 10, 2016
This one is tracked upstream at systemd/systemd#3632.

I've implemented the workaround proposed by @medhefgo as a patch.

As this module is only for a particular hardware, we won't cause
troubles for other hardware.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
keszybz pushed a commit that referenced this issue Jul 18, 2016
WaitForKeyEx may never return on some UEFI systems depending
on firmware, hardware configuration and the phase of the moon.
Use ConIn->WaitForKey unconditionally instead.

Fixes #3632
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants