- 玄人志向 / GbEX-PCIE
- Tehuti Networks
チップは Tehuti Networks Ltd. TN9510 なんだけど、現時点で Tehuti から提供されてるドライバーは Windows, Linux, VMware, OS X のみ。
BSD 系は、BSD 系の人が対応してくれてないと無理っぽいけど状況は不明。
Linux は kernel のリポジトリ見る限り当面 distribution まで降りて来そうない雰囲気だし、dkms 非対応なので地味に面倒。dkms 化パッチ欲しい。
BSD 系は、BSD 系の人が対応してくれてないと無理っぽいけど状況は不明。
Linux は kernel のリポジトリ見る限り当面 distribution まで降りて来そうない雰囲気だし、dkms 非対応なので地味に面倒。dkms 化パッチ欲しい。
linux-hwe-generic-trusty で linux-image-4.4.0-101-generic 入れてる状態でも標準ではドライバー入ってなかった。
Tehuti Networks の Support → Drivers Download (要登録) → Drivers → Linux から tn40xx-0.3.6.15.tgz 拾って来て、
ぱっと見、dkms とか気の利いた仕掛けは施されてなかったので、linux-image の version 上がったら、再度 make install が必要なはず。なので、ちょっと面倒。
因みに、ライセンスは GPLv2 or later で、ドライバーのソースの頭に以下のようなライセンス表示が記されていた。
ライセンス的な障壁はなさそうなのに、本日時点の drivers/net/ethernet/tehut は、
間に合わせで dkms 化パッチ当てとくべきなんだろうけど、誰かが書いてそうで、誰も書いてなさげと言うか、「linux tn40xx dkms」でググっても 10 results しかヒットしないよ。orz
なお、付属 CD には tn40xx-0.3.6.12.1.tgz が入っていたが、こちらは試していない。
dmesg は以下の通り。
lspci の表示は以下の通り。
ethtools の表示
同じく Utuntu 16.04.03LTS に Intel X540-T2 挿したマシンに対して netperf かけてみたところ以下のような値が出た。
Tehuti Networks の Support → Drivers Download (要登録) → Drivers → Linux から tn40xx-0.3.6.15.tgz 拾って来て、
make installすると tn40xx.ko が入って無事動いた。
ぱっと見、dkms とか気の利いた仕掛けは施されてなかったので、linux-image の version 上がったら、再度 make install が必要なはず。なので、ちょっと面倒。
因みに、ライセンスは GPLv2 or later で、ドライバーのソースの頭に以下のようなライセンス表示が記されていた。
* This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version.
ライセンス的な障壁はなさそうなのに、本日時点の drivers/net/ethernet/tehut は、
{ PCI_VDEVICE(TEHUTI, 0x3009), }, { PCI_VDEVICE(TEHUTI, 0x3010), }, { PCI_VDEVICE(TEHUTI, 0x3014), },にしか対応してないし、drivers/net/ethernet 見ても tn40xx は見当たらないので、デフォルトで動く状態になるにはまだ当分時間がかかりそう。
間に合わせで dkms 化パッチ当てとくべきなんだろうけど、誰かが書いてそうで、誰も書いてなさげと言うか、「linux tn40xx dkms」でググっても 10 results しかヒットしないよ。orz
なお、付属 CD には tn40xx-0.3.6.12.1.tgz が入っていたが、こちらは試していない。
dmesg は以下の通り。
$ dmesg | grep tn40xx [ 21.328908] tn40xx: module verification failed: signature and/or required key missing - tainting kernel [ 21.329234] tn40xx: Tehuti Network Driver, 0.3.6.15 [ 21.329272] tn40xx: Supported phys : QT2025 TLK10232 AQR105 MUSTANG [ 21.329450] tn40xx: srom 0x0 HWver 16 build 0 lane# 4 max_pl 0x0 mrrs 0x2 [ 21.572041] tn40xx: PHY detected on port 1 ID=3A1B4A3 - AQR105 10Gbps 10GBase-T [ 28.176099] tn40xx: AQR105 FW ver: 2.b.32 [ 28.299824] tn40xx: fw 0xe [ 28.299871] tn40xx: eth2, Port A [ 28.299926] tn40xx: 1 1fc9:4025:1fc9:3015 [ 28.299963] tn40xx: detected 1 cards, 1 loaded [ 28.442704] tn40xx 0000:02:00.0 enp2s0: renamed from eth2 [ 55.274438] tn40xx: enp2s0 Link Up 10G
lspci の表示は以下の通り。
$ lspci -s 02:00.0 -kvnnqq 02:00.0 Ethernet controller [0200]: Tehuti Networks Ltd. TN9510 10GBase-T/NBASE-T Ethernet Adapter [1fc9:4025] Subsystem: Tehuti Networks Ltd. Ethernet Adapter [1fc9:3015] Flags: bus master, fast devsel, latency 0, IRQ 39 Memory at ea000000 (64-bit, prefetchable) [size=64K] Capabilities: <access denied> Kernel driver in use: tn40xx Kernel modules: tn40xx
ethtools の表示
$ sudo ethtool enp2s0 Settings for enp2s0: Supported ports: [ TP ] Supported link modes: 100baseT/Full 1000baseT/Full 10000baseT/Full Supported pause frame use: Symmetric Supports auto-negotiation: Yes Advertised link modes: 100baseT/Full 1000baseT/Full 10000baseT/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: Yes Speed: 10000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on MDI-X: Unknown (auto) Link detected: yes
同じく Utuntu 16.04.03LTS に Intel X540-T2 挿したマシンに対して netperf かけてみたところ以下のような値が出た。
$ netperf 192.168.1.10 -l 15 MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to ex38dq6 () port 0 AF_INET : demo Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 15.00 10980.85地味に 10Gbps 越えてる気がするんだけど、なぜ?
「tn40xx dkms」でググると、GitHub にある SimonSickle 氏の Repositories が引っかかって、ここに
現状の master は 2017-09-24 の commit で、release_notes 見ると、これはどうも tn40xx-0.3.6.12.4 がベースになってるっぽい。
とりあえず、あとで参考にするために、ここにスタック積んどく。
2019-10-28: 追記
dkms 化したので手順をまとめた
- GitHub / SimonSickle / tn40xx-driver-dkms
現状の master は 2017-09-24 の commit で、release_notes 見ると、これはどうも tn40xx-0.3.6.12.4 がベースになってるっぽい。
とりあえず、あとで参考にするために、ここにスタック積んどく。
2019-10-28: 追記
dkms 化したので手順をまとめた
タグ
コメントをかく