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 老兄,你这是搞得公司的项目,还是学校的项目阿?真是辛苦阿。
页: 1 2 3 4 [5] 6 7 8 9
查看完整版本: RTL8139 programming guide