I run Windows dual boot, since I need (native) Windows for certain work related tasks.
> S3 suspend was removed as a default option by many hardware manufacturers. You will likely need to enter the BIOS to change this.
It's on, S3 is not the problem
> There is a bug in 5.17.x kernels where suspend doesn't work with bluetooth enabled. It will be fixed soon.
I'm not running 5.17.
But frankly, I don't want to care about all this "oh, but you just have to do [insanely_technical_thing]"
Sure, if I invest $LOTS_OF_TIME in it, I might be able to fix most of the issues. But this is a $3000 professional laptop, which is supposed to have good Linux support. This machine is my work equipment and I chose this expensive machine so I don't have to tinker with this stuff. It should just work.
If your firmware has a "boot from" hotkey (usually F12), then you use that as your dual-boot menu.
That's a big fail by Lenovo then, so why didn't you return it? When the support guys logged in to your computer to fix it, what did they do -- just go "yeah, or product is crap" and usher you away?
Mostly because I had more important things to do at the time. Though not perfect, the computer does work, it does get the job done.
And also, I wouldn't know which other brand/model to get. I made my decision to buy the X1E based on the HN community recommending Lenovo as having one of the best support for Linux. So if I switch to a different brand, I might end up with an even worse Linux experience, so it wasn't worth the risk to me.
There are know models and model lines that do so (like the T line). Usually they were / are even offered in variants with Linux preinstalled from Lenovo web site.
Other models may have and do have problems, unsupported hardware, etc.
Windows also supports EFI boot.
> I run Windows dual boot, since I need (native) Windows for certain work related tasks.
The windows/efi boot menu can handle dual boot.
But, assuming you want/need secure boot and bitlocker - I'm not sure if there is an easy way to avoid having to type in recovery key on kernel updates :/
Perhaps efi > direct windows and efi > grub > Linux might work? Probably still needs recovery key for bitlocker after grub update? Maybe this is solved now - I don't dual boot any machines w bitlocker right now.
>It should just work.
Then you should buy a laptop that ships with Linux and has official support from the vendor. Like the Dell XPS Developer edition, or anything from System76.
Regardless I sympathize, as I recently had a good deal of trouble updating from BIOS to UEFI. The 4K issue seems to also affect Dell XPS15 and leads to a kernel panic on the latest Canonical Live CD [1]
[1] https://cenains.blog/2022/05/01/converting-boot-mode-from-bi...
That is factually wrong: if you create other EFI entries with different kernel payloads, then enroll them in your UEFI bios, you can select them at boot time in a menu.
This is how I test cmdline options (same kernel packaged in different .EFI)
If you forgot to do that before a problem, but still have the old payloads around, you can even use the UEFI to add EFI payloads by selecting their files from your EFI partition.
I am not an expert in uefi but my uefi system does not give me the ability to pass command line arguments to the kernel. I actually went to check and took a picture[1].
According to your statement that means you need a working system to repack your kernel if you do not use grub. That kind of proves the opposite of what you write.
With grub you can set kernel arguments in an ephemeral way by just interrupting the boot. In the past, when testing failing kernels it was mighty useful to add a magic argument to the kernel.
I guess I'm really curious what there is to gain by bypassing grub if anything?
> This got me looking around at how one would load a luks or dm-crypt encrypted drive from efi without grub.
systemd-boot lets you define an encrypted drive at installation, which is what I do for my LUKS devices. Whole thing works pretty flawlessly, in my experience.
> I guess I'm really curious what there is to gain by bypassing grub if anything?
I mean, you're not "bypassing" anything; Linux has molecularity at it's core, it's perfectly normal to swap out it's surrounding components to personalize your system. Personally, I pass on GRUB because systemd-boot is fast. Booting with GRUB takes 10-45 seconds depending on your hardware and encryption setup: I've never seen systemd-boot take longer than 15. If you're not dual-booting or doing any fancy baremetal stuff, I think most people would be perfectly happy with it. GRUB certainly still has it's place though, and I'm glad it exists.
You can even enroll this EFI payloads from within the BIOS by just selecting the file from the EFI partition if you forgot to add them into your UEFI (ie if they don't show in your F12 boot options)
Once my desktop using the EFISTUB setup had a kernel that failed to boot, stuck at some filesystem error. Then I had to come up with a rescue plan at the spot, because there was no other way to boot into the desktop and there was no tutorial to help with this at the time.
The issues of EFISTUB:
- It doesn't interact with kernel updates nicely. I used a script in /etc/kernel/postinst.d to copy /vmlinuz to \EFI\debian\vmlinuz.efi. There is no rollback, and no multiple kernels.
- It doesn't work well with kernel parameters. The parameters are encoded in UEFI NVRAM. You have to create separate entries for different kernel parameters, or manipulate the NVRAM back and forth with efibootmgr, which is another gun that easily shoots the foot (you can easily mess up the bootorder variable).
- It doesn't play nicely with Windows and Secure Boot.
I also use multiple kernels and I have had issues with kernel updates, and no issues with kernel parameters. However, there is friction with creating separate entries and so I created a very simple shell script to save my commands.
I’ve had no issues dual booting with Windows using BitLocker. I do not use secure boot (yet).
If you’re willing to spend an hour to set it up, I’d go for it. However, that’s an hour of your life you can save with Grub.
For one I wouldn't put great confidence in a script to manipulate UEFI boot entries, because it is not idempotent and there are precedents to brick the UEFI with unexpected sequence of interaction. Also Windows' reboot options and its annual upgrade tend to mess with the boot variables. I had to help repair colleagues' laptops that had Grub's boot entries erased by Windows upgrades.
I'm mostly a Windows user, and this has never happened in my experience: at worst Windows might reorder the UEFI boot options, or change the default boot option, but it has never overwritten or erased an entry.
At worst they are still available in the F12 boot menu.
You can embed the parameters in the EFISTUB, this is explained in the arch wiki.
I use that to test different parameters with the same kernel packaged in different EFI payload, which I can select from the F12 boot menu if I don't want to use the commands to specify "use this payload only for the next boot"
You almost certainly only need to run two or three efibootmgr commands to accomplish this. For most people that means only the "Using UEFI directly" section is relevant.
https://wiki.archlinux.org/title/EFISTUB
S3 suspend was removed as a default option by many hardware manufacturers. You will likely need to enter the BIOS to change this.
There is a bug in 5.17.x kernels where suspend doesn't work with bluetooth enabled. It will be fixed soon.