昨天搭建好了调试内核的环境,要想在此基础上改为模块的调试环境,initrd必须能够挂得上最终的根文件系统
(要的是能够运行起scp的环境,得有网络协议栈;能运行insmod命令的命令行环境)。
解决办法是:
不去尝试将initrd的功能做得足够强大,使最终能挂起磁盘上的根文件系统。 而是采用了一种投机取巧的办法:
-----------------------------------------------
在CentOS上:
make menuconfig : 按照文档配置
make : 编译
make install : 安装
搭建模块的调试环境,目标机这边的任务就算完成了。
-----------------------------------------------
说明:
之所以说这是一种投机取巧的办法,是因为如果调试的是一个在没有开发能力的嵌入式设备上运行的内核或模块,
那这种方法显然行不通。 如果是嵌入式的话,只能壮大这个临时的根文件系统,达到能替代磁盘根文件系统的
程度。
(上述方法搭建的环境仅适合于调试X86平台的内核和模块。)
后续:
本以为这样就搞定了,但调试的内核出现了段错误,内核出现了个bug。人品问题?!
阅读(903) | 评论(0) | 转发(0) |