LANドライバ(最新版)のインストール

提供: とある社畜の頭脳整理
2019年7月23日 (火) 14:11時点におけるRin-scrooge (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

<amp/> ぶっちゃけ、素のままLattepanda上でDebianを使ってると、とにかくLANが不安定です(networkingサービスが落ちまくりですwww)。
最低限のこととして、LANドライバを最新化したいと思います。

LANドライバのダウンロード

LattepandaではRealTekのr8152を使用しています。なのでRealTekのホームページからドライバをダウンロードします。
Realtek USB FE / GBE / 2.5G / Gaming Ethernet Family Controller Software
上記のホームページの「Unix (Linux)」からドライバをダウンロードします。

パソコンからダウンロードしたなら、Lattepandaの適当なディレクトリに転送します。
Lattepandaのブラウザからダウンロードしたときは、だいたい「ダウンロード」ディレクトリに保存されます。

コンパイル環境のインストール

ドライバをコンパイルするので、コンパイル環境を整えます。

  1. ターミナルの起動
    GNOMEの場合ですが…画面左上の「アクティビティ」から、左下の「アプリケーションを表示する(点が9つあるアイコン)」をクリックします。
    そしたら、下の方の「ユーティリティ」をクリックすると「端末」があるので、それをクリックします。
  2. 最新化
    ひとまず、Debian周りの最新化を行います。
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade
    
  3. カーネルバージョンを調べる
    下記のコマンドを実行してカーネルのバージョンを調べます。
    uname -r
    
    以下の様な結果が出るかと思います
    4.9.0-9-amd64
    
  4. アプリのインストール
    コンパイルに必要なアプリケーションをインストールします。
    sudo apt-get install libelf-dev build-essential linux-headers-[uname -rの結果]
    
    上記の例に基づくと以下のようなコマンドになります。
    sudo apt-get install libelf-dev build-essential linux-headers-4.9.0-9-amd64
    

    下記コマンドで良いみたいです…。
    sudo apt-get install libelf-dev build-essential linux-headers-`uname -r`
    


  5. もし…DebianのDVDを入れろと言ってきたら…
    ブラウザを起動して、Debianのサイトからインストールに使用したisoをダウンロードして、それを「/media/cdrom」にマウントします。isoをダウンロードした後に、ダウンロードしたファイルがあるディレクトリで以下のコマンドを実行してください。
    sudo mount -o loop -t iso9660 debian-9.9.0-amd64-netinst.iso /media/cdrom
    
    マウントを外す場合は以下のコマンドです。
    sudo umount /media/cdrom
    

LANドライバのインストール

以下、「ダウンロード」ディレクトリに保存した前提で話を進めます。
(参考サイトそのままの内容ですwww)

  1. 解凍
    ターミナルからダウンロードディレクトリに移動して、以下のコマンドを実行します。
    cd ~/ダウンロード
    tar xf 0008-r8152.53-2.09.0.tar.bz2       #ダウンロードしたファイル名に置き換えてください
    cd r8152-2.09.0                           #解凍されたディレクトリ名に置き換えてください
    
  2. コンパイルしてみる
    以下のコマンドを実行して、コンパイルしてみます。
    make -j2
    
  3. ドライバファイルのバージョンを確認します
    以下のコマンドで、ドライバのバージョンを確認してみます。
    sudo modinfo ./r8152.ko
    
    最新のバージョンが表示されればOKです。ちなみに…今動いているドライバのバージョンは、以下のコマンドで見ることができます。
    sudo modinfo r8152.ko
    
  4. インストール
    以下のコマンドで、リアルにインストールします。
    sudo make install
    sudo depmod -a
    
  5. ベンダーIDとプロダクトIDの取得
    以下のコマンドで「ベンダーID」と「プロダクトID」を取得します。
    lsusb
    
    こんな風に表示されて…
    Bus 002 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 003: ID 0bda:8152 Realtek Semiconductor Corp. 
    Bus 001 Device 005: ID 0411:02cc BUFFALO INC. (formerly MelCo., Inc.) 
    Bus 001 Device 004: ID 2341:8036 Arduino SA Leonardo (CDC ACM, HID)
    Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    
    RealTekのところを見ると、ベンダーIDが「0bda」でプロダクトIDが「8152」であることがわかります。
  6. カーネルモジュールルールの追加
    以下のコマンドで「rtl_usb.conf」ファイルを新規作成します。
    sudo nano /etc/modprobe.d/rtl_usb.conf
    
    ファイルの中に以下を記入します。
    alias usb:v0bdap8152d*dc*dsc*dp*ic*isc*ip*in* r8152
    
    「ctrl+x」から「y」して「Enter」で保存します。
  7. 改めてdepmod
    改めて以下のコマンドを実行します。
    sudo depmod -a
    

ちなみに…

ドライバの更新をすると、少しは安定します。が、やっぱり不安定です。
フォーラムを見ていると、「macアドレスを偽装しろ」と書かれています[1]
MACアドレスの偽装を試したい方は、以下を参考にすると良いかもです…
MAC アドレス偽装 - ArchWiki(ArchLinuxのページですが…)

私はそんな強引なのは嫌なので、結局ASIXの「AX88179」チップを積んだUSB-LANアダプタを買いました。
まだ、購入したばかりなので様子見ですが…今のところ安定しています。

参考サイト

How to properly install RTL8153 driver on Linux - PCsuggest

脚注