解决gem5/m5 模拟器“kernel too old”错误

原创 2012年09月04日 10:30:36

编译安装了gem5 ARM架构的模拟器,运行使用arm-linux-gcc-4.4.3交叉编译链编译的文件时,出现了如下错误:

%--------------------------------------------------------------------------------------------------------------------%

**** REAL SIMULATION ****
info: Entering event queue @ 0.  Starting simulation...
FATAL: kernel too old
panic: Page table fault when accessing virtual address 0x18

 @ cycle 351000
[invoke:build/ARM/sim/faults.cc, line 70]
Memory Usage: 624444 KBytes
Program aborted at cycle 351000
Aborted (core dumped)

%--------------------------------------------------------------------------------------------------------------------%

在google搜索一些资料之后,原因和解决方法如下:

出现“kernel too old” 的原因是不同版本的glibc库文件要依赖于不同版本的linux内核版本,并且编译器会限定运行该可执行文件所需的最低的内核版本。在编译时使用的编译器的版本比较高,它所指定的最低linux内核版本要高于m5声明的内核版本。

所以有两种解决方案。

第一种,调高m5声明的kernel版本。

找到源文件:

src/arch/arm/linux/process.cc:  //不同架构请修改对应的arch

如下代码段:67-71行

    strcpy(name->sysname, "Linux");
    strcpy(name->nodename, "m5.eecs.umich.edu");
    strcpy(name->release, "x.x.xx");
    strcpy(name->version, "#1 Mon Aug 18 11:32:15 EDT 2003");
    strcpy(name->machine, "armv7l");

修改 strcpy(name->release, "x.x.xx") ----->strcpy(name->release, "2.6.35");

我的arm-linux-gcc版本是4.4.3,将上述代码修改为 “2.6.35”。如有需要,请查找内核版本号历史,修改更高一点。

保存,重新编译m5,即可成功运行。


第二种,使用较低版本的arm-linux-gcc

我没有测试第二种,应该是可以的,只要将arm-linux-gcc的版本将下来,对内核版本的要求自然就低了。

参考:http://comments.gmane.org/gmane.comp.emulators.m5.users/6006

遇到问题继续解决~加油。



FATAL: kernel too old

VFS: Mounted root (xxxx filesystem). Freeing init memory: 104K FATAL: kernel too old Kernel panic...
  • newnewman80
  • newnewman80
  • 2012年11月05日 14:53
  • 3252

gem5全系统启动:FATAL: kernel too old

接上篇,换了自己的新disk image 1)把img文件复制到disks文件夹下 2)修改gem5/configs/commons/Benchmark.py,改掉img名称,这都是前面的文章中提...
  • u012822903
  • u012822903
  • 2017年03月21日 21:21
  • 702

升级gcc,glibc库途中遇到的各种问题

在互联网的世界中,总是会让人
  • u011037149
  • u011037149
  • 2014年08月04日 18:47
  • 6328

zedboard u-boot编译的心路历程

uboot的编译原本以为是一件容易的事情,没想到,这一路下来真心让人纠结,今天就吧这一过程记录下来吧。折腾了好长时间。必要环境首先是arm-xilinx交叉变异开发环境,没有的话可以参考我之前的博客,...
  • zccrazywinds
  • zccrazywinds
  • 2016年03月22日 15:10
  • 3228

使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器笔记(三)

第三部分 这几天实验室搬家,闹腾的,刚刚进入状态。 接着调试,客户端浏览器根据hls协议使用http在网页进行观看直播视频,期间遇到一些小问题,记录下。 1、昨天测试的时候,遇到一个情况,就是在...
  • xdwyyan
  • xdwyyan
  • 2015年02月04日 10:01
  • 2453

gem5全系统启动:FATAL: kernel too old

接上篇,换了自己的新disk image 1)把img文件复制到disks文件夹下 2)修改gem5/configs/commons/Benchmark.py,改掉img名称,这都是前面的文章中提...
  • u012822903
  • u012822903
  • 2017年03月21日 21:21
  • 702

gem5与Armv8模拟器的设计原理指导与使用指导

1. 几个非常重要的概念的理解: Armv,x86,alpha等是体系结构,三者是属于平级的东西,其他常见的体系结构还有mips,power,sparc等。   gem5与ARMv8之间的关系:...
  • yuyezhulan
  • yuyezhulan
  • 2014年06月08日 15:15
  • 1834

gem5模拟器使用介绍(一)

http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/ny_mg/article/details/40960835 ...
  • ztguang
  • ztguang
  • 2016年06月09日 16:34
  • 1094

基于gem5模拟trace的cache模拟器的实现

在做计算机体系结构的时候,模拟器是一个重要且又有效的工具。其中gem5集成了gem和m5的优点,使用起来比较简单和方便。其中包括了se模式和fs模式,se模式是在gem5运行我们已经编译好的程序,可以...
  • gaoxiang__
  • gaoxiang__
  • 2014年11月25日 22:54
  • 2381

gem5模拟器使用介绍(二)

http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/ny_mg/article/details/41047197 ...
  • ztguang
  • ztguang
  • 2016年06月09日 16:35
  • 484
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决gem5/m5 模拟器“kernel too old”错误
举报原因:
原因补充:

(最多只允许输入30个字)