Mountains

Mountains

Saturday, November 28, 2015

Lenovo x120e 802.11n Wireless Data Corruption with RTL 8188CE 1x1 NIC

I've known that this wireless card was toxic for a long while.

However, laziness has meant that our household has been trapped in 802.11g land for years and years, even as I gave 802.11ac routers to family members as gifts.

Because the shoemakers children have no shoes or something.

Anyhow, I knew the Thinkpads* Realtek RTL 8188CE wireless card was bad news when the other machines started experiencing network instability whenever it was active on the network. The wifes Netflix stream would glitch. Copying files requires 100% of the CPU, and similarly, network intensive multiplayer games took it in the chin as the CPU was soaked by the NIC, detracting from rendering.

But, I recently got the joy of trying out one of the 802.11ac routers that I had been gifting (Asus rt-ac68u), and was pleasantly surprised by the speed (the adapter reported speed of up to 150 mbps) and unpleasantly surprised by how all the data that came through the pipe was more or less ruined by the experience. Installers claimed checkup errors, binaries wouldn't run right, and webpages and other internet content looked a little...weird.

An example corrupted page from this blog

The network interface showed itself as a possible candidate when other machines in the house didn't have the same issues, and I found that downloading the same file several times yielded different checksums each time. I was particularly ticked off when my linux virtualmachine a) had trouble getting updates b) once updated couldn't stay booted for long, presumably because of data transfer errors. At first, I thought this was due to an old version of virtualbox, but then when I tried to update virtualbox, it complained of .cab checksum errors. Running hashmyfiles on windows 7 showed that each time the virtualbox installer was downloaded, I got a different checksum. Of course, I was suspicious of that too, but it was all I had to work with.

Crazy.

Sadly, There is little information avaiable about this situation and what can be done about it. After a day of fiddling, I determined that the RTL 8188CE can be forced into 802.11g or 802.11b mode, which home use had more-or-less shown to be less error prone. To force 802.11b or 802.11g, activate Taskbar->Wireless Icon->(Your Wireless Network)->Status->Properties->Configure->Advanced->Wireless Mode->802.11b/g (or 802.11b). Setting "Auto" will allow 802.11n, and thus data corruption, at least in my usage scenario. Corruption was greatly reduced (i.e. I could download files and view websites normally) with 802.11g forced (by selecting 802.11b/g mode).

I had read in a few places references to errors generated by the TCP/IP checksum offloading feature of the card, though it seems possible that the checksum maybe fine and in fact the card is not moving data correctly.

Things to meditate on:
1) Checksum are valuable to making sure data makes it from point a to point b without getting fubared.
2) All the advice about hacking the bios to remove the pcie whitelist to allow other mini pcie NICs is probably well founded.
3) The RTL 8188CE is just painful on this machine. Neither realtek nor lenovo have fixed the drivers, and data corruption is evil. I have to ask myself if other issues i'm experiencing on the machine are a product of running windows update through a leaky wireless pipe.
4) Curiously, the RTL 8188CE is not mentioned in the list of 802.11n adapters provided by Lenovo, but Broadcom 43225 and Intel 6200 (6250 as well) are. They would seem like rational upgrades.
5) The 2x2 abgn adapter chipset/part number relationships reported online are all over the map. The Lenovo FRU 60Y3253 corresponds to both Intel and Broadcom chips.

*More like Stinkpad amiright?