免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1159 | 回复: 0
打印 上一主题 下一主题

使用kgdb调试 linux 2.6.33(arm,s3c2440) 停在 booting the kerenel不动了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-13 15:40 |只看该作者 |倒序浏览
使用kgdb调试 linux 2.6.33(arm,s3c2440) 停在 booting the kerenel不动了

先行谢过了。
-------------------------------------------------------------------------
开发板:
arm9 s3c2440
内核是 2.6.33

内核添加kgdb支持前的配置是:
使用内核自带的 2410的配置文件。
修改了makefile,
修改了主频 为12000000 。
为了一个错误还修改了内核的开发板硬件编号 使其和UBOOT传过来的机器代码相同。
还没有添加根文件系统的支持。

就做了这么简单的修改。这样在系统启动后会提示挂载根文件系统失败。但也证明内核起来

了。

内核是下载到内存中 bootm启动的。

------------------------------------------------------------------------


为了添加kgdb支持添加了下面的 内核编译选项(根据网上的前人配置的,应该是没错):
General setup
           -> Prompt for development and/or incomplete code/drivers


               
Kernel hacking -->
        Kernel debugging
        compile the kernel with debug info
        KGDG: kernel debugging with remote gdb -->
                KGDB: use kgdb over the serial console
其他都是默认,好多配置选线更没有找到,不过我相信是因为内核版本的问题。



------------------------------------------------------------------------------

内核启动参数:
经试验发现  内核源码的boot option那的内核启动参数会覆盖掉uboot的内核启动参数
所以我选择直接修改内核编译选项中的boot option

使用串口0

init=/linuxrc mem=64M kgdboc=ttySAC0,115200 kgdbwait

虽然没有根文件系统,没有init,加上这个参数应该没什么影响。


--------------------------------------------------------------------------------
host部分是 ubuntu 12.04  ,超级终端使用 gtkterm。


按道理,应该会内核启动的时候,显示 kgdb ...wait......

但是我的gtkterm 上显示 到 booting the kerenel ,就不往下走了。


------------------------------------------------------------------------------
各位看官能从我这描述中看到什么蛛丝马迹,我的kgdb为啥没起作用呢??


同时有下面结果几个问题:
1,如果我在内核启动参数上添加console=ttySAC0,115200,也就是说完整的是

init=/linuxrc mem=64M kgdboc=ttySAC0,115200 kgdbwait console=ttySAC0,115200

内核会跟上面没有添加kgdb支持的时候一样启动,到挂载根文件系统失败。
没有显示 kgdb  wait的字样。

我的理解是 kgdboc是 kgdboc 是kgdb over console的意思,既然添加了kgdboc参数,应该

就不需要console这个参数了吧,为什么添加上console之后会有变化呢。


2,我的内核配置是否有问题。有人做过 2.6.33 这个版本附近的内核调试么?

3,我是用的是kgdboc 就是说host的gdb和gtkterm(超级终端) 同时使用串口1.
   会不会是因为这个导致问题。如果gtkterm那开着。 gdb那就会提示错误信息,信息就是

说串口被占用。 但是我认为开发板和host是相互独立的,不管host那边如何。开发板那如果

配置正常了,就应该显示kgdb wait字样。

4,我曾经试着使用两个串口。但是不成功,经过试验,发现串口2没有被启用。linux默认情

况下(2440)串口不是都启用的么。为什么console=ttySAC2,115200不行呢。

5,我在网上搜索的时候,发现大部分的kgdb都是使用模拟器调试X86架构的kenrel的例子。

各位嵌入式的兄弟姐妹们调试ARM内核都是用printk么? 我这次之所以想调试下内核是因为

使用initramfs作为根文件系统的失败,解压完内核就卡住了,所以想试试kgdb。 (内核一

共 11.2MB)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP