搭环境这个事情我还真不是擅长,于是为保险期间,相关的组件用的较老,为以后的自己做个参考。
各软件版本:
jdk : jdk-6u45-linux-i586.bin
eclipse : eclipse-linuxtools-helios-SR1-incubation-linux-gtk.tar.gz
qemu : qemu-0.10.5
linux : 2.6.32.2
host : ubuntu 12.04 gcc 4.6.3
注:选择jdk的bin格式方便安装;elicpse选择对应的CPP版本问题好像也不大,但没有验证;
qemu选择的版本较低。
jdk安装:
直接运行bin并添加相应的环境变量。
点击(此处)折叠或打开
-
#set java env 20140118
-
JAVA_HOME=/home/yourname/java_install/jdk1.6.0_45
-
export JRE_HOME=$JAVA_HOME/jre
-
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
-
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
-
#set java env 20140118
输入java -version验证安装是否成功。
elicpse安装:
解压elicpse并直接运行elicpse可执行程序即可。
qemu安装:
之前需安装libncurses5-dev、libsdl-dev、zlib1g-dev。若没有相关的库注意看调试信息也能找到对应的名字。
这里选择的qemu是没有kvm支持的。若运行时出现没有kqemu的相关信息,qemu也是可以运行的,若实在
不喜欢,则在启动qemu命令的时候,加上--no-kqemu即可。
linux内核源码的编译:
具体参加文末引入的前人工作。下面仅对我根据这些文章未得到正确结果的情形和自己的调整方案做出说明。
1. 内核源码解开后,eclipse不能直接将工作建在这堆源码上,因为eclipse要创建工程中的.project文件等,
出现文件夹的名字重合了,故不能如此。因此,先建立工程,再将源码复制过去,最后进行
make O=/…/linux-2.6.32.2-obj menuconfig。
2. 在elicpse进行linux源码的编译时,有一个makefile中两个地方,应修改
-
In arch/x86/vdso/Makefile :
-
replace "-m elf_x86_64" by "-m64" on the line starting with VDSO_LDFLAGS_vdso.lds
-
replace "-m elf_x86" by "-m32" on the line starting with VDSO_LDFLAGS_vdso32.lds
后面有出现net相关的一个头文件中结构体定义有误,百度了一下可能是编译器和该内核版本不是完全匹配的问题,
而这里并不需要相关的网络功能,仅需阅读内核相关代码即可,故在make menuconfig中去掉了不需要的驱动。
3. 这里的编译用到了是eclipse自带的编译链,如果要用arm什么的,完全可以在shell下编译得到vmlinux、bzImage
后借助于eclipse的环境进行调试。
qemu启动内核:
在得到linux内核的vmlinux和bzImage后,如文末参考,进行相应的设置,但有两个地方需要注意。
1. 在qemu启动后,输入gdbserver tcp::1234出现can not open socket on port 1234,改为gdbserver 1234。
2. 在eclipse的debug configuration中,会发现没有connection标签,这是应该在debugger选项卡下方点击
select other, 并选择Using GDB(DSF) Remote System Precess Launcher,即可设置tcp的端口号了。
elicpse调试:
在qemu保证内核启动并在1234端口监听后,在eclipse中启动调试,时间确实较长,五六分钟肯定是有了。
参考前人的贡献:
jdk
http://blog.sina.com.cn/s/blog_9177c9540100uy7n.html
eclipse
http://blog.sina.com.cn/s/blog_9177c9540100uzt5.html
qemu
http://blog.sina.com.cn/s/blog_9177c9540100v04i.html
linux
http://blog.csdn.net/jinzhuojun/article/details/8638500
阅读(1869) | 评论(0) | 转发(0) |