FreeBSD12にLR-LINK製のNIC「LREC6860BT」(10Gbase-T)をインストール

#LREC6860BTについて
LR-LINK製のNIC「LREC6860BT」は、チップとしてMarvell 88X3310とTehuti Networks TN4010B0を搭載し、10GBASE-T及び5GBASE-T・2.5GBASE-Tに対応した1基のRJ-45端子を備えるNICである。（一部勘違いがあり5/8に変更・追記する。）
10G etherは、これまでにintelのX540-T1とX540-T2を使用しFreeBSDとwindowsを接続している。古い基板ではあるが、FreeBSDのディスクを300Mbyte/sec程度でアクセスできているので使っている。X540-T2をFreeBSDで使用しブリッジ接続してスイッチの代わりに使用する予定にしていた。今回、FreeBSD 12をインストールしたバックアップサーバを用意した（前回までに使用していた古い基板）ので新しく10Gbase-Tのネットワーク基板を探していた。1万円以下で出回っているLR-LINK製に目が止まりアマゾンの説明を見ると以下となっていた。

- 国内代理店保証:2年間
- コントローラー:Tehuti TN4010B0+ Marvell 88X3310
- インターフェース: PCI Express 2.0 x4 バス
- 伝送速度:100M/1G/2.5G/5G/10Gbps
- LANポート:RJ-45 x1
- Jumbo:Up to 9.5 KB
- サポートOS 1:WinSer 2008 R2 / 2012 / 2012 R2 / 2016 R2
- サポートOS 2:Windows 7 / 8 / 8.1 / 10、他

更に、紹介記事を調べるとサポートOSが以下であった。

- Windows Server 2008 R2 / 2012 / 2012 R2 / 2016 R2 or later
- Windows 7 / 8 / 8.1 / 10 or later
- MAC OS 10.10.3 or later
- Linux Stable Kernel version 2.6.x/3.x or later
- Vmware ESX / ESXi 5.x / 6.x or later

FreeBSDが見当たらない。
本家Tehuti Networksに行くとFreeBSDのドライバーを見つけた。
readmeを見ているとLR-Linkの文字を発見。

```
Supported TN40XX based products:
--------------------------------

VID /DID /SVID/SDID	Interface			Print Name
------------------------------------------------------------------
1fc9/4020/1fc9/3015	CX4 				"TN9030 10GbE CX4 Ethernet Adapter"
1fc9/4020/180c/2040	CX4 				"IEI Mustang-200 10GbE Ethernet Adapter"
1fc9/4022/1fc9/3015	SFP+ APM QT2025 		"TN9310 10GbE SFP+ Ethernet Adapter"
1fc9/4022/1186/4d00	SFP+ APM QT2025			"D-Link DXE-810S 10GbE SFP+ Ethernet Adapter"
1fc9/4022/1043/8709	SFP+ APM QT2025			"ASUS XG-C100F 10GbE SFP+ Ethernet Adapter"
1fc9/4022/1432/8103	SFP+ APM QT2025			"Edimax 10 Gigabit Ethernet SFP+ PCI Express Adapter"
1fc9/4024/1fc9/3015	10GBASE-T Pele MV88X3110	"TN9210 10GBase-T Ethernet Adapter"
1fc9/4025/1fc9/3015	NBASE-T Aquantia AQR105		"TN9510 10GBase-T/NBASE-T Ethernet Adapter"
1fc9/4025/1186/2900	10GBASE-T Aquantia AQ2104	"D-Link DXE-810T 10GBase-T Ethernet Adapter"
1fc9/4025/1432/8102	NBASE-T Aquantia AQR105		"Edimax 10 Gigabit Ethernet PCI Express Adapter"
1fc9/4026/1fc9/3015	SFP+ TI TLK10232		"TN9610 10GbE SFP+ Ethernet Adapter"
1fc9/4026/4c52/1000	SFP+ TI TLK10232		"LR-Link LREC6860AF 10 Gigabit Ethernet Adapter"
1fc9/4027/1fc9/3015	NBASE-T Pele MV88X3310	"TN9710P 10GBase-T/NBASE-T Ethernet Adapter"
1fc9/4027/1432/8104	NBASE-T Pele MV88X3310	"Edimax 10 Gigabit Ethernet PCI Express Adapter"
1fc9/4027/1154/0368	NBASE-T Pele MV88X3310	"Buffalo LGY-PCIE-MG Ethernet Adapter"
1fc9/4027/1546/4027	NBASE-T Pele MV88X3310	"IOI GE10-PCIE4XG202P 10Gbase-T/NBASE-T Ethernet Adapter"
1fc9/4027/4c52/1001	NBASE-T Pele MV88X3310	"LR-Link LREC6860BT 10 Gigabit Ethernet Adapter" <--------
1fc9/4027/1baa/3310	NBASE-T Pele MV88X3310	"QNAP LAN-10G1T-THT 10Gbase-T/NBASE-T Ethernet Adapter"
1fc9/4527/1fc9/3015	5GBASE-T Pele MV88E2010	"TN9710Q 5GBase-T/NBASE-T Ethernet Adapter"
```

そこで、最悪x540-T1をFreeBSDで使用し、LR-LINK製をwindowsで使えばいいと考え購入した。
付属のdiskを見ると、やはりない！！
しかし、先のドライバーを使用し以下の手順でインストールができたので報告する。

# インストール
## ドライバーの入手
以下のサイトFreeBSD/FreeNASをクリックしFreeBSD.zipをクリックする。
名前、電話番号、メールアドレスなどを入れる必要がありました(5/9追記)
http://www.tehutinetworks.net/?t=drivers&L1=8&L2=12

解凍すると以下のファイルが解凍できる

```
README
tn40xx_freebsd11_amd64-1.1.txz
tn40xx_freebsd12_amd64-1.1.txz
```

## インストール
pkg add を使ってインストールするだけで簡単（readmeファイルに書かれている）

```
# pkg add tn40xx_freebsd12_amd64-1.1.txz
# reboot
```

リブートしたら以下のように確認
確認１

```
# pkg info tn40xx_freebsd12_amd64
tn40xx_freebsd12_amd64-1.1
Name           : tn40xx_freebsd12_amd64
Version        : 1.1
Installed on   : Wed May  8 21:03:47 2019 JST
Origin         : FreeBSD/v1.0/driver
Architecture   : FreeBSD:12:amd64
Prefix         : /boot/modules
Categories     :
Licenses       : MIT, BSD3CLAUSE
Maintainer     : support@tehutinetworks.net
WWW            : http://www.tehutinetworks.net
Comment        : Tehuti Networks TN4010 Network Driver
Annotations    :
Flat size      : 1.13MiB
Description    :
tn40xx.ko is a device driver for Tehuti Networks TN4010 based NICs
```

確認２

```
# ifconfig
tn400: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8d01bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE>
        ether xx:xx:xx:xx:xx:xx
        media: Ethernet autoselect (autoselect <full-duplex>)
        status: no carrier
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether xx:xx:xx:xx:xx:xx
        inet 192.168.1.31 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet 127.0.0.1 netmask 0xff000000
        groups: lo
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
```

## 設定
設定は以下のようにIPアドレスを割り付ければOK

```/etc/rc.conf
ifconfig_tn400="inet 192.168.1.32 netmask 255.255.255.0 mtu 9014"
```

ジャンボフレーム設定をした方が速度を出しやすいのでX540-T1のサイズに合わせmtu 9014を設定する

## 伝送速度
lanケーブルを買っていなかったので購入後に速度などをここに追記する~~予定~~。(5/9以下追記）
転送速度の計測は、X540-T1(windows10) - X540-T2(FreeBSD12) - LREC6860BT(FreeBSD12)で8Gbyteのファイルを転送することで行った。以下に示すようにトラブルが合ったので速報レベルで報告する。
LREC6860BTへの書き込み方向は、最初6Gbpsで始まり2Gbpsで終わる。逆は7Gbpsで始まり3Gbpsで終わる。
と、まずまずである。しかし、X540-T2が途中でストライキを起こすのである。2ポートともno careerになってしまうのである。これまでは、1ポートは1Gbpsでリンクしており、今回2ポートともに10Gbpsでリンクしたため熱暴走？ケースファンが頼りなくなっているのでそれが原因か？
とりあえず、1ポートを1Gbpsでリンクさせるとno careerにはならない。
まず放熱対策を行うこととする。