I got an X200 a long time ago before I got deeper into all this corebooted Thinkpad affair. As you may (or not) know, the iconic X200 is one of the few first corebooted Thinkpad.

The one I got came with coreboot already. Seems the previous owner decided it would be a good idea to cut off the WWAN antenna pair. I, on the other hand, would like to have them as I intend to use my old 3G modem on it.

Why, you ask? Because I can. It is also a good chance to hone my soldering skill.

Preparation

With the maintenance manual document handy, I turned over the page to the wireless antennas part.

antenna-doc

The machine in question itself would, of course, need to be taken apart.

x200-open-sesame

As can be seen from the above picture, there's a dangling black cable on the right side. This is one of the WWAN antennas with its cable cut-off. There's another one hidden on the left side beneath other components.

Tools

The cables are coax. To splice them, I need something sharp and surgical. Thankfully, I got an X-Acto knife.

xacto-knife

To hold both of the ends together for splicing, I got this cable holder thingy, whatever you call it. The base broke, so I ended up sticking it to a table vice.

cable-holder-thingy

Materials

For the cables, a bunch of uFL terminated micro-coax cables would do.

To isolate the core as well as the outer mesh, I use heatshrink, 1mm and 2mm respectively.

Splicing the Coax

Unsheathing

I exposed the conductive parts of the cable in three steps.

First, I cut off the outer plastic cover with the knife, exposing the outer conduit mesh.

coax-1-outer-removed

Then I pulled the mesh back, exposing the clear plastic covering of the core conduit.

coax-2-mesh-pulled

Finally, I cut off the clear inner plastic cover, exposing the core conduit.

coax-3-inner-removed

Joining

After doing the above to both of the sides, I joined them by soldering them together.

coax-soldering

Note the heatshrink tube. Not pictured is the outer heatshrink. For the inner I used 1mm. For outer, 2mm.

The end result simply looks like a taped-up cable, nothing out of the ordinary.

Third WiFi Antenna

I have a WLAN card with three antenna plugs I'd like to use. I could only use it on my X200 out of all the Thinkpads I got due to its full-size.

wifi-card-1 wifi-card-2

I tried using cut-out aluminium can, but the solder failed to stick. So I used a piece of cardboard wrapped with thin copper wire. I then soldered the loose end of the copper wire to exposed core of the coax.

mimo-antenna

Intel TurboMemory

During the Windows Vista era, Intel tried (and failed) marketing this interesting product called TurboMemory. It is essentially a tiny mPCIe NAND SSD that is used as cache to speed up all those slow HDDs. Now that SSDs have taken over that need for speedy drive, TurboMemory lost its purpose in existence. This is beneficial for me, as I can now get them for cheap.

turbomemory-1 turbomemory-2

When I insert it to the laptop, it shows as a USB drive. The SeaBIOS boot menu even recognizes it.

x200-complete

Making Sure Everything Works

I got a Linux Mint Live USB. I turned it on and started doing stuff on it.

lspci output

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
00:19.0 Ethernet controller: Intel Corporation 82567LM Gigabit Network Connection (rev 03)
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03)
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (rev 03)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)
02:00.0 Network controller: Qualcomm Atheros AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (rev 01)

lsusb output

Bus 007 Device 004: ID 0e39:a100 Smart Modular Technologies, Inc. Dell ON Storage
Bus 007 Device 003: ID 0bdb:1926 Ericsson Business Mobile Networks BV H5321 gw Mobile Broadband Module
Bus 007 Device 002: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 17ef:480c Lenovo Integrated Webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 003: ID 0a5c:2145 Broadcom Corp. BCM2045B (BDC-2.1) [Bluetooth Controller]
Bus 003 Device 002: ID 08ff:2810 AuthenTec, Inc. AES2810
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

lsblk output

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0  2.1G  1 loop /usr/lib/live/mount/rootfs/filesystem.squashfs
                                /run/live/rootfs/filesystem.squashfs
sda      8:0    0 59.6G  0 disk 
├─sda4   8:4    0 59.6G  0 part 
└─sda5   8:5    0 59.6G  0 part 
sdb      8:16   1 57.6G  0 disk 
├─sdb1   8:17   1 57.6G  0 part 
└─sdb2   8:18   1   32M  0 part 
sdc      8:32   0  1.9G  0 disk 
└─sdc1   8:33   0  1.9G  0 part 

The TurboMemory shows as a USB device. I'm not sure how it's (not) showing on the lspci, probably does as another USB controller.

The WWAN card also shows as a USB device somehow. I've read that WWAN cards use USB instead of PCIe. That was for X230, but X200 might be the same.

The WLAN card, as expected, shows as PCIe device.

I felt no need to further test the TurboMemory card as its volume shows on lsblk. I do have plans to actually make it useful.

I also have tested the WLAN card to work exactly how I'd expect it to work. As for the third antenna, I honestly couldn't tell any difference, for better or worse :)

Trying Out WWAN

network-systray

Before I began, I turned off the WLAN to ensure it doesn't interfere with the network test I was about to do.

Despite the network name being shown, I seemed to fail connecting to anything with this thing. I tried disconnecting and reconnecting it, but there was just this error message.

network-error

I realized I've encountered something similar in the past. Basically, whatever is supposed to handle the error wasn't doing particularly well at it. The root of the problem itself is that there's no valid setting to use for the Mobile Connection. To fix it, I simply created a new one!

I opened the 'Network Connections' menu by right-clicking the Network systray and selecting 'Network Connections'. From there, I clicked the button plus sign to create a new connection.

network-connections-menu

I then selected 'Mobile Broadband' on the dropdown, and clicked 'Create...'.

network-connections-new-0

I selected my device, country, and network provider, then went with the default plan.

network-connections-new-1 network-connections-new-2 network-connections-new-3 network-connections-new-4

After making sure everything checks out, I clicked 'Save'.

network-connections-new-5

network-mobile-broadband

ping -c8 timkenhan.co
PING timkenhan.co (80.71.229.22) 56(84) bytes of data.
64 bytes from host-80-71-229-22.rhzahra.com (80.71.229.22): icmp_seq=1 ttl=55 time=502 ms
64 bytes from host-80-71-229-22.rhzahra.com (80.71.229.22): icmp_seq=2 ttl=55 time=144 ms
64 bytes from host-80-71-229-22.rhzahra.com (80.71.229.22): icmp_seq=3 ttl=55 time=1285 ms
64 bytes from host-80-71-229-22.rhzahra.com (80.71.229.22): icmp_seq=4 ttl=55 time=305 ms
64 bytes from host-80-71-229-22.rhzahra.com (80.71.229.22): icmp_seq=5 ttl=55 time=487 ms
64 bytes from host-80-71-229-22.rhzahra.com (80.71.229.22): icmp_seq=6 ttl=55 time=224 ms
64 bytes from host-80-71-229-22.rhzahra.com (80.71.229.22): icmp_seq=7 ttl=55 time=466 ms
64 bytes from host-80-71-229-22.rhzahra.com (80.71.229.22): icmp_seq=8 ttl=55 time=684 ms

--- timkenhan.co ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7018ms
rtt min/avg/max/mdev = 144.325/512.247/1285.398/333.801 ms, pipe 2

Looking good!