Hallo kevin,
erst mal vielen Dank für die Antwort
Mir war gar nicht aufgefallen, dass CDI einen pcnet Treiber hat, ich hatte da nach am79c973 gesucht und nicht gefunden.
Da gucke ich auf jeden Fall mal rein, das hilft mir schon mal sehr weiter, danke
---
Wenn ich in der selben VM eine Linux Live-CD laufen lasse, funktioniert das problemlos. Da kann ich zB 10.0.2.3 pingen. Deshalb kann es m.E. nicht an der VM-Konfiguration liegen.
Dass keine Daten raus gehen, mache ich daran fest, dass der Chip keinen Interrupt mit (CSR0 & 0x0200)==0x0200 auslöst. (Der "Initialization Done" Interrupt kommt aber, also sind Interrupts eingeschaltet, also müsste der Interrupt kommen, wenn die Daten raus gehen würden). Solange der Ethernet-Frame nicht raus geht, ist es auch sinnlos, an den IP und ICMP Daten herum zu schrauben. Es kann also nur an der Ansteuerung oder dem Ethernet-Frame liegen.
Die MAC Adresse vom Gast-Rechner lese ich vom Chip aus (die stimmt auch mit der MAC Adresse überein, die in der VirtualBox Netzwerk-Konfiguration eingestellt ist). Die MAC Adresse von 10.0.2.3 habe ich in der Live-CD resolved und im Ethernet Frame hartkodiert, um vorerst kein ARP machen zu müssen. Ich bin allerdings nicht 100% sicher, ob die MAC Adresse richtig herum im Ethernet-Frame steht. Ich habe da keine Angabe drüber gefunden, ob die in little oder big endian kodiert sein muss (ich hab eh beides probiert...) - ich vermute, dass das least-significant byte an der niedrigsten Adresse stehen muss (little endian) und ifconfig schreibt die MAC Adresse ja auch von least significant byte zu most significant byte... Also wenn ich den Ethernet-Frame von niedrigster zu höchster Adresse dumpe, dann steht die MAC Adresse so da, wie ifconfig sie auch schreibt...
Der EtherType = 8 muss AFAIK little endian sein, also müsste das 08 00 im dump auch stimmen. Am Ethernet Frame könnte es jetzt also nur noch liegen, wenn die CRC32 manuell angefügt werden muss. Das versuche ich dann jetzt auch mal.
Die Ethernet-Frame Layer 1 Sachen (Preamble, Start-of-Frame Delimiter, Inter-Packet Gap) lasse ich wie gesagt weg - die sollten bei heutiger Netzwerk-Hardware eh überflüssig sein bzw. anderenfalls vom Chip übernommen werden (das sollte ich vielleicht mal in der Spezifikation nachlesen, ob er das tatsächlich tut...)
Ich bastele dann mal weiter...