Boot Loader Problem on Slackware64 13.37 (UEFI & GPT disk)
Hello fellow Slackers,
I just build my new PC with Intel Core i5 CPU and ASRock P67 mainboard, my problem is that the mainboard comes with UEFI and not BIOS. I proceed to create a GPT disk label on my new hard drive and create the partitions. The plan is to dual boot the Slackware64 13.37 with Windows 7 x64. The Slackware installation itself went pretty smooth, no problems found until the boot loader section (lilo won't install). My question is how could I boot my Slackware64 on this system and specially doing dual boot between Windows and Linux on UEFI system. I've tried building ELILO from source and it failed with message: Code:
localfs.c:30:17: fatal error: efi.h: No such file or directory Anybody here has experience with this kind of system? Please share your experience on setting up a Slackware64 inside a UEFI box. Thanks for your reply |
Use your Slack DVD and boot into the installed partition. There are instructions to do so on the boot screen. When you've logged in, run lilo and write down what kind of errors it throws. I have a UEFI system and I'm using lilo to boot so I wouldn't give up so soon.
Edit: My mainboard apparently has some backwards compatibilities so lilo might not be able to boot your system. Still, telling us exactly what lilo complained about will help. |
Some More Info
Ok, here's some more info about my box...
Disk setup: Code:
Model: ATA ST3250310AS (scsi) Code:
boot = /dev/sda Code:
LILO version 23.2 (released 09-Apr-2011) Thanks for your reply |
I've not tried to build it myself, but if can be useful, the header file you miss is in the kernel-sources package...
|
Just curious though, is the efi.h header file suppose to reside inside /usr/include/linux from the kernel-headers package? Is the kernel-headers package missing this files, or this is from the Slackware kernel configuration which is not UEFI friendly, though if I'm not mistaken Slackware 13.37 already support UEFI and GPT disks.
|
You could try installing windows 7 first and them after that you could install Slackware 13.37, but instead of installing lilo to your MBR you could install it to your root partition. After you've finished installing slackware you could reboot back into windows 7 and use a program called easyBCD (http://neosmart.net/EasyBCD/) and edit your windows boot loadeder to chainload lilo. I use this method myself cause I prefer to keep the windows bootloader on my MBR. I can't guarantee this will work with UEFI but it might be worth a try.
P.S. Even though it says its a commercial program you have to buy, there is a free version, the link is toward the bottom. |
Quote:
Code:
zcat /proc/config.gz | grep _EFI http://www.rodsbooks.com/gdisk/booting.html http://www.rodsbooks.com/efi-bootloaders/index.html |
easyBCD does not support UEFI
Quote:
Thanks for your reply |
Build ELILO dependency on Slackware64-current
I've tried to build ELILO for my desktop box, the build environment is on my notebook with Slackware64-current with Eric's multilib packages installed. It turns out that my journey to build ELILO is more bumpy I had expected.
First, it depends on gnu-efi and I can't build it. I got this when running 'make' Code:
dwi@lenovo-g470:gnu-efi-3.0 $ make Code:
dwi@lenovo-g470:lib $ cc boxdraw.c -o boxdraw.o -I ../inc/ -I ../inc/x86_64 -I ../inc/protocol/ Secondly, ELILO needs the binutils which supports efi format binary, the one that comes with Slackware64-current doesn't support this, I'll try to rebuild my binutils later (after I can build gnu-efi) Code:
objcopy: supported targets: elf64-x86-64 elf32-i386 elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex Thanks |
Try GRUB instead LILO
|
GRUB doesn't support booting from UEFI system either, and what I'm trying to build is ELILO not LILO - those two are different.
|
A way to get UEFI working
I have just successfully installed a slightly modified version of Slackware64 13.37 onto an EFI system (actually, on VirtualBox with EFI turned on). I had been following this thread while trying to figure this out, so I am posting here in case anyone else needs this information.
1) I got ELILO by downloading the source, which also contains the compiled .EFI program for X64. I didn't bother recompiling the source, but just used the already compiled program. (I figured that this needs to run BEFORE Slackware gets run, so it doesn't need to be a version that is compiled under Slackware.) 2) Using an existing non-EFI installation of Slackware 64-bit 13.37, I recompiled the HUGE kernel with the EFI Framebuffer support turned on. I made a copy of the Slackware 64-bit install DVD, with a new folder "efi/boot" with the elilo.efi program and a copy of the recompiled huge.s kernel image and the initrd and an elilo.conf to link it all together. 3) The above allowed me to boot the virtual system in EFI mode from the DVD and I got to the normal installation screen. I used gdisk (supplied on the installation DVD) to partition the new virtual hard drive with a 40 Meg partition 1 for EFI, 8 Gig for root linux, 2 Gig for swap. I manually formatted the EFI partition to FAT32, manually created a "efi/boot" folder on the EFI partition, manually copied over elilo, the recompiled huge.s kernel, and the elilo.conf (modified to set root to /dev/sda2). 4) After the manual work, I ran setup and did the normal install. I skipped the LILO installation, since I didn't need it. 5) When installation was done, I rebooted the virtual system and it came up properly in text mode. The tricky parts of all this was recognizing that I didn't need to recompile the elilo.efi program, but that I did need to recompile the kernel to turn on the EFI Framebuffer support. For a while I was able to boot the system but couldn't see anything. If I typed commands blind, they would work just fine. It seems that an EFI system does not have normal VGA, or text mode or VESA framebuffer support, but requires the new EFI frame buffer support. It's even worse on VirtualBox because its video mode is not supported by Linux until you load the guest additions from a virtual CD. I suppose that someone with a real EFI system with a real video card that is supported in the kernel might have an easier time of it, though your screen may be black until the kernel finished loading. I hope this helps someone. It would be nice if the next version of Slackware has the EFI frame buffer turned on, and comes with elilo properly configured. |
Hello rwebber, thanks for your reply. I've been very busy lately so I haven't got any time to hack my Slackware installation again. I'll try your method this weekend. I also hope the next release of Slackware will be easier to boot in UEFI box :)
|
Slackware64 Install on UEFI System Finally Works!
Hello Everyone,
Sorry for bringing up this old thread again, just want to share some info in case somebody wants to install Slackware64 on an UEFI system. Finally I've successfully configured dual booting Slackware64-current with Windows 7 on my new rig using rEFInd boot manager, the guide is found here: http://www.rodsbooks.com/refind/index.html Here is my current boot drive setup as a reference: Code:
Model: ATA ST3250310AS (scsi)
I've installed Windows on /dev/sda3 and my UEFI setup already has the 'Windows Boot Loader' entry on my UEFI setup boot selection, and this is how I do it all:
The steps above has a few shortcomings, the first is I cannot boot Slackware64 installer in UEFI mode so to use the efibootmgr tool I have to 'hijack' the Windows EFI loader first, this of course needs a Windows 7 x64 installation which may not present in your environment. If anybody have any idea on booting Slackware64 installer on UEFI mode please share your opinion, I sure hope next Slackware64 release will be able to boot from UEFI :) The second shortcoming is that you must upgrade the kernel that come with Slackware64, although I guess this might not be a great deal. That's it, I hope this post will help anybody who's looking to install Slackware64 on UEFI machine. |
Quote:
Two other useful reads from their wiki are the UEFI_Bootloaders and Unified Extensible Firmware Interface pages. |
All times are GMT -5. The time now is 12:04 PM. |