hack のためのネタ帳, etc,,,


公式ページ等

チップは Tehuti Networks Ltd. TN9510 なんだけど、現時点で Tehuti から提供されてるドライバーは Windows, Linux, VMware, OS X のみ。
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 拾って来て、
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 化したので手順をまとめた

関連

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます