内核引导失败的常见问题解决办法.doc_第1页
内核引导失败的常见问题解决办法.doc_第2页
内核引导失败的常见问题解决办法.doc_第3页
内核引导失败的常见问题解决办法.doc_第4页
内核引导失败的常见问题解决办法.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内核引导常见问题Kernel - Common Problems Booting Linux 作者:卢浩 时间:2012.3.9 转载请注明出处 嵌入式爱好者开发群:122879839 不少用户在尝试引导内核的时候,遇到了一些意外,内核的引导在某一点突然中断,并且不能进行下去,有时候是有个软件的bug导致的,而有时候可能是由于内核的错误的配置导致的,这篇文章是为开发者提供一些帮助来诊断为什么不能正常引导内核并且找出其中可能的原因。问题1:内核只引导到Starting Kernel.,然后串口终端就没有输出了,举个例子:# Booting kernel from Legacy Image at 80300000 .Image Name: Linux-2.6.31Image Type: ARM Linux Kernel Image (uncompressed)Data Size: 1750680 Bytes = 1.7 MBLoad Address: 80008000Entry Point: 80008000Verifying Checksum . OKLoading Kernel Image . OKOKStarting kernel .到这里,串口终端就没有再输出任何信息了.以上的串口输出信息是uboot的引导过程,至于这个starting kernel其实是uboot阶段输出最后的一句信息,这时候正准备进入内核引导。这个错误一般由于错误的配置debug串口导致的,你可以检验下你内核配置的时候,你所配置的串口输出端口是多少。打个比方,你用的是TI的omap3的beagle-board板子,其中UART3被用来输入调试信息,那么你打开linux-2.6.37(打个比方是这个版本的内核)下的.config文件,你会看到以下信息:# CONFIG_OMAP_LL_DEBUG_UART1 is not set# CONFIG_OMAP_LL_DEBUG_UART2 is not setCONFIG_OMAP_LL_DEBUG_UART3=y你会看到串口3是被设置为调试的串口。现在我们需要修改串口为默认的串口,在make menuconfig下面,System Type - TI OMAP Implementations - Low-leveldebug console UART.选择这个,这个就是默认用来调试的串口,修改完之后你应该就可以看到串口引导内核的输出信息了。问题2:内核只引导到booting the kernel,然后串口终端就没有输出了,举个例子:# Booting kernel from Legacy Image at 80300000 .Image Name: Linux-2.6.31Image Type: ARM Linux Kernel Image (uncompressed)Data Size: 1750680 Bytes = 1.7 MBLoad Address: 80008000Entry Point: 80008000Verifying Checksum . OKLoading Kernel Image . OKOKStarting kernel .Uncompressing Linux. done, booting the kernel.这种情况的发生可能有好几个原因,以下是常见的一些原因:原因1:串口控制台参数设置不正确,打个比方你用的是TI的omap3的beagle-board板子,其中串口选择的是UART3,那么串口的配置应该是 115200波特率,数据位为8,校验位为0(none),流控制为0(none)。因此,如果你的设置是正确的,你应该能够看到类似以下的信息:OMAP3 # printenv bootargsbootargs=console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait这个要区分大小写,确定你输入是正确的,而且没有空格。在linux-2.6.36及更新的版本里,我们使用ttyO2来代替ttyS2,这是大写字母O,不是阿拉伯数字0.为了避免这种错误,你可以使用TI SDK包里面的/ezsdk/bin里面的脚本来设置env变量。原因2:不匹配的uboot和kernel的机器号这里我就不用TI的翻译的了,我前阵子刚写过一篇关于机器号的文章,直接copy过来就是了,大体意思和TI的是差不多的。我以前写过一篇关于设置uboot和kernel的机器号对应的问题。今天我才发现一个比较简单的方法。一般可以完全不用那么麻烦改源码什么的。当你uboot起来之后,在uboot状态下。打个比方啊setenv machid 7d9然后saveenv 然后重启,我这里截个图 OK了,我们会发现刚才输入的那个机器号是错的,系统并且提示我正确的可用的id号是af0.然后再输入setenv machid af0saveenv重启如图好了.原因3:软件的bug如果以上的办法没能帮助你解决问题,那么你就要在内核的源码里做一些工作了,请在内核源码中使能CONFIG_DEBUG_LL,来确定内核在哪里引导失败了,这个会打印更多的信息来帮助你确定内核到底在哪里出了问题。如果你没能取得进一步的发现,那么更多的信息可以帮助其他开发者来挖掘这个问题。问题3:在内核引导成功之后没有信息输出。举个例子:Sending DHCP requests .eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1., OKIP-Config: Got DHCP answer from 55, my address is 3IP-Config: Complete:device=eth0, addr=3, mask=, gw=,host=3, domain=, nis-domain=(none),bootserver=55, rootserver=5, rootpath=Looking up port of RPC 100003/2 on 5Looking up port of RPC 100005/1 on 5VFS: Mounted root (nfs filesystem).Freeing init memory: 136Kinit started: BusyBox v1.11.1 (2008-10-05 04:40:51 CDT)starting pid 288, tty : /etc/init.d/rcSSystem initialization.Hostname : OMAP3EVMFilesystem : v1.0.0Kernel release : Linux 8-omap3Kernel version : #12 Mon Oct 6 01:22:49 CDT 2008Mounting /proc : SUCCESSMounting /sys : SUCCESSMounting /dev : SUCCESSMounting /dev/pts : SUCCESSEnabling hot-plug : SUCCESSPopulating /dev : SUCCESSDisabling Power mgmt : SUCCESSTurn off LCD after 1 hour : SUCCESSMounting other filesystems : SUCCESSStarting syslogd : SUCCESSStarting telnetd : SUCCESSSystem initialization complete.Please press Enter to activate this console这边的意思是让你按下enter键来激活控制台但是如果你没有看到以上的信息,你就无法输入enter来激活了,请看下TI的WIKI关于文件系统的制作/index.php/Creating_a_Root_File_System_for_Linux_on_OMAP35x#Configure_the_New_Target_Root_File_System如果按照上面的来制作一个文件系统,那么你可以看到/etc/inittab这个文件下面有以下代码;:sysinit:/etc/init.d/rcS# /bin/ash# Start an askfirst shell on the serial portttyS0:askfirst:-/bin/ash# Stuff to do when restarting th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论