X220の無線LAN(Realtek RTL8188CE)

X220の無線LANはモデルによって種類があるようなのだが、手元のマシンに入っているThinkPad 11b/g/n Wireless LAN Mini-PCI Express Adapter IIというのは、Realtekのものを使っているらしい。

ThinkPad 11b/g/n Wireless LAN Mini-PCI Express Adapter II - ThinkWiki

pciconf -lbcevの結果。PCI接続で、RTL8188CEというものらしい。

none2@pci0:3:0:0:       class=0x028000 card=0x819510ec chip=0x817610ec rev=0x
01 hdr=0x00
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8188CE 802.11b/g/n WiFi Adapter'
    class      = networkhttps://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203105
    bar   [10] = type I/O Port, range 32, base 0x5000, size 256, enabled
    bar   [18] = type Memory, range 64, base 0xf2500000, size 16384, enabled
    cap 01[40] = powerspec 3  supports D0 D1 D2 D3  current D3
    cap 05[50] = MSI supports 1 message, 64 bit 
    cap 10[70] = PCI-Express 2 endpoint max data 128(128) RO
                 link x1(x1) speed 2.5(2.5) ASPM L1(L0s/L1)
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
    ecap 0002[140] = VC 1 max VC0
    ecap 0003[160] = Serial 1 019181feff4ce000
  PCI-e errors = Correctable Error Detected
                 Unsupported Request Detected
     Corrected = Advisory Non-Fatal Error

FreeBSDではドライバがなかったのだが、2015年〜2016年頃にOpenBSDで開発されたものが移植されてきてるらしい。USB接続のものがurtwnというドライバで、PCI接続のものはrtwnというドライバのようだ。

203104 – rtl8188ce PCI adapter not supported
203105 – [new driver] Port openbsd rtwn, new rtl8188ce driver

12-currentのマニュアルによれば、loader.confに設定を書けばよいということになっている。
rtwn

     Alternatively, to load the	driver as a module at boot time, place follow-
     ing lines in loader.conf(5):

	   if_rtwn_pci_load="YES"
	   if_rtwn_usb_load="YES"

TrueOSのマニュアルだと if_rtwn_load="YES" も書けと書いてある。まだちょくちょく変更されているということだろうか。

/boot/loader.confに書いて、再起動したら、認識した。

[root@truex220] ~# dmesg | grep rtwn
rtwn0: <Realtek RTL8188CE> port 0x5000-0x50ff mem 0xf2500000-0xf2503fff at device 0.0 on pci2
rtwn0: MAC/BB RTL8188CE, RF 6052 1T1R
[root@truex220] ~# 

2012年FreeBSD9のころからUSB接続のLAN-W300N/U2を使わざるを得なかった*1のだが、これで解消できた。