4

I compiled a linux kernel from source code which version is 4.8.5. Everything is OK during compiling but I just can't get it loaded. After I choose 4.8.5 when asked to select a kernel version, it soon runs into trouble and the screen just printed:

Loading linux 4.8.5...
error: kernel doesn't support EFI handover
Loading initial ramdisk
error: your need to load the kernel first
Press any key to continue

And my current effective kernel version is (from uname -a) :

Linux linux-8ckq 4.1.12-1-default #1 SMP PREEMPT Thu Oct 29 06:43:42 UTC 2015 (e24bad1) x86_64 x86_64 x86_64 GNU/Linux

It works very well. So I know something must be wrong with the new kernel or with my configuration or my hardware. And my hardware information is( from lspci):

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-LM (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)
00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d4)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QM87 Express LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)
02:00.0 VGA compatible controller: NVIDIA Corporation GK208M [GeForce GT 730M] (rev a1)
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)
04:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b)

Can anyone tell how to fix this. Really appreciate it.

John Vandenberg
  • 474
  • 6
  • 16
tuan long
  • 605
  • 1
  • 9
  • 18

1 Answers1

4

You need to compile your kernel with EFI handover support, see e.g. this Gentoo wiki page.

Power management and ACPI options --->
    [*] ACPI (Advanced Configuration and Power Interface) Support --->
Processor type and features  --->
    [*] EFI runtime service support 
    [*]   EFI stub support
Firmware Drivers  --->
   EFI (Extensible Firmware Interface) Support  --->
       <*> EFI Variable Support via sysfs
John Vandenberg
  • 474
  • 6
  • 16
rubenvb
  • 74,642
  • 33
  • 187
  • 332
  • Seems like a right answer. I'll give it a try. Thanks very much. – tuan long Oct 31 '16 at 15:25
  • 1
    I want to say thank you again cause you reminded me that what I did wrong is that I used 'make deconfig' to generate .config file which doesn't support those stuff about EFI. Now I just copy .config file from current running kernel and it works well. Maybe ' make defconfig' is not enough. – tuan long Nov 03 '16 at 08:05
  • 1
    "EFI Variable Support vis sysfs" is the legacy version. "File systems"->"Pseudo filesystems" -> "EFI Variable Filesystem" lacks some of the limitations of the pure sysfs interface (and the efivars library will use that in preference if available). – unixsmurf Mar 12 '17 at 11:22