linux 内核 Preemption Model 选择Fully Preemptible Kernel (RT)后,卡在Starting kernel...... 选择No Forced Preemption (Server) 则可以启动

我用的AM437x的开发板从TI官网下载的SDK包am437x-evm-linux-rt-sdk-src-04.03.00.05,将里面的内核移植到我的开发板上,编译好后将zImage文件放入我的板子上,u-boot引导启动,出现以下信息:

Booting from mmc0 ...                                                          
bootargs=console=ttyO0,115200n8 root=/dev/ram0 rw rootfstype=ext2              
Kernel image @ 0x82000000 [ 0x000000 - 0x3582c8 ]                              
## Loading init Ramdisk from Legacy Image at 88080000 ...                      
   Image Name:   ramdisk                                                       
   Image Type:   ARM Linux RAMDisk Image (uncompressed)                        
   Data Size:    53857443 Bytes = 51.4 MiB                                     
   Load Address: 88080000                                                      
   Entry Point:  88080000                                                      
   Verifying Checksum ... OK                                                   
## Flattened Device Tree blob at 88000000                                      
   Booting using the fdt blob at 0x88000000                                    
   Loading Ramdisk to 8cca3000, end 8ffffca3 ... OK                            
   Loading Device Tree to 8cc93000, end 8cca22b2 ... OK                        
                                                                               
Starting kernel ...                     

然后控制台没有信息输出了。 。 。但是我将 Preemption Model 选择为No Forced Preemption (Server)后,再次编译,再次从板子启动,则可以正常挂载内核镜像文件,完成起动过程。这是不是说明我的u-boot 和设备树是没问题的??问题出现内核上?

在我的config里面我配置了:

CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
CONFIG_PREEMPT_RT_FULL=y

CONFIG_CPU_IDLE=n
CONFIG_CPU_FREQ=n
CONFIG_SUSPEND=n
CONFIG_HOTPLUG_CPU=y

CONFIG_RCU_BOOST=n

CONFIG_RCU_NOCB_CPU=y

CONFIG_RCU_NOCB_CPU_ALL=y

目的是为了使用内核的RT功能。

各位有遇到过这种情况吗?该怎么解决呢?搞了两天了,还是没进展。。。