Ubuntu:有線LANを繋がるようにした

はじめに

今まで Ubuntu マシンの nightschool は無線で接続していた。けれどうちの環境(無線LANルータは1階、マシンは2階にある)のせいか、接続が不安定で速度も遅かった。2階にイーサネットのジャックがあるので有線でつないでみたものの、どういうわけかリンクが確立しない(リンクランプが点灯しない、Ubuntu で Ethernet接続が有効にならない)という状況だった。
マシンを買って以来約2年近くもこの状態だったのだけど、ようやく解決するために重い腰を上げた次第。

参考にしたページ

このページが参考になった。

 cf. UbuntuでNICを認識しない場合の対応 – RainbowDevilsLand

状況の確認

まずは現在の状況の確認から。ifconfig コマンドで NIC の状況を見てみる。

takatoh@nightschool $ ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス f8:bc:12:78:84:ab  
          UP BROADCAST MULTICAST  MTU:1500  メトリック:1
          RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:0 (0.0 B)  TXバイト:0 (0.0 B)

lo        Link encap:ローカルループバック  
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:65536  メトリック:1
          RXパケット:110255 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:110255 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:0 
          RXバイト:629344324 (629.3 MB)  TXバイト:629344324 (629.3 MB)

wlan0     Link encap:イーサネット  ハードウェアアドレス 54:35:30:bc:ed:f9  
          inetアドレス:192.168.1.5  ブロードキャスト:192.168.1.255  マスク:255.255.255.0
          inet6アドレス: fe80::5635:30ff:febc:edf9/64 範囲:リンク
          inet6アドレス: 2408:212:ac6:e200:5635:30ff:febc:edf9/64 範囲:グローバル
          inet6アドレス: 2408:212:ac6:e200:75ec:809a:c077:3ea5/64 範囲:グローバル
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:46490 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:49384 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:6255035 (6.2 MB)  TXバイト:18310646 (18.3 MB)

イーサネットの NIC (eth0)自体は認識しているようだけど、アドレスが割り振られていない。
参考にしたページに書かれているのは、NIC 自体が認識されていない場合の対処法だけど、ダメ元で同じようにドライバをインストールしてみることにした。そこで、NIC のチップの種類を調べる。

takatoh@nightschool $ lspci | grep 'Ethernet\|Network'
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
03:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01)

Realtek の RTL8111/8168/8411 っていうチップのようだ。

ドライバのダウンロードとインストール

Realtek のダウンロードセンターから、RTL8111 を検索してダウンロード。0004-r8168-8.041.01.tar.bz2 というファイルだ。
これを展開する。

takatoh@nightschool $ tar xjvf 0004-r8168-8.041.01.tar.bz2

中に含まれている README ファイルを読むと、autorun.sh を実行すればいいようだ。

takatoh@nightschool $ cd r8168-8.041.01
takatoh@nightschool $ sudo ./autorun.sh

Check old driver and unload it.
rmmod r8169
Build the module and install
Can't read private key
Backup r8169.ko
rename r8169.ko to r8169.bak
DEPMOD 3.13.0-79-generic
load module r8168
Updating initramfs. Please wait.
update-initramfs: Generating /boot/initrd.img-3.13.0-79-generic
Completed.

Completed と出ている。うまくいったか?

確認

ふたたび ifconfig コマンドで確認。

takatoh@nightschool $ ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス f8:bc:12:78:84:ab  
          inetアドレス:192.168.1.20  ブロードキャスト:192.168.1.255  マスク:255.255.255.0
          inet6アドレス: 2408:212:ac6:e200:fabc:12ff:fe78:84ab/64 範囲:グローバル
          inet6アドレス: fe80::fabc:12ff:fe78:84ab/64 範囲:リンク
          inet6アドレス: 2408:212:ac6:e200:486:4ce3:78a7:b216/64 範囲:グローバル
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:13 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:25 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:1993 (1.9 KB)  TXバイト:4054 (4.0 KB)
          割り込み:45 ベースアドレス:0x4000 

lo        Link encap:ローカルループバック  
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:65536  メトリック:1
          RXパケット:110581 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:110581 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:0 
          RXバイト:629379076 (629.3 MB)  TXバイト:629379076 (629.3 MB)

wlan0     Link encap:イーサネット  ハードウェアアドレス 54:35:30:bc:ed:f9  
          inetアドレス:192.168.1.5  ブロードキャスト:192.168.1.255  マスク:255.255.255.0
          inet6アドレス: fe80::5635:30ff:febc:edf9/64 範囲:リンク
          inet6アドレス: 2408:212:ac6:e200:5635:30ff:febc:edf9/64 範囲:グローバル
          inet6アドレス: 2408:212:ac6:e200:75ec:809a:c077:3ea5/64 範囲:グローバル
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:58509 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:60687 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:7434710 (7.4 MB)  TXバイト:19433795 (19.4 MB)

おお、eth0 にもアドレスが割り振られている。画面右上には Ethernet接続のマークも出ている。どうやらうまくいったようだ。

まとめ

イーサネットの不具合は、ドライバをインストールしたら治った。
接続状況はこうなった。

Screenshot from 2016-04-30 09:11:13