Firstly - sorry, I know some people hate computer questions in GQ. But no Linux forums I tried could help here…
I’ve got an XP box running, connected to ADSL via USB. I’ve got a second crappy setup for the purpose of learning Linux without screwing up my main setup, on which I’ve installed Suse 8.2. I’ve connected the two via a crossover cable, and set up the XP end fine (as far as I can see, ie firewall allowing the network through, and shared internet connection).
I’ve set them up with IPs 192.168.0.1 and .0.2 - they can ping each other OK, but with a packet loss of 30-50%, which worries me. The Linux box can only access the internet at a glacial pace.
Is this likely to be a software or hardware problem? I’m using a new cable, but a s/h setup in the linux box, and a network connection on the XP box that is previously unused. How can I thoroughly test the connection between the two? And if this connection isn’t the problem, then does anyone have any other ideas?
I meant, hook some third device to one of your machines directly, set up your network appropriately so they can see each other, and ping to that third device. Now repeat with the other of your machines. If one has fine performance and the other doesn’t, try swapping out the network card.
It sounds like one possiblity is that the two network cards aren’t autonegotiating to the same duplex mode. One of them might be setting itself to half duplex (it can only talk, or receive, but not both at the same time) but the other is on full duplex (it can talk and listen at the same time). This would mean that sometimes it would work fine - when the full duplex card is only talking or listening, and the half duplex card is doing the opposite of that. Other times you’d see lots of packet loss.
I don’t know of an easy way of finding out what the duplex is set to in XP. In linux, try using “mii-tool” when logged in as root (I think Suse should have mii-tool, but I’m not toally sure). It should say something like (on one of my linux boxes):
eth0: negotiated 100baseTx-HD, link ok
This means that my network interface negotiated with my hub to be 100baseTx, Half Duplex. I really need to replace that thing with a proper switch that supports full duplex one of these days.
If I want to force it to be full duplex, I’d use the following command :
# mii-tool -F 100baseTx-FD
That setting works, but is flakey (loses some packets here and there) because of the crappy hub. That’s what I get for using a hub that the previous resident of my apartment left behind because it wasn’t worth the effort of packing it.
In XP you can force it to use a specific setting by going to Start->control panels->network connections->local area connection->properties->configure->advanced
There should be something like “Link Speed/Duplex Mode” and you can set the value on the right. Try setting both machines to the same setting, 100baseTx-HD would probably be safe, unless one of the machines only has a 10baseT connection. Then I’d try setting them both to be 10baseT-HD.
Or it might be something totally different. This is worth a shot though.
Thanks, buckgully, taking it down to 10baseT-HD has solved it! (and 10Mb is more than adequate for the purpose). Now how do I make these settings permanent in Linux?! (FYI, the settings in XP were a drop-down menu in the ‘advanced’ tab for the NIC setup)