[NETGEAR] GS108E ProSafe Switch と XS36V(JMicron jmc250) が接続できない課題の解決策 [Shuttle]

昨日の”oshiire*BLOG» Blog Archive » [TODO] 日常が廻らない今、何をすべきで、何をやめるべきか [日常]“を書いた後に、日常を振り返りながら、余裕を持ってTODOを全CLEARして気持ちの良い朝を迎えたしょっさんです、おはようございます( ´ー`)y-~~
good morning
先日、@fujiwara組長からオススメされた”【NETGEAR】GS108E” GbE Ethernet Switch HUB を購入したんです。8-Port だと、実売 ¥5k程度なのですが、なんと、ポートVLAN も タグVLAN (802.1q)も、QoSも使えてしまう逸品なのです。この低価格路線で、VLANが使える GbE Switchはこれだけではないでしょうか。しかも、安心の N E T G E A R。恐いものは何もありません。

問題があるとすれば、設定のツールが Windows専用であることでしょうか。買ってて良かった VMware Fusion。ありがとう、Windows8。これからもよろしくVMware(‘A`)

GS108Eそんなハイソサエティで、素敵なHUBなのですが、不可思議なことが起きていました。
データのバックアップ用に、USB HDDを接続している、”XS36V | Shuttle Japan“という小型PCが Link-up していません…っ
  ( ゚д゚ ) ガタッ
  .r   ヾ
__|_| / ̄ ̄ ̄/_
  \/    /
松田優作ばりになんじゃこりゃと言ったとか言わないとか、年がばれますよとか、当たり前だのクラッカーの世代、古き良き昭和の時代の何が良かったかって、俺がまだ若くて遊び回ることができたことくらいでしょう。サッカー楽しいれす ^q^
ともかく、Link-up しないんです。なお、XS36V の個体を調べてみたら、次の通りでした。

  • XS36V + USB 1TB HDD
  • Debian squeeze 利用
  • backport された Linux Kernel 3.2 利用
  • Jmicron製 JMC250 GbE NIC
  • jme 1.8ドライバ 使用

LANケーブルをつなぎ替えても問題ありませんし、前から使っていた PlanexのHUBに接続すれば、ちゃんとLink-upするので、これは NIC<->HUBの固有の問題であると判断しました。

頼りになるは Google様です。調べてみました。

ありました(‘A`) “[all variants] jmc250 gigabit problem – Ubuntu Forums

なぜか見つけたるは、Ubuntu Forum ですが、Debian based なんだから同じだろうと調べて、対応してみると、この問題に合致していました。

そこで、対応して結果を残しておいて、本日はお茶を濁そうという考えでございます。笑止。

1.最新ドライバを手に入れよう( ゚д゚ )クワッ!!

まずは、jmeの最新ドライバを手に入れましょう。これで、Auto-Negotiation でミスりません。いや、ある意味ミスってんだけど。
現在(2013/02/24)最新のドライバは 1.0.8.5 になります。必要に応じて、ftp のディレクトリを見て、最新版がないかどうぞ確認ください。

1
2
$ cd /tmp
$ wget ftp://driver.jmicron.com.tw/Ethernet/Linux/jmebp-1.0.8.5.tar.bz

2.ドライバをインストールしよう( ゚д゚ )クワッ!!

次にドライバをインストールします。2.x 系の人はこのままで、3.x系だとディレクトリが少し違うようです。補足説明もご覧くださいませませ。
ひとまず、フツーに負け負けインストールしてください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ sudo tar xvjf ./jmebp-1.0.8.5.tar.bz 
jmebp-1.0.8.5/
jmebp-1.0.8.5/CHANGELOG
jmebp-1.0.8.5/Makefile
jmebp-1.0.8.5/scripts/
jmebp-1.0.8.5/scripts/jme_eeprom.sh
jmebp-1.0.8.5/.gitignore
jmebp-1.0.8.5/jme.h
jmebp-1.0.8.5/jme.c
$ cd jmebp-1.0.8.5/
$ sudo make
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-0.bpo.4-686-pae'
  CC [M]  /tmp/jmebp-1.0.8.5/jme.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/jmebp-1.0.8.5/jme.mod.o
  LD [M]  /tmp/jmebp-1.0.8.5/jme.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-0.bpo.4-686-pae'
 
$ sudo make install
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-0.bpo.4-686-pae'
  CC [M]  /tmp/jmebp-1.0.8.5/jme.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/jmebp-1.0.8.5/jme.mod.o
  LD [M]  /tmp/jmebp-1.0.8.5/jme.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-0.bpo.4-686-pae'
install -m 644 jme.ko /lib/modules/3.2.0-0.bpo.4-686-pae/kernel/drivers/net
depmod -a 3.2.0-0.bpo.4-686-pae

Kernel 3.x 系の人は、ここで、jme.ko ファイルを移動してください。
今回の私のケースでいくと、異動元・異動後のディレクトリはこちらです。”3.2.0-0.bpo.4-686-pae” 部分を適宜置き換えてください。
異動かよ…

異動元 : /lib/modules/3.2.0-0.bpo.4-686-pae/kernel/drivers/net/jme.ko
異動先 : /lib/modules/3.2.0-0.bpo.4-686-pae/kernel/drivers/net/ethernet/jme.ko

最後に initramfs 作って終わりです。

1
2
$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-3.2.0-0.bpo.4-686-pae

再起動しましょう。

3.GbE Link-up しないんだけど…?

そっす。Auto-negotiation だと、この個体では GbE で Link-up しないんです。
Fast(100Mbps)で Auto-negotiation 完了するんです。では、ethtool 使って、Auto-negotiation を切って、設定すると、どうなるか。

1
2
3
4
5
$ sudo ethtool -s eth0 speed 1000 duplex full autoneg off
Cannot set new settings: Invalid argument
  not setting speed
  not setting duplex
  not setting autoneg

おやまぁ(‘A`)

そです。GbE のスピードでは、Auto-negotiation 切れないんです。お陰様で、100Mbps でしか接続できないという課題を積み残したまま、今日はこの辺で終わります(;´Д`)

[tmkm-amazon]B00AYA0EBQ[/tmkm-amazon]