# Unable to boot please use a kernel appropriate for your CPU!

## richard.scott

Hi,

Since kernels 2.6.24 I have started to notice this error on a default kernel build when using genkernel:

```
Loading /boot/kernel................

Loading /boot/initramfs................

Ready.

This kernel requires the following feature not present on the CPU:

0:6 0:8

Unable to boot - please use a kernel appropriate for your CPU
```

I'm using sys-kernel/genkernel-3.4.10_pre10 with either gentoo-sources or hardned-sources in the 6.2.24 branch and I've noticed that PAE and 64GB Memory support is activated always! 

This causes me to have this error when I boot on a VIA C3 CPU as it doesn't support PAE   :Crying or Very sad: 

You can check what your system supports with the following:

```
# cat /proc/cpuinfo

processor       : 0

vendor_id       : CentaurHauls

cpu family      : 6

model           : 9

model name      : VIA Nehemiah

stepping        : 8

cpu MHz         : 1002.340

cache size      : 64 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 1

wp              : yes

flags           : fpu vme de pse tsc msr cx8 sep mtrr pge cmov pat mmx fxsr sse rng rng_en ace ace_en

bogomips        : 2006.31

clflush size    : 32
```

As you can see, the flags section doesn't list pae!

But on this Intel CPU it does:

```
# cat /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 15

model           : 4

model name      : Intel(R) Celeron(R) CPU 2.93GHz

stepping        : 1

cpu MHz         : 2926.180

cache size      : 256 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 3

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pebs bts sync_rdtsc pni monitor ds_cpl tm2 cid cx16 xtpr

bogomips        : 5857.54

clflush size    : 64
```

I've started a bug report for this in the hope we can get genkernel to detect and switch off PAE if your system doesn't support it:

https://bugs.gentoo.org/show_bug.cgi?id=223037

After all, if its off, you can switch it back on. If its already on, your bound to forget to switch it off again!   :Very Happy: 

The part to check is in the following menu section:

```
 -> Processor type and features

  High Memory Support (64GB)  --->

  -*- PAE (Physical Address Extension) Support
```

If PAE is on, then change the "High Memory Support" down to 4GB and you should be able to boot ok.

----------

## BradN

<rant>Yeah, that's why I never trust genkernel to get everything right... </rant>

----------

## richard.scott

 *BradN wrote:*   

> <rant>Yeah, that's why I never trust genkernel to get everything right... </rant>

 

LOL..... its not a genkernel thing   :Cool: 

It happens in a vanilla kernel you compile by hand if you select 64GB High Memory Support   :Shocked: 

----------

## Veldrin

64GB high memory support basically means pae! set your memory support to 4GB high mem, or over disable it if you have less than 1 GB ram..

----------

## BradN

 *richard.scott wrote:*   

>  *BradN wrote:*   <rant>Yeah, that's why I never trust genkernel to get everything right... </rant> 
> 
> LOL..... its not a genkernel thing  
> 
> It happens in a vanilla kernel you compile by hand if you select 64GB High Memory Support  

 

And of course it's still possible to set things wrong manually... genkernel just makes it faster to get the wrong options set  :Razz: 

----------

## richard.scott

 *BradN wrote:*   

> And of course it's still possible to set things wrong manually... genkernel just makes it faster to get the wrong options set 

 

Genkernel is really cool, it's saved me loads of time  :Laughing: 

I used to build my own kernels and initrd files and now I don't need to as genkernel is a really excellent wrapper for it all!

Lol, how many scripts or commands would it take to build a kernel and configure your initrd image to have LVM support? I know from experience that if you do it yourself its way more code than this one line!   :Wink: 

```
# genkernel --lvm --menuconfig all
```

I've never looked back using genkernel, much the same as I've never looked back on moving to using Gentoo!

----------

## BradN

Well, manually configuring the kernel isn't too bad when you make use of "make oldconfig" and just set the options that were changed or added.  I'd say, maybe 1-2 minutes for a point upgrade.  I don't have a need for an initrd on my systems so that's not really a concern for me (although if I did need it for some reason, then genkernel might be useful)

----------

