我这里有一个简单的类UNIX内核:= http://www.oxkernel.com/download.html

我们尝试添加LWIP TCP / IP堆栈 . 我试图在Linux下的QEMU中运行它 .

这是QEMU的命令行:=

emu-system-i386 -fda vmox.img -net nic,model = ne2k_isa -net user -net dump -redir tcp:7777 :: 7777

这运行并达到TCP堆栈表明已 Build 连接的程度 . 但是,它实际上阻止了等待响应 .

我尝试在该端口(7777)和主机操作系统上运行一个简单的客户端,我能够捕获数据包 .

tcpdump具有以下输出:=

tcpdump -nnxr qemu-vlan0.pcap reading from file qemu-vlan0.pcap, link-type EN10MB (Ethernet) 05:04:20.600573 ARP, Request who-has 10.0.2.15 tell 10.0.2.2, length 28 0x0000: 0001 0800 0604 0001 5255 0a00 0202 0a00 0x0010: 0202 0000 0000 0000 0a00 020f 05:04:26.572629 ARP, Request who-has 10.0.2.15 tell 10.0.2.2, length 28 0x0000: 0001 0800 0604 0001 5255 0a00 0202 0a00 0x0010: 0202 0000 0000 0000 0a00 020f

但是,我们永远不会脱离已 Build 的连接等待(它等待信号量完成,只有在有正确的TCP输入时才会发生) .

我相信ne2000驱动程序没有从网卡获取任何数据 .

我有iobase为0xC000并且我在除了PIT IRQ之外的每个IRQ上注册了驱动程序 . 我仍然没有数据 . 我甚至从计时器调用isr并轮询它,我仍然没有数据 .

我试过ne2k_pci和ne2k_isa设备,但仍然没有数据 . ne2k驱动程序基于以下代码:=

https://github.com/dreamcat4/lwip/blob/master/contrib/ports/old/ti_c6711/netif/ne2kif.c

有人可以帮我吗 ?谢谢