Wednesday, January 18, 2006

Fixing Bluetooth on an IBM Thinkpad

Last week I did a massive update on my Thinkpad, hoping to catch the appropriate updates for Bluetooth so that I could use a headset with the computer. No go. At the time I did not know that Microsoft's Windows XP implementation of Bluetooth is braindead and overrides whatever the OEM supplies. David Singer had already run into this and reminded me of it this morning (he'd emailed to report that my RSS feed wasn't validating).

So, I went off in search of the magical incantations to re-enable the bluetooth stack.

I was quite surprised to find the answer on the IBMLenovo site (or LenovoIBM, I get confused. Integrated Bluetooth II software for Windows 98 SE/2000/XP... is a surprisingly well-written and useful guide to fixing the Bluetooth stack on an IBM Thinkpad. Basically, I had the right stack on my system through the updates, but I went ahead and downloaded the driver files again and re-installed. The key thing is apparently to update the driver for the IBM Integrated Bluetooth II and use the unsigned (meaning: non-Microsoft) driver to complete the update.

Voila! After a reboot to clear out the baffles, I was able to use the Jabra headset I'd picked up in December to make a Skype call to Lisa. The quality was fine on my head, she reported that it was a bit quiet on her end. But more importantly, it was over Bluetooth and the Microsoft stack didn't re-emerge to trash the updated stack.

Update

This update has nothing to do with Bluetooth. Apparently, the site I referenced is managed using Lotus Notes. I'm guessing here, based entirely on the error message I got when I used http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle%3dlenovo%26lndocid%3dMIGR-50245 as the link. See that %3d in the URL? That is the URL encoding for the = character. The %26 is the URL encoding for the & character. I've taken to encoding the & as %26 in URLs because it's easier for me to remember than to use &. See, the & character is special. In SGML and SGML derived languages it refers to an entity, a symbol or character that typically can't be typed in a keyboard (or, when I was a lowly IBM technical writer, a character which was guaranteed to get screwed up in various codepage translations like [ or ] or ^).

But I digress.

Since, oh, 1993 (and possibly earlier), it has been part of the HTTP specification that URLs coud be encoded using the hexadecimal representation of the character, with a % character to denote that the following two bytes were a hexadecimal string. Unfortunately, whatever's backing the Lenovo Support does not support URL encoding of URLs, which is why we get the following error:

There is a problem retrieving the document
$view.getDocumentView().getLndocid().

When URL encoding the & and = in http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-50245.

This concludes my tweaking of the IBM.com/Lenovo.com site for the day.

And now that you've read all of that, I'm finding that links are working when URL encoded...some times. So, I don't know what's going on behind the scenes but something appears amiss. Perhaps one of the systems being proxy-passed to is trashing the encodings. Dunno.

e.p.c. posted this at 03:12 GMT on 18-Jan-2006 .

Slightly acerbic and eccentric dog walker who masquerades as a web developer and occasional CTO.

Spent five years running the technology side of the circus known as www.ibm.com.

More about me here.

Archives