cannot set full-duplex!
I have a 3com boomerang combo nic with AUI/TP/BNC ports that I can only run in half-duplex (kernel-2.6.22-17.tex2). I would appreciate if someone could help me to get this working...
I have tried every thinkable fashion to enable full-duplex, but without success.
# ethtool -s eth0 duplex full
# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised auto-negotiation: No
Current message level: 0x00000001 (1)
Link detected: yes
#rmmod 3c59x && modprobe 3c59x full_duplex=1
after the following command dmesg says:
eth0: setting full-duplex
but again ethtool says it is half-duplex,
Using the default interface 'eth0'.
Basic registers of MII PHY #0: 0000 ffff 0000 ffff 0000 ffff 0000 ffff.
The autonegotiated capability is 0000.
No common media type was autonegotiated!
This is extremely unusual and typically indicates a configuration error.
Perhaps the advertised capability set was intentionally limited.
Basic mode control register 0x0000: Auto-negotiation disabled, with
Speed fixed at 10 mbps, half-duplex.
Basic mode status register 0xffff ... ffff.
Link status: established.
Remote fault detected!
*** Link Jabber! ***
Your link partner advertised ffff: Flow-control 100baseT4 100baseTx-FD 100baseTx 10baseT-FD 10baseT, w/ 802.3X flow control.
End of basic transceiver information.
In freebsd I can set my nic to full-duplex without any problems, so I can only suspect that the kernel is broken?
What is the other end set to?
Have you verified this?
Why don't you set auto-negotiation on both ends and see what happens?
The other end is an a-link rr44 adsl-router. I have tried to set it to autosense, 10 full and 100 full but it hasn't had any effect whatsoever. I just can't seem to change any option in 3c59x driver. ethtool -s eth0 autoneg on speed 100 duplex full prints nothing to the console, dmesg doesn't show any output and all the rest of the commands such as ethtool -g eth0 return someting like xxx parameter for eth0:
Cannot get device xxx settings: Operation not supported
You either set autoneg on or lock it down, not both.
Do you have another device that you could connect to this device to check which one is not working as expected?
Booted Freebsd and ran ifconfig xl0 media utp mediaopt full-duplex and it worked. ifconfig shows that xl0 is in 10baseT full-duplex mode.
mii-tool --force=10baseT-FD, ethtool -s eth0 autoneg on tried. Nothing works, the problem is in the kernel or the associated utilities?
Only solution I can think of is to dig an old Redhat Linux 7.0 install cd from my archives, install it and see if it can put my nic full duplex mode...??
Still there lazydog?
I finally gave up getting this nic to work like I want it to...
anyway I suspect it might be some acpi related bug since when I boot the kernel floods my screen with message like pci_set_power_state(): 0000:00:0a.0: state=3, current state=5
the following line also is in the kernel output (don't know if it is of any importance) ACPI: PCI Interrupt 0000:00:0a.0[A] -> GSI 17 (level, low) -> IRQ 16
anyway, I'll use it as it is for now. It is anyway very dated hardware and I need to upgrade anyway...