ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:125.50KB ,
资源ID:2400509      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2400509.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(内核引导失败的常见问题解决办法.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

内核引导失败的常见问题解决办法.doc

1、内核引导常见问题 Kernel - Common Problems Booting Linux 作者:卢浩 时间: 2012.3.9 转载请注明出处 嵌入式爱好者开发群: 122879839 不少用户在尝试引导内核的时候,遇到了一些意外,内核的引 导在某一点突然中断,并且不能进行下去,有时候是有个软件的 bug导致的,而有时候可能是由于内核的错误的配置导致的,这篇文章是为开发者提供一些帮助来诊断为什么不能正常引导内核并且找出其中可能的原因。 问题 1:内核只引导到 “Starting Kernel.“,然后串口终端就没有输出了,举个例子: # Booting kernel from Legac

2、y Image at 80300000 . Image Name: Linux-2.6.31 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1750680 Bytes = 1.7 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum . OK Loading Kernel Image . OK OK Starting kernel . 到这里,串口终端就没有再输出任何信息了 . 以上的串口输出信息是 uboot 的引导过程,至于这个star

3、ting 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 set CONFIG_

4、OMAP_LL_DEBUG_UART3=y 你会看到串口 3是被设置为调试的串口。现在我们需要修改串口为默认的串口,在 make menuconfig下面 , “System Type TI OMAP Implementations Low-level debug console UART“.选择这个,这个就是默认用来调试的串口,修改完之后你应该就可以看到串口引导内核的输出信息了。 问题 2: 内核只引导到 “booting the kernel“,然后串口终端就没有输出了,举个例子: # Booting kernel from Legacy Image at 80300000 . Image

5、 Name: Linux-2.6.31 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1750680 Bytes = 1.7 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum . OK Loading Kernel Image . OK OK Starting kernel . Uncompressing Linux. . done, booting the kernel. 这种情况的发生可能有好几个原因,以下是常见的一些原因: 原因

6、1:串口控制台参数设置不正确,打个比方你用的是 TI的 omap3的 beagle-board 板子,其中 串口选择的是 UART3,那么串口的配置应该是 115200 波特率,数据位为 8,校验位为 0( none),流控制为 0( none)。因此,如果你的设置是正确的,你应该能够看到类似以下的信息: OMAP3 beagleboard.org # printenv bootargs bootargs=console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait 这个要区分大小写,确定你输入是正确的,而且没有空格。 在 linux-2.6.3

7、6 及更新的版本里,我们使用 ttyO2来代替 ttyS2,这是大写字母 O,不是阿拉伯数字 0. 为了避免这种错误,你可以使用 TI SDK 包里面的 /ezsdk/bin里面的脚本来设置 env变量。 原因 2:不匹配的 uboot和 kernel 的机器号 这里我就不用 TI 的翻译的了,我前阵子刚写过一篇关于机器号的文章,直接 copy过来就是了,大体意思和 TI的是差不多的。 我以前写过一篇关于设置 uboot 和 kernel 的机器号对应的问题。今天我才发现一个比较简单的方法。 一般可以完全不用那么麻烦改源码什么的。 当你 uboot 起来之后,在 uboot 状态下 。打个比方

8、啊 setenv machid 7d9 然后 saveenv 然后重启,我这里截个图 OK 了,我们会发现刚才输入的那个机器号是错的,系统并且提示我正确的可用的 id 号是 af0.然后再输入 setenv machid af0 saveenv 重启 如图 好了 . 原因 3:软件的 bug 如果以上的办法没能帮助你解决问题,那么你就要在内核的源码里做一些工作了,请在内核源码中使能 CONFIG_DEBUG_LL,来确定内核在哪里引导失败了,这个会打印更多的信息来帮助你确定内核到底在哪里出了问题。如果你没能取得进一步的发现,那么更多的信息可以帮助其他开发者来挖掘这个问题。 问题 3:在内核引导

9、成功之后没有信息输出。 举个例子: Sending DHCP requests .eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1 ., OK IP-Config: Got DHCP answer from 255.255.255.255, my address is 128.247.107.23 IP-Config: Complete: device=eth0, addr=128.247.107.23, mask=255.255.254.0, gw=128.247.106.2, host=128.247.107.23, domain=, nis-

10、domain=(none), bootserver=255.255.255.255, rootserver=128.247.107.35, rootpath= Looking up port of RPC 100003/2 on 128.247.107.35 Looking up port of RPC 100005/1 on 128.247.107.35 VFS: Mounted root (nfs filesystem). Freeing init memory: 136K init started: BusyBox v1.11.1 (2008-10-05 04:40:51 CDT) st

11、arting pid 288, tty : /etc/init.d/rcS System initialization. Hostname : OMAP3EVM Filesystem : v1.0.0 Kernel release : Linux 2.6.22.18-omap3 Kernel version : #12 Mon Oct 6 01:22:49 CDT 2008 Mounting /proc : SUCCESS Mounting /sys : SUCCESS Mounting /dev : SUCCESS Mounting /dev/pts : SUCCESS Enabling h

12、ot-plug : SUCCESS Populating /dev : SUCCESS Disabling Power mgmt : SUCCESS Turn off LCD after 1 hour : SUCCESS Mounting other filesystems : SUCCESS Starting syslogd : SUCCESS Starting telnetd : SUCCESS System initialization complete. Please press Enter to activate this console 这边的意思是让你按下 enter 键来激活控

13、制台 但是如果你没有看到以上的信息,你就无法输入 enter 来激活了,请看下 TI 的WIKI 关于文件系统的 制作http:/ 如果按照上面的来制作一个文件系统,那么你可以看到 /etc/inittab 这个文件下面有以下代码 ; :sysinit:/etc/init.d/rcS # /bin/ash # # Start an “askfirst“ shell on the serial port ttyS0:askfirst:-/bin/ash # Stuff to do when restarting the init process :restart:/sbin/init # Stuff to do before rebooting :ctrlaltdel:/sbin/reboot :shutdown:/bin/umount -a -r :shutdown:/sbin/swapoff -a 在这种情况下,请更正上面的 ttyS0 为 ttyS2。然后就 OK 了。这里 的 ttyS2 是调试串口,你要根据你实际情况进行配置。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。