编译kernel出现nomachinerecorddefined错误

编译kernel出现nomachinerecorddefined错误

ID:8871730

大小:17.05 KB

页数:4页

时间:2018-04-10

编译kernel出现nomachinerecorddefined错误_第1页
编译kernel出现nomachinerecorddefined错误_第2页
编译kernel出现nomachinerecorddefined错误_第3页
编译kernel出现nomachinerecorddefined错误_第4页
资源描述:

《编译kernel出现nomachinerecorddefined错误》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、编译kernel出现nomachinerecorddefined错误,网上有一些解法,其实都是错误的,以讹传讹。不打算自己写,找到一篇还算靠谱的,转摘一下。其根本原因是没有在__proc_info_end与__proc_info_begin之间找到有效的machineID。http://hi.baidu.com/rwen2012/item/9f5191c64036d87ecfd4f849在新的kernel2.6.29上编译不能通过,终端提示:arm-none-linux-gnueabi-ld:nomachinerecorddefined解决方法放狗搜后,按照如下方法可以解决。将arch/arm

2、/kernel/vmlinux.lds的最后两行(如下),给注释起来,但都没说是为了什么ASSERT((__proc_info_end-__proc_info_begin),"missingCPUsupport")ASSERT((__arch_info_end-__arch_info_begin),"nomachinerecorddefined")自己到arch/arm/kernel/vmlinux.lds里看的时候,才发现那两行的上头写着/*ThesemustneverbeemptyIfyouhavetocommentthesetwoassertstatementsout,yourbinut

3、ilsistooold(forotherreasonsaswell)*/ASSERT((__proc_info_end-__proc_info_begin),"missingCPUsupport")ASSERT((__arch_info_end-__arch_info_begin),"nomachinerecorddefined")我想可能不是我交叉编译器太旧的缘故,而是太新了!我用的是:SourceryG++Lite2009q1-126forARMGNU/Linux而官方是:SourceryG++Lite2008q1-126forARMGNU/Linux机器ID错误:现在注释后可以正常编译内

4、核了!替换新的内核文件,在boot后提示:uncompressinglinux.................................................然后再没有动静了,我想可能解压后给kernel传递参数时出现问题了吧。但是是什么参数可能出的问题就不晓得啦。在这里困住了好久!因为这句话啥都没提示!好歹有句话啊。。。。。。。。经过多方搜索,发现了一个调试技巧,嘿嘿嘿,一般人我不告诉他!那就是下面解决方法中提到的设置Kerneldebugging,设置后,再重启启动内核就会出现详细的问题说明。因为内核启动时首先进入SVC模式,关闭中断,并machineID,如果uboot

5、传输过来的machineID跟编译的内核machineID不一致,那就就咯屁了。具体表现为:啥反应都没有!解决方法:1)。执行makexconfig在配置中进入Kernelhacking,打开Kerneldebugging和Kernellow-leveldebuggingfunctions.选中这两项的目的是打印出调试信息,重新makeuImageStartingkernel...UncompressingLinux..........................................................................................

6、.done,bootingthekernel.Error:unrecognized/unsupportedmachineID(r1=0x000007d1).Availablemachinesupport:ID(hex)NAME罓?0009Pleasecheckyourkernelconfigand/orbootloader.终于看到阻在这里的原因啦,是机器ID错误,别人的机器ID错误至少有个NAME值啊,我的咋为空呢?2)是不是没有注册机器ID?猜测。这一步保证系统支持的ID里面含有devkit8000!makexconfig发现systemtype菜单下面没有devkit的选项,肯定是哪里的

7、配置文件还没有添加,经过分析,找到了/kernel/arch/arm/mach-omap2/Kconfig文件,在末尾配置添加了devkit8000支持。configMACH_OMAP3_BEAGLEbool"OMAP3BEAGLEboard"dependsonARCH_OMAP3&&ARCH_OMAP34XXconfigMACH_OMAP3_DEVKIT8000bool"OMAP3DEVKIT8

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。