摘要: 1、安装内核 如果内核已经安装(/usr/src/目录有linux子目录),跳过 如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号), 比如RedHat linux的RPMS目录是/RedHat/RPMS/目录,然后使用命令rpm -ivh kernel-source-2.xx.xx.rpm安装内核 如果没有安装盘,可以去各linux厂家站点或者www.kernel.org下载。2、清除从前编译内核时残留的.o 文件和不必要的关联 cd /usr/src/编译的版本 make mrproper... 阅读全文
posted @ 2013-09-28 16:27 学会淡定 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 在linux的内核空间中,大部分嵌入式芯片都不支持内核空 间的KGDB调试。通常在内核中死掉的话,可以根据死机地址再加反汇编,或者是addr2line找到死机的函数或者是那一行,但是对于动态插入的模块却不行。这是因为,内核在编译的时候就把地址链接好了,运行的时候代码段的地址空间在链接的时候就决定了。但是,对于模块来说的话,在insmod的时候, 内核是动态的分配一段内存,在这段内存中完成模块和内核的链接,并决定该模块运行时的模块代码段、数据段,等等。而且模块文件本质就是一个目标文件,当然 他比普通的目标文件还含有更多一些帮助模块装载的东西。这样,我们如果在运行的时候死机在模块中的话,即使内核. 阅读全文
posted @ 2013-09-28 15:44 学会淡定 阅读(797) 评论(0) 推荐(0) 编辑