China Open source community
站内导航:

 
 
 
当前位置: 首页 >> 开源操作系统 >> lkcd在Linux 2.6.9 安装指南
 

lkcd在Linux 2.6.9 安装指南

作者:flyboy      来源:zz     发表时间:2006-08-28     浏览次数:      字号:    

内容摘要 Linux Kernel Crash Dump

这几天调试kernel bug总是觉得不顺手,想找一些比较好的调试方法。 用了lkcd(Linux Kernel Crash Dump)感觉真的不错.

安装环境
OS: Debian testing, linux-2.6.16.18
gcc: gcc (GCC) 4.0.4 20060507 (prerelease) (Debian 4.0.3-3)

安装步骤:
1。下载软件包, linux-2.6.9.tar.bz2, lkcd-6.1.0_2.6.9.patch.gz和lkcdutils-6.1.0.tar.gz
下载地址:http://lkcd.sourceforge.net/

2. 给kernel 打patch
patch -p1 < lkcd-6.1.0_2.6.9.patch

3。编译内核
由于使用的是4.0的gcc,编译除了不少错,具体错误和解决办法可以看附录1。


4.安装lkcdutils
按照http://lkcd.sourceforge.net/doc/lkcd_tutorial.pdf中的步骤
在安装lkcdutils过程中除了不少错误,安装了libelfg0-dev之后好像就好了

5./sbin/lkcd config
报gethostbyname错
看了不少文档,最后发现是配置错了,
最后配置文件如下:
/etc/sysconfig/dump
DUMP_ACTIVE="1"
DUMPDEV="/dev/vmdump"
DUMPDIR="/var/log/dump"
DUMP_LEVEL="2"
DUMP_COMPRESS="2"
DUMP_FLAGS="0x80000000"
DUMP_SAVE="1"
PANIC_TIMEOUT="5"
BOUNDS_LIMIT=10
KEXEC_IMAGE=/boot/vmlinuz
KEXEC_CMDLINE="root console=tty0"
TARGET_HOST="localhost"
TARGET_PORT=6688
SOURCE_PORT=6688


附录1 使用gcc4编译2.6.9。
drivers/char/sx.c:2371: warning: passing argument 1 of 'readl' makes pointer from integer without a cast
drivers/char/sx.c:2374: warning: passing argument 2 of 'writel' makes pointer from integer without a cast
  CC [M]  drivers/char/generic_serial.o
drivers/char/generic_serial.c:37: error: static declaration of 'gs_debug' follows non-static declaration
include/linux/generic_serial.h:95: error: previous declaration of 'gs_debug' was here
drivers/char/generic_serial.c: In function 'gs_init_port':
drivers/char/generic_serial.c:920: warning: pointer targets in assignment differ in signedness
make[2]: *** [drivers/char/generic_serial.o] Error 1
make[1]: *** [drivers/char] Error 2
make: *** [drivers] Error 2
[root@debian-server linux-2.6.9]$

删除include/linux/generic_serial.h:95的 static


  CC [M]  drivers/char/scx200_gpio.o
In file included from drivers/char/scx200_gpio.c:17:
include/linux/scx200_gpio.h: In function 'scx200_gpio_set_high':
include/linux/scx200_gpio.h:48: warning: pointer targets in passing argument 2 of 'set_bit' differ in signedness
include/linux/scx200_gpio.h: In function 'scx200_gpio_set_low':
include/linux/scx200_gpio.h:59: warning: pointer targets in passing argument 2 of 'clear_bit' differ in signedness
include/linux/scx200_gpio.h: In function 'scx200_gpio_set':
include/linux/scx200_gpio.h:71: warning: pointer targets in passing argument 2 of 'set_bit' differ in signedness
include/linux/scx200_gpio.h:73: warning: pointer targets in passing argument 2 of 'clear_bit' differ in signedness
include/linux/scx200_gpio.h: In function 'scx200_gpio_change':
include/linux/scx200_gpio.h:83: warning: pointer targets in passing argument 2 of 'change_bit' differ in signedness
  GEN     drivers/eisa/devlist.h
  CC      drivers/eisa/eisa-bus.o
cc1: warnings being treated as errors
drivers/eisa/eisa-bus.c:421: warning: pointer targets in initialization differ in signedness
drivers/eisa/eisa-bus.c:422: warning: pointer targets in initialization differ in signedness
make[2]: *** [drivers/eisa/eisa-bus.o] Error 1
make[1]: *** [drivers/eisa] Error 2

去掉isa的编译

In file included from drivers/i2c/algos/i2c-algo-bit.c:31:
include/linux/i2c.h:58: error: array type has incomplete element type
include/linux/i2c.h:205: error: array type has incomplete element type
drivers/i2c/algos/i2c-algo-bit.c: In function 'sendbytes':
drivers/i2c/algos/i2c-algo-bit.c:337: warning: pointer targets in initialization differ in signedness
drivers/i2c/algos/i2c-algo-bit.c: In function 'readbytes':
drivers/i2c/algos/i2c-algo-bit.c:370: warning: pointer targets in initialization differ in signedness
make[3]: *** [drivers/i2c/algos/i2c-algo-bit.o] Error 1
make[2]: *** [drivers/i2c/algos] Error 2
make[1]: *** [drivers/i2c] Error 2
make: *** [drivers] Error 2
[root@debian-server linux-2.6.9]$

修改代码
struct i2c_msg msg[]
改成
struct i2c_msg *msg
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=4721240



  CC [M]  drivers/video/aty/atyfb_base.o
In file included from drivers/video/aty/atyfb_base.c:59:
include/linux/fb.h:751: error: array type has incomplete element type
In file included from drivers/video/aty/atyfb_base.c:69:
drivers/video/aty/atyfb.h: In function 'aty_ld_le32':
drivers/video/aty/atyfb.h:136: warning: passing argument 1 of 'readl' makes pointer from integer without a cast
drivers/video/aty/atyfb.h: In function 'aty_st_le32':
drivers/video/aty/atyfb.h:150: warning: passing argument 2 of 'writel' makes pointer from integer without a cast
drivers/video/aty/atyfb.h: In function 'aty_ld_8':
drivers/video/aty/atyfb.h:162: warning: passing argument 1 of 'readb' makes pointer from integer without a cast
drivers/video/aty/atyfb.h: In function 'aty_st_8':
drivers/video/aty/atyfb.h:176: warning: passing argument 2 of 'writeb' makes pointer from integer without a cast
make[3]: *** [drivers/video/aty/atyfb_base.o] Error 1
make[2]: *** [drivers/video/aty] Error 2
make[1]: *** [drivers/video] Error 2
make: *** [drivers] Error 2


去除frame buffer的编译



drivers/dump/dump_overlay.c:424: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigne
d int'
drivers/dump/dump_overlay.c: In function 'dump_passthru_add_data':
drivers/dump/dump_overlay.c:791: error: 'struct page' has no member named 'count'
make[2]: *** [drivers/dump/dump_overlay.o] Error 1
make[1]: *** [drivers/dump] Error 2


drivers/dump/dump_overlay.c:424: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigne
d int'
drivers/dump/dump_overlay.c: In function 'dump_passthru_add_data':
drivers/dump/dump_overlay.c:791: error: invalid type argument of '->'
make[2]: *** [drivers/dump/dump_overlay.o] Error 1
make[1]: *** [drivers/dump] Error 2
make: *** [drivers] Error 2


注视掉了这一行:

//printk("Page count 0x%x\n", page_count(page->count));

编辑 webmaster

 
 
 
评论
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •  
    中国源码网 - WWW.YUANMA.ORG - 中国开放源代码社区