[ltp] T61: ipw3945 speed limited to 256 kbit/s?
Richard Neill
linux-thinkpad@linux-thinkpad.org
Thu, 09 Aug 2007 21:14:59 +0100
Marius Gedminas wrote:
> Yesterday I bought a Lenovo T61. Today I'm about halfway through
> configuring Ubuntu Gutsy on it (pain pain pain).
>
> The worst problem at the moment is wireless speed: it seems to be
> limited to 32 kilobytes per second. Ouch. iwconfig eth1 shows
> "Bit Rate:54 Mb/s". The card is an Intel 3945ABG, ipw3945 version is
> 1.2.1mp, according to dmesg.
>
> Any ideas?
>
I haven't seen this specific thing before, but I've seen the same sort
of general "it works 3 orders of magnitude too slow" problem in other
cases. Some troubleshooting suggestions:
1)Eliminate hardware errors as the cause - try it either in Windows, or
with Knoppix. Then, hopefully you know the hardware works. It should
also eliminate signal-strength problems as a root cause.
2)What's the CPU load doing? Something like the KDE "System Monitor"
taskbar applet is very useful here - it shows usage of RAM/CPU/SWAP, and
now it also shows IOWait.
3)Packet errors? I had a recent case where we had what turned out to be
a faulty network switch. Our ADSL (switched through this) was running at
< 512kB/sec on the Windows machines, but was running fine at 1MB/sec
(full speed for that phone line) on the Linux ones. Turns out, the Linux
ones were handling packet errors more gracefully. Anyway, look at
ifconfig, and see this sections:
RX packets:66026 errors:0 dropped:0 overruns:0 frame:0
TX packets:66026 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:53313548 (50.8 MiB) TX bytes:53313548 (50.8 MiB)
errors should be very low.
4) DMA? Is your hard drive causing I/O trouble due to having DMA off?
(this is unlikely, but it can happen).
5) Interrupt storms? Look at /proc/interrupts. Except for the system
timer, you shouldn't be getting huge numbers every second. [I had a
motherboard recently which needed the graphics aperture to be set to a
specific (non-default) value, or it would cause an interrupt storm.
For example: for ((i=0; i< 10000; i++)); do echo $i > /dev/null; done
should take about 1 second. If it's very much slower, something else is
wrong!
6) RAM. Do you have > 2GB? Again, a stupid thing I recently saw is a
64-bit motherboard, with capacity for 8GB of RAM (4 slots) and a core-2
quad CPU. If more than 6 GB is present, the system slows to a crawl (no
idea why; again, the for loop above can take nearly a minute to execute).
Also, you could try memtest.
Hope that helps a bit,
Richard