1、背景
目前应用系统在使用的操作系统是SuSE Enterprise Linux Server 11 SP3(以下简称SLES11SP3)。
经确认,SLES11操作系统推出时间是2009年发布,2013年发布SP3,最后的版本是2015年发布的 SP4,后续厂家没有继续发布更新。
经过CloudEndure迁移到AWS EC2后,可以在T2系列、M4/C4/R4等4系列EC2启动,但是在5系列EC2所需要的ENA网卡驱动的安装过程,提示找不到kconfig.h文件,无法编译内核驱动。
2、调查
(1)安装ENA驱动步骤
根据如下的AWS文档:
https://aws.amazon.com/premiumsupport/knowledge-center/install-ena-driver-rhel-ec2/
编译EC2的ENA驱动,需要kernel-default-devel的库文件编译,这个编译过程要求kconfig.h文件。
(2)查询文件所在版本
查询Linux内核社区,这个文件在3.1RC版本2011年第一次被提交。如下截图。
由此,下载3.1版本,解压缩,从中确认找到了kconfig.h。
https://cdn.kernel.org/pub/linux/kernel/v3.0/linux-3.1.tar.gz
再次下载3.0版本内核,解压缩,无法找到kconfig.h文件。
https://cdn.kernel.org/pub/linux/kernel/v3.0/linux-3.0.101.tar.gz
(3)查询SLES11系统可以升级的最高版本
经查询SuSE官网,SLES11的最高版本SP4可以达到的内核版本也仅为3.0系列,不支持3.1系列,也就是无法提供kconfig.h。如下截图是SuSE官网版本说明。
3、结论
由于SLES11这系统版本过老,SuSE官方不支持3.0以上版本内核,所以无法使用5系列EC2,只能使用4系列。建议上AWS后使用m4系列实例运行。