accessory
发表于 2009-11-07 12:25
如果是真实的卡,那么复位时好像要延时一段时间。不过qemu虚拟的卡应该不用这么麻烦。
建议装个linux, compile qemu. 然后调试下qemu算啦。
sherf
发表于 2009-11-08 21:51
原帖由 accessory 于 2009-11-7 12:25 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
如果是真实的卡,那么复位时好像要延时一段时间。不过qemu虚拟的卡应该不用这么麻烦。
建议装个linux, compile qemu. 然后调试下qemu算啦。
对编译的过程能否详细一点......
注:
已下载qemu0.11.0的source包,在ubuntu的环境下进行编译安装,但感觉编译的太大(编译花了1个多小时),并且发现编译的过程是各种版本都进行编译(MIP,solaris等)。就我目前的调试,是不是只需要编译其中一种版本就行,如果是,那该编译哪个版本,怎么编译?(我已到网上找了一下,但发现大多是使用qemu进行系统安装、很少有涉及系统调试的,即使有但由于情况不太相似也没弄清怎么个编译/调试过程.....)
accessory
发表于 2009-11-09 01:12
To compile QEMU with just i386 and x86_64 support:
./configure --target-list=x86_64-linux-user,i386-linux-user,i386-softmmu,x86_64-softmmu
make -j2
make install
sherf
发表于 2009-11-09 15:41
原帖由 accessory 于 2009-11-9 01:12 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
To compile QEMU with just i386 and x86_64 support:
./configure --target-list=x86_64-linux-user,i386-linux-user,i386-softmmu,x86_64-softmmu
make -j2
make install
谢谢,已能较好的进行编译调试了。但是,以前的图形化界面没了(全部是字符终端输出),如果发现了问题要改动我自己的原程序,那怎样才能通过原来的图形化界面对我自己的程序(已改动)进行调试?
此外,accessory,你那有常用的调试介绍吗?(我进行了一下调试,打开了i8259.c中的调试模式,但是感觉输出的信息很多,如果要单独看11号引脚的设置该怎么看?是不是有些qemu自带的指令可以实现?)
sherf
发表于 2009-11-09 22:30
原帖由 sherf 于 2009-11-9 15:41 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
谢谢,已能较好的进行编译调试了。但是,以前的图形化界面没了(全部是字符终端输出),如果发现了问题要改动我自己的原程序,那怎样才能通过原来的图形化界面对我自己的程序(已改动)进行调试?
此外 ...
发送中断已能正确驱动了......但仍有一些问题:
1、之前提到的现在在ubuntu下出不来图形界面,只有终端输出
2、如何进行发包/收包调试(我已安装tap,配置好了br0,eth0,tap0,但不知道如何监测发了多少包,收了多少包,包的内容是什么等等。另,在可以成功发/收包的基础上,是否可以继续配置端口、IP之类的?)
accessory
发表于 2009-11-10 01:07
发送中断已能正确驱动了......但仍有一些问题:
怎么解决的?是哪里的问题?
1、之前提到的现在在ubuntu下出不来图形界面,只有终端输出
不明白你的意思。虚拟机的输出看不到?贴个图片来看看?
2、如何进行发包/收包调试(我已安装tap,配置好了br0,eth0,tap0,但不知道如何监测发了多少包,收了多少包,包的内容是什么等等。另,在可以成功发/收包的基础上,是否可以继续配置端口、IP之类的?)
如果只看收发包的个数,可以用TAP虚拟网卡的方式。然后在HOST 上。 ifconfig tap0. (假设你的虚拟网卡是连到TAP0上的)。如果想看包的内容,可以用TCPDUMP看TAP0的包。配置端口,IP之类的就要看你的上层协议(TCP/IP)有没有实现,怎么实现的了。
sherf
发表于 2009-11-10 01:42
原帖由 accessory 于 2009-11-10 01:07 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
发送中断已能正确驱动了......但仍有一些问题:
怎么解决的?是哪里的问题?
1、之前提到的现在在ubuntu下出不来图形界面,只有终端输出
不明白你的意思。虚拟机的输出看不到?贴个图片来看看?
2、如何 ...
对于1、
以下是ubuntu的终端输出,正常的情况应该会弹出一个图形化的界面(通常是黑底白字),但我这里并没有弹出这样的界面,以下的都是原来终端的输出
file:///F:/DOCUME%7E1/ADMINI%7E1.WWW/LOCALS%7E1/Temp/moz-screenshot.jpg
对于2、
其实我是想这样:
对于收包测试:我已通过PCI配置空间获得网卡的MAC地址,我想在ubuntu中另外开一个终端,针对这个MAC地址发包,然后在我的程序中启动收包,实时观察它收到多少包,包的内容是什么
对于发包测试:我想在我想在ubuntu中另外开一个终端,将我程序里发出来的包(根据ubuntu中的网卡MAC)进行接收并观察包的内容和数量。
不知道我目前的系统环境能否实现?
[ 本帖最后由 sherf 于 2009-11-10 01:52 编辑 ]
accessory
发表于 2009-11-10 05:13
图形界面应该出来的。你以前在这个UBUNTU机器上显示出来过图形界面没有?如果有,你是改了什么东西之后才变成显示不出来的么?
可以用SUDO命令启动QEMU. 我一般是在CENTOS上,用ROOT运行的。
对于2、
对于收包测试:我已通过PCI配置空间获得网卡的MAC地址,我想在ubuntu中另外开一个终端,针对这个MAC地址发包,然后在我的程序中启动收包,实时观察它收到多少包,包的内容是什么
可以。但是你想发什么包?PING? IP? TCP? HTTP? FTP? 如果是上层协议的包,但是你没有实现协议的话,应该发了1,2个包之后就失败。另外,你对TCP/IP或者上层的协议了解么?
对于发包测试:我想在我想在ubuntu中另外开一个终端,将我程序里发出来的包(根据ubuntu中的网卡MAC)进行接收并观察包的内容和数量。
前面已经说了,用TCPDUMP 看TAP0. 假设你TAP0设置好的话。你知道怎么用TAP0么?不知道可以自己GOOGLE下。
[ 本帖最后由 accessory 于 2009-11-10 05:15 编辑 ]
sherf
发表于 2009-11-10 12:04
原帖由 accessory 于 2009-11-10 01:07 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
发送中断已能正确驱动了......但仍有一些问题:
怎么解决的?是哪里的问题?
1、之前提到的现在在ubuntu下出不来图形界面,只有终端输出
不明白你的意思。虚拟机的输出看不到?贴个图片来看看?
2、如何 ...
accessory,
怎么解决的?是哪里的问题?
问题主要出在打开中断的时机不对,应该在 findirq 之前就打开中断(8259的第3个引脚,IRQ2,连接主、从片的那个引脚),而不是在 findirq 之后再打开。这个问题真的搞死人,你当初的判断是对的......
[ 本帖最后由 sherf 于 2009-11-10 12:07 编辑 ]
accessory
发表于 2009-11-10 13:16
sherf 老兄,你这是搞得公司的项目,还是学校的项目阿?真是辛苦阿。