版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内核引导常见问题Kernel-CommonProblemsBootingLinux作者:卢浩时间:2012.3.9转载请注明由处嵌入式爱好者开发群:122879839不少用户在尝试引导内核的时候,遇到了一些意外,内核的引导在更一点突然中断,并且不能进行下去,有时候是有个软件的bug导致的,而有时候可能是由于内核的错误的配置导致的,这篇文章是为开发者提供一些帮助来诊断为什么不能正常引导内核并且我由其中可能的原因。问题1:内核只引导到StartingKernel.,然后串口终端就没有输出了,举个例子:#BootingkernelfromLegacyImageat80300000.ImageName
2、:Linux-2.6.31ImageType:ARMLinuxKernelImage(uncompressed)DataSize:1750680Bytes=1.7MBLoadAddress:80008000EntryPoint:80008000VerifyingChecksum.OKLoadingKernelImage.OKOKStartingkernel.到这里,串口终端就没有再输由任何信息了.以上的串口输由信息是uboot的引导过程,至于这个startingkernel其实是uboot阶段输由最后的一句信息,这时候正准备进入内核引导。这个错误一般由于错误的配置debug串口导致的,你可以检
3、验下你内核配置的时候,你所配置的串口输由端口是多少。打个比方,你用的是TI的omap3的beagle-board板子,其中UART3被用来输入调试信息,那么你打开linux-2.6.37(打个比方是这个版本的内核)下的.config文件,你会看到以下信息:#CONFIG_OMAP_LL_DEBUG_UART1isnotset#CONFIG_OMAP_LL_DEBUG_UART2isnotsetCONFIG_OMAP_LL_DEBUG_UART3=y你会看到串口3是被设置为调试的串口。现在我们需要修改串口为默认的串口,在makemenuconfig下面,SystemType-TIOMAPImpl
4、ementations-Low-leveldebugconsoleUART.选择这个, 这个就是默认用来调试的串口, 修改完之后你应该就可以看到串口引导内核的输生信息了。问题2:内核只引导到bootingthekernel,然后串口终端就没有输出了, 举个例子:#BootingkernelfromLegacyImageat80300000.ImageName:Linux-2.6.31ImageType:ARMLinuxKernelImage(uncompressed)DataSize:1750680Bytes=1.7MBLoadAddress:80008000EntryPoint:800080
5、00VerifyingChecksum.OKLoadingKernelImage.OKOKStartingkernel.UncompressingLinuxdone,bootingthekernel.这种情况的发生可能有好几个原因,以下是常见的一些原因:原因1:串口控制台参数设置不正确, 打个比方你用的是TI的omap3的beagle-board板子, 其中串口选择的是UART3那么串口的配置应该是115200波特率, 数据位为8,校验位为0(none),流控制为0(none)。因此,如果你的设置是正确的,你应该能够看到类似以下的信息:OMAP3#printenv
6、bootargsbootargs=console=ttyS2,115200n8root=/dev/mmcblk0p2rwrootwait这个要区分大小写,确定你输入是正确的,而且没有空格。在linux-2.6.36及更新的版本里,我们使用ttyO2来代替ttyS2,这是大写字母O,不是阿拉伯数字0.为了避免这种错误, 你可以使用TISD龟里面的/ezsdk/bin里面的脚本来设置env变量。原因2:不匹配的uboot和kernel的机器号这里我就不用TI的翻译的了,我前阵子刚写过一篇关于机器号的文章,直接copy过来就是了,大体意思和TI的是差不多的。我以前写过一篇关于设置uboot和kern
7、el的机器号对应的问题。今天我才发现一个比较简单的方法。一般可以完全不用那么麻烦改源码什么的。当你uboot起来之后,在uboot状态下。打个比方啊setenvmachid7d9然后saveenv然后重启,我这里截个图MMC:OHAPSD/MMC:0Net:DetectedMACID:64:7b:d4:64:88:7aEthernetPHY:GEWKRICDxOlDaVinciEMACHitanykeyto日topautokioot:0TI8163_EVM#setenvmachid7d9TIBieB2EVM#boot-m#Bootingkerne1fromLegacyImageat810000
8、00.ImsgeNamerLinvx-2.6.37linageType:ARMLinuxKernellinage(uncompressedDat-aSize:228324Bytes=2.3MiBLoadAddress:eooosaooEntryPoint:BOOOSGOOVerifyingChecksum.OKLoadingKernellinage.,OKOKUsingmachidOx7已9ftoitienviroiwentStartingkernel*.UncortipressingLinux.done,bootingthekernelError::unrecognized/unsuppor
9、tedmachineID(rl工0 x000007d9).Availabiemachinesupport:ID(hexJ.NOEOOOOOaf019IfiSevmPleaseCheckyourkernelconfigand/orbootloader*OK了,我们会发现刚才输入的那个机器号是错的,系统并且提示我正确的可用的id号是af0.然后再输入setenvmachidaf0saveenv重启如图MMC:CHAPSD/MMC:0Net:DetectetiMACID:64:7b:d4:64:86:7aEthernetPHY:GENERICOxDlDaVinciEMACHit-anykeytost
10、opauroboot:OTI8168_EVM#bootm珞甘BootingkernelfromLegacylinageatS1000000.ImageName;Linux-2,6.37工maguType:ARMLinuKernellinage(uncompressed)DatwSize:242B324Bytes-2.3MiBLoadAddress:90008000EntryPoint!30003000VerifyinChecksum*OKLoadingKerne1linage.OKOKUsingimachidOxaf0frottienviromtientStartingkernel,“.Unc
11、ompressingLmux.donerbootingthekerne1-好了原因3:软件的bug如果以上的办法没能帮助你解决问题,那么你就要在内核的源码里做一些工作了,请在内核源码中使能CONFIG_DEBUG集确定内核在哪里引导失败了,这个会打印更多的信息来帮助你确定内核到底在哪里出了问题。如果你没能取得进一步的发现,那么更多的信息可以帮助其他开发者来挖掘这个问题。问题3:在内核引导成功之后没有信息输出。举个例子:SendingDHCFTequests.eth0:linkup,100Mbps,full-duplex,Ipa0 xCDE1.,OKIP-Config:GotDHCPanswer
12、from55,myaddressis3IP-Config:Complete:device=eth0,addr=3,mask=,gw=,host=3,domain=,nis-domain=(none),bootserver=55,rootserver=5,rootpath=LookingupportofRPC100003/2on5LookingupportofRPC
13、100005/1on5VFS:Mountedroot(nfsfilesystem).Freeinginitmemory:136Kinitstarted:BusyBoxv1.11.1(2008-10-0504:40:51CDT)startingpid288,tty:/etc/init.d/rcSSysteminitialization.Hostname:OMAP3EVMFilesystem:v1.0.0Kernelrelease:Linux8-omap3Kernelversion:#12MonOct601:22:49CDT2008Mounting/pro
14、c:SUCCESSMounting/sys:SUCCESSMounting/dev:SUCCESSMounting/dev/pts:SUCCESSEnablinghot-plug:SUCCESSPopulating/dev:SUCCESSDisablingPowermgmt:SUCCESSTurnoffLCDafter1hour:SUCCESSMountingotherfilesystems:SUCCESSStartingsyslogd:SUCCESSStartingtelnetd:SUCCESSSysteminitializationcomplete.PleasepressEntertoactivatethisconsole这边的意思是让你按下enter键来激活控制台但是如果你没有看到以上的信息,你就无法输入enter来激活了,请看下TI的WIKI关于文件系统的制作http:/ StartanaskfirstshellontheserialportttyS0:askfirst
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年生活垃圾焚烧发电项目资金申请报告代可行性研究报告
- 聚氨酯项目财务管理手册
- 系统集成项目管理工程师模拟题+答案
- 初中体育与健康 足球 脚内侧传接球技术 教案
- 2024年防火胶项目资金筹措计划书代可行性研究报告
- 北师大版八年级数学下册5.4 分式方程第1课时分式方程的概念 同步教学设计
- 第二章 田径-田径接力跑(上挑式) 教案 人教版初中体育与健康七年级全一册
- 黑龙江省哈尔滨市第六中学2025届高三下学期第一次质检化学试题试卷含解析
- 北师大版数学八年级下册4.3.1 运用平方差公式因式分解教案
- DB14-T 789-2023 玉米生物降解地膜波浪形覆盖沟播技术规程
- 办公区域维修方案
- 2024-2025年秋季第一学期学校主题班会安排表+小学2024-2025第一学期主题班会课安排表
- 电工外包协议书模板范本
- 举办铁人项比赛行业五年发展洞察报告
- 加速康复外科ERAS围术期运动康复训练 2
- 2025届新高考语文冲刺热点复习:词语的意义与用法
- 第七单元、数学广角-植树问题 (课件) -2024-2025学年五年级上册数学人教版
- 长效(锌溴)无衰减液流储能电站项目建议书
- 2024-2030年中国木寡糖(XOS)行业市场发展趋势与前景展望战略分析报告
- 发表看法:社交媒体分享热潮 讲义 高二下学期期末联考英语试题
- 2024年山东省青岛市中考英语试卷附答案
评论
0/150
提交评论