Announcement

Collapse
No announcement yet.

Fedora Developers Discussing Possibility Of Dropping Legacy BIOS Support

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    Originally posted by peterdk View Post

    I specifically bought this board because it supports 1 NVME and 6 SATA simultaneous. And when I enable CSM, it sees everything. So that's not the issue.
    First of all, UEFI does not require any specific controller. It works with SATA and NVME - with some limits even with Intel RAID (supported by mdadm). But what you want to have is lets say: impossible by default. So here you see how it is really done:

    HOWTO Convert legacy boot to UEFI boot

    If you want that a board detects UEFI installs by its own then there must be EFI binaries on it with names that are hardcoded in the firmware. I would call that fallback mode. In the beginning only Windows and for some brands the generic EFI binary names - which need to be supported only for external (USB) drives by definition but Windows adds those as fallback if you install too, so this is most likely the reason why some brands searched for this instead.

    For new boards you can expect that common EFI binary names from Ubuntu, Fedora, ... are hardcoded in the firmware as well, so you are able to switch drives from one board to the next and the installs are detected. This definitely never happened for Kanotix. That's why Kanotix has it's own fallback grub code and shows Kanotix EFI binaries if you boot in EFI mode. After boot from stick -> select the HD EFI -> just run "grub-install" and it will be shown next time (and will be default).

    Another trick is: fake generic and Windows EFI. If there is no Windows on the drive where Linux is installed, just install the EFI binaries with those names as well. It will be shown as Windows if you attach first but you can always run "grub-install" to get the "real" name. Windows will be shown too of course. The generic location is in theory only searched if the drive is USB and removable, but that depends on the board as well. If you add both fake names you can boot it on any UEFI system.

    Ok, right now I only wrote about GRUB2, so whats with sd-boot. The initial name of sd-boot was gummiboot and I basically liked it from the beginning. But in order to work for Linux the kernel needed to get an EFI header. This happend with Linux 3.3 officially but was backported for Debian wheezy's 3.2 kernel.

    gummiboot/sd-boot can only start EFI binaries inside the ESP which means that you need much more space than GRUB2 to store all kernels and initrds you want to be able to select inside the ESP. If you do a fresh install onto a new hd this does not matter at all but you might need a 2nd ESP if there is no space left in the first (UEFI can support this, not a huge problem). What you usually see is, when sd-boot is used, the ESP is mounted to /boot. As I don't have got a Fedora install somebody else could confirm this. If you just need a GRUB loader that has support for the filesystem that stores the kernel+initrds the resulting EFI binary is much smaller - less than 1 MB. The typical ESP size used by Windows is 100 MB and systems using GRUB usually mount the ESP to /boot/efi.

    So in order to convert a legacy install you need first the ESP. Preferred on each drive (it is not a real requirement but better for later separation). If you have got Windows on the same drive you should forget this in most cases as you run out of MBR partitions. I converted Windows installs from legacy to UEFI as well but thats not the point here. If you really happen to have got one spare primary MBR partition (not extended) so, from 1 to 4 only, then you can use that and format it with FAT32. If you want to make it perfect give it 0xEF as ID. Mount it to /boot/efi and use the next trick. If you have got no primary MBR partition left you need to convert the drive to from MBR to GPT. This can be done with "gdisk", after that create a FAT32 partition. Kanotix requires that this partition is flagged as ESP (if you use gparted "boot" and "ESP" are the same for GPT). It would not be needed just for converting but I would recommend it. Next step in both ways is to make sure that the new ESP is mounted to /boot/efi.

    If you have got 64 bit installs of a common system you can usually expect that you have got the x86_64-efi GRUB target preinstalled. Otherwise the next command will not work (while booted or inside a chroot).

    Without chroot we will use the fake approach:

    Code:
    grub-install --target=x86_64-efi --removable
    Now we have got the generic files on the ESP. Next step: fake Windows:

    Code:
    test -d /boot/efi && test -f /boot/efi/EFI/BOOT/BOOTX64.EFI && test ! -f /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi && mkdir -pv /boot/efi/EFI/Microsoft/Boot && cp -v /boot/efi/EFI/BOOT/BOOTX64.EFI /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
    Power off the system and the fake Windows will be found. You can do both commands if you use non-common UEFI installs which are not found by other boards to make it more easy if you switch boards.

    Inside chroot, be sure that /boot/efi is mounted (and inside fstab) and the usual /proc, /sys, /dev of course just run "grub-install" while booted in live mode in efi mode (efibootmgr -v to verify).

    After next boot run: "update-grub" (or "grub-mkconfig -o /boot/grub/grub.cfg") to add other Linux installs including (fake) UEFI Windows in the case of the chroot method or "grub-install" in case of the fake Windows approach to get the nicer name in the UEFI boot selection.

    Done.
    Last edited by Kano; 01 July 2020, 06:37 AM.

    Comment


    • #62
      It is right to leave hardware behind. It is righter if it can still work after a change like this via alternative means.

      Comment


      • #63
        This is totally absurd and asinine. BIOS support and support for generic 686 systems must be kept for 10 years, at least. There are a LOT of perfectly functionaly BIOS based systems. 10 year old computer is still perfectly useable. The useable lifespan of a desktop computer these days can be 15-20 years, even longer. Also older computers can be donated to charity for use for education and in the third world. Dropping support for older computers contributes to the e-waste problem and is environmentally irresponsible. Why trash a computer that is still working fine, just because the STUPID Fedora developers want to drop a few lines of code to support it? Give me a break. No way jose.

        Comment


        • #64
          Originally posted by Giovanni Fabbro View Post

          Changing to systemd-boot from grub wouldn't affect active installations any more than ending support for BIOS, or 32-bit code: your old install will still work. Whether or not it gets updated in the future, that's another story.
          This kind of thinking is absurd. If you no longer get updates, your system for practical purposes becomes unusable. This is because you no longer get security updates which are extremely necessary, especially for web browsers. Also web browser technology is always changing so there is the need to have a recent browser to access the web. Also makes the system useless for servers, which can be just as devastating.

          Comment


          • #65
            Originally posted by Ipkh View Post
            I boot UEFI exclusively and at least Xubuntu has no problem switching between the CSM and pure UEFI when the bios is reset.
            I also tend to enable secure boot. Luckily Xubunutu handled that quite well too.

            In general we need to start dropping legacy subsystems to improve. I hate Apple but admire their ability to just drop legacy cruft at the drop of a hat. I think a balance between Apples reckless abandonment of working standards and Microsoft refusal to abandon long superceded standards is needed for Linux and the general Processor ecosystem to make forward progress.
            You don't have to drop legacy to improve. Thats a stupid argument and makes no sense. Legacy support in no way interferes with your ability to have UEFI boot or any other special hardware support. If you want support for the latest CPU extension that is found only recent super expensive CPUs, you should be provided with a way to compile your own binaries. For many of us it isn't worth the trouble and settle for precompiled binaries which work for everyone.

            Comment


            • #66
              Originally posted by Giovanni Fabbro View Post

              Is this even an issue? Virtualbox is pretty shitty, but KVM supports EFI booting, and most distros have packages for OVMF which is a QEMU port of TianoCore, itself an open-source implementation of the UEFI. It's more-or-less a "full" UEFI implementation (full-enough for KVM, that is) that supports Linux, Windows, and BSD guest booting. From what I've read, Apple is adding support for VirtIO in macOS. Some people may be reading too much into this though, since they already have a "Hypervisor" for application development, likely to help with sandboxing apps as indicated here: https://developer.apple.com/documentation/hypervisor
              You don't run KVM on a home computer, except for special cases. It isn't a competitor to virtualbox, which is a fully type-2 hypervisor, and is usually used to run another OS on top of some OS. Like you want to test drive you newest distro, you run it in virtualbox. KVM is more of an enterprise-level solution, and an average being can't even operate it without extensive research and learning.

              Comment


              • #67
                I guess my only question is where is the line drawn? EFI v1? v1.2?

                There were a million Sandy Bridge/Ivy Bridge's that had those 1st and 2nd generation EFI implementations.

                I have run scripts that require UEFI and these systems report as "pass" but when you install the OS, it won't boot.

                Futzing with the EFI partition and the related files is not an answer. All I ask is if Fedora draws the line, make sure they have a script to check the EFI revision and tell people if it doesn't cut it or not.

                Comment


                • #68
                  Originally posted by eydee View Post
                  You don't run KVM on a home computer
                  Speak for yourself.

                  Originally posted by eydee View Post
                  Like you want to test drive you newest distro, you run it in virtualbox.
                  Not everyone has to resort to inferior solutions just because they're too dumb to use KVM.

                  Comment


                  • #69
                    On topic: Don't drop legacy bios support yet, reconsider it in 5+ years.

                    Originally posted by Giovanni Fabbro View Post
                    But also, Asrock boards are pretty much trash. They were a spinoff company from Asus from when Asus wanted to get into uber-budget products, and they spun it off when the head company didn't want to deal with the high warranty returns due to low QA from cutting corners in production. I worked at a computer shop that ordered a couple different sets of motherboards for building systems and in one stack of a dozen, 2 were DOA and the rest didn't last 6 months. A few years later and it was a pretty similar story: none of them lasted a year. The company couldn't believe that their own shoddy manufacturing was the result. It was a nightmare because even the replacements didn't last another year. After the second set of returns, the company said they would only cover the second set of replacements for 90 days because they were already EOL'd, and that meant that they never provided the full term of the warranty because of a clause which stated that replacements are not covered for the full extent of the remainder of the original warranty term. It cost the store thousands of dollars in lost labour, switching them out for another brand at their expense, and the bad reputation that resulted from the situation.
                    My experience hasn't been perfect, but I've had more success with asrock than with msi/asus/gigabyte/biostar over the past ~16 years. I don't own/work-for a store and only build about 2 computers per year. I am probably just lucky or unlucky when using other manufacturers. I've noticed many complaints (mostly tacky comments) about asrock online over the past 2 years, due to the quality of the complaints I didn't think much of it. Trusted reviewers are mostly giving asrock good reviews, however I will do more research in the future thanks to your detailed explanation and issue peterdk described.

                    I surely have missed dual bios over the years. I don't do it frequently, but I have made some bios tweaks for various reasons e.g. my own splash screen, getting nvme boot support on X87 chipset and more reciently on ryzen platforms with AGESA issues (mostly related to zen1). Further reversing an AMI bios via UEFI shell isn't difficult, but needlessly time consuming and can be hazardous if you make a stupid mistake.

                    Comment


                    • #70
                      Originally posted by hakavlad View Post

                      Stop using the L-word, please: BIOS is not "legacy", it's just alternative way (one of many).
                      It's 16-bit. It IS legacy.

                      Comment

                      Working...
                      X