2016-10-31 1 views
3

J'ai compilé un noyau Linux à partir du code source dont la version est 4.8.5. Tout est OK pendant la compilation, mais je ne peux pas le charger. Après avoir choisi 4.8.5 lorsqu'on lui a demandé de choisir une version du noyau, il va bientôt des ennuis et l'écran juste imprimé:Impossible de charger le noyau Linux auto-compilé

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 

Et ma version actuelle du noyau est efficace (de 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 

Cela fonctionne très bien. Je sais donc que quelque chose ne va pas avec le nouveau noyau ou avec ma configuration ou mon matériel. Et les informations de mon matériel est (de 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) 

Quelqu'un peut-il dire comment résoudre ce problème. J'apprécie beaucoup.

Répondre

4

Vous devez compiler votre noyau avec le support de transfert EFI, voir par ex. 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 
+0

Cela semble être une bonne réponse. Je vais essayer. Merci beaucoup. –

+0

Je tiens à vous remercier encore une fois parce que vous m'avez rappelé que ce que j'ai fait de mal, c'est que j'ai utilisé 'make deconfig' pour générer un fichier .config qui ne supporte pas ces choses sur EFI. Maintenant, je copie simplement le fichier .config du noyau en cours d'exécution et cela fonctionne bien. Peut-être que "make defconfig" ne suffit pas. –

+0

"EFI Variable Support vis sysfs" est la version héritée. "Systèmes de fichiers" -> "Pseudo filesystems" -> "EFI Variable Filesystem" manque certaines des limitations de l'interface pure sysfs (et la bibliothèque efivars l'utilisera de préférence si elle est disponible). – unixsmurf