jlobue10 / SteamDeck_rEFInd

Simple rEFInd install script for the Steam Deck (with GUI customization)
MIT License
519 stars 50 forks source link

Refind doesn't boot to batocera #56

Closed practiceazure2021 closed 1 year ago

practiceazure2021 commented 1 year ago

Previously my steam deck was dual booted with windows (on ssd) but I decided to remove it. I then flashed batocera on my sd card and then configured refind to have batocera as the 2nd boot. However when trying to boot batocera via refind boot menu I am getting a glitch screen so I decided to remove refind and then reinstall. However this time I am now able to boot to batocera only if it started from steam deck being totally shutdown. When I try to restart and then try to boot batocera again it just goes straight to steamOS.

GUI generated refind.conf Config File

timeout 5 use_nvram false hideui singleuser,hints,arrows,label,badges banner background.png banner_scale fillscreen resolution 3 enable_touch enable_mouse showtools

scanfor manual,external

scanfor manual default_selection "1"

menuentry "SteamOS" { icon /EFI/refind/os_icon1.png firmware_bootnum 0001 }

menuentry "Batocera" { icon /EFI/refind/os_icon2.png volume "BATOCERA" loader /EFI/BOOT/bootx64.efi graphics on }

jlobue10 commented 1 year ago

I see the glitched screen as well, but I'm able to successfully boot into Batocera from the SD card from rEFInd with a similar config file. Is Batocera the only thing on that SD card? Do you have another SD card that you can test a fresh Batocera Image on, preferably making the SD card with Rufus.

practiceazure2021 commented 1 year ago

Hello Jlobue,

First of all I just wanted to say thank you for looking into this. Actually i have another sd card with batocera and same issue. Did you try booting from batocera after a restart instead of from the steam deck being totally shutdown? Not sure what the problem is or if I messed up something in the process when I uninstalled refind. But I'm pretty sure I followed your guide on uninstalling refind and use the GUI method to reinstall it. What actually odd is why it is booting up batocera when it came from a shutdown. Not sure if it is having an issue locating the .efi file to boot into it

On Sun, Apr 16, 2023, 1:59 PM jlobue10 @.***> wrote:

I see the glitched screen as well, but I'm able to successfully boot into Batocera from the SD card from rEFInd with a similar config file. Is Batocera the only thing on that SD card? Do you have another SD card that you can test a fresh Batocera Image on, preferably making the SD card with Rufus.

— Reply to this email directly, view it on GitHub https://github.com/jlobue10/SteamDeck_rEFInd/issues/56#issuecomment-1510096297, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUSV7EPKSUIGNAF4K5S72BDXBODE7ANCNFSM6AAAAAAW73W5AY . You are receiving this because you authored the thread.Message ID: @.***>

jlobue10 commented 1 year ago

This is the first time that I saw the 'restart' part, and yes this seems to be the problem which is reproducible on my end. The problem is something that Batocera is doing to EFI entries when you use the restart option from Batocera. I don't know if this is a setting that can be turned off in Batocera or if it may be a bug or whatnot, but upon restarting the Steam Deck from Batocera, if you try to launch Batocera from rEFInd it will not launch properly and in the background new EFI entries will be created and activated. For me on my Steam Deck with Kubuntu as one of the boot options, the inactive EFI entry for Kubuntu was remade into a new active entry and then Kubuntu booted. I was able to reproduce this behavior multiple times. I'd suggest only using shutdown for now from Batocera and reach out to the Batocera devs for comment or troubleshooting. You may need to manually clear out some new EFI entries with proper efibootmgr commands. I had to delete redundant Kubuntu and rEFInd Boot Manager entries to restore normal functionality on my Steam Deck, and then I remade my 4th option as Ventoy from the SD card (was Batocera for this testing).

practiceazure2021 commented 1 year ago

Hello Jlobue,

Well that isn't so hard to do so I may as well stick with shutting down first in order to boot to batocera properly. Btw thanks a lot for looking into this. Sorry to ask but are you from an I.T industry? I really admire guys like you who find time to develop things that makes life easier for non-technical people. Haha. I'm also from an I.T industry but I just don't have that much time to really build anything (well aside from work).

On Sun, Apr 16, 2023, 2:48 PM jlobue10 @.***> wrote:

This is the first time that I saw the 'restart' part, and yes this seems to be the problem which is reproducible on my end. The problem is something that Batocera is doing to EFI entries when you use the restart option from Batocera. I don't know if this is a setting that can be turned off in Batocera or if it may be a bug or whatnot, but upon restarting the Steam Deck from Batocera, if you try to launch Batocera from rEFInd it will not launch properly and in the background new EFI entries will be created and activated. For me on my Steam Deck with Kubuntu as one of the boot options, the inactive EFI entry for Kubuntu was remade into a new active entry and then Kubuntu booted. I was able to reproduce this behavior multiple times. I'd suggest only using shutdown for now from Batocera and reach out to the Batocera devs for comment or troubleshooting. You may need to manually clear out some new EFI entries with proper efibootmgr commands. I had to delete redundant Kubuntu and rEFInd Boot Manager entries to restore normal functionality on my Steam Deck, and then I remade my 4th option as Ventoy from the SD card (was Batocera for this testing).

— Reply to this email directly, view it on GitHub https://github.com/jlobue10/SteamDeck_rEFInd/issues/56#issuecomment-1510120218, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUSV7EMNBQ4YWYVY4PRZGOLXBOI5NANCNFSM6AAAAAAW73W5AY . You are receiving this because you authored the thread.Message ID: @.***>

jlobue10 commented 1 year ago

I'm not in the IT field but I have a strong background with computers, teaching myself to build them in the 1990s. I also have a degree in electrical engineering, which depending on some of the selective classes that you can choose, has some decent overlap with computer engineering. I had to take some coding classes to graduate. I am decently well versed in C, Verilog, Matlab, etc. My C background definitely made figuring out the C++ stuff a lot easier than trying to code it in Python (which is also likely doable for Qt). I think C++ is the better choice for small, optimized code anyways though.

At work, my main job isn't coding, but I have been taking on more responsibility to code things that are productivity boosters or time savers for colleagues. These codes that I develop at work are in Cadence SKILL (a LISP dialect). Coding is something that just comes fairly easily for me if I have the time to look into it and the desire to figure the issue(s) out.

Oh and for the evolution of this project... it's a bit funny actually. A much older Deck Wizard video had a way of using rEFInd for dual boot that actually broke with every Windows update, since the method used renaming files and folders on the /esp partition. This initially turned me off from using rEFInd as that was a deal breaker for me. Then, someone on Reddit mentioned a better way of doing it that would survive Windows updates. From there, I scripted this "better way" and have been adding to it since. Changes by Valve have caused more maintenance and work from me since they broke the ability for efibootmgr to disable the Windows EFI entries without using the recovery USB, or another Linux distro. I also was motivated to code the GUI because I knew that it would make it so much easier for anyone to get the configuration that they wanted without having to be good with command line and config file editing. The GUI is quite mature at this point and has all of the features that I wanted it to have when I set out to design and code it.

Closing the issue, as it is actually a problem with Batocera changing EFI entries.

Have a nice day.