SEEDS Creator's Blog

読者です 読者をやめる 読者になる 読者になる

Debianインストール時にNICドライバがない時の対応方法

Debian Linux NIC インフラ

Debianはすべてフリーのライセンスでできたもので構成されている。

そのため、非フリーのドライバを使用するNICを使用しているサーバーの場合は以下のようなエラーがでてNICを認識してくれない。

あなたのハードウェアの一部では、操作するのに非フリーのファームウェアファイルが必要です。
ファームウェアは、USBメモリやフロッピーなどのリムーバブルメディアからロードできます。

見つからないファームウェアファイル: rtl_nic/rtl19168e-2.fw

そのようなメディアを今利用できるのであれば、それを入れて続けて下さい。
リムーバブルメディアから見つからないファームウェアをロードしますか?

解決策

説明にある通り、USBメモリを用意した上で作業します。

まずはみつからないファームウェアファイル名でぐぐります。今回だとrtl19168e-2.fwですが検索するとDebianのnon-freeパッケージにて配布されているようです。

http://packages.debian.org/squeeze-backports/firmware-realtek

まずはこちらからdebファイルをダウンロードします。適当なDebian系のLinux上で以下のコマンドを実行する事でdebファイルが展開されます。

[code] dpkg-deb -x firmware-realtek_0.28+squeeze1_all.deb hogehoge [/code]

上記を実行するとカレントにhogehogeというディレクトリを作成してdebパッケージが展開されます。こちらの中にインストールで必要な「rtl19168e-2.fw」があるのでそちらをUSBメモリにコピーします。今回は以下のパスに目的のファイルがありました。

[code] ./hogehoge/lib/firmware/rtl_nic/rtl19168e-2.fw [/code]

USBメモリにコピーする際はDebianが指定するファームウェアのパスと一緒にする必要があります。今回の例ですと「rtl_nic/rtl19168e-2.fw」が見つからないとなっている為、USBメモリ上にrtl_nicという名前のディレクトリを作成し、そこへ「rtl19168e-2.fw」を持ってきます。

あとは完成したUSBメモリを刺してインストールを続行すればOKです。

インストール後

インストール完了後は念のため、パッケージ自体をインストールしておけばいいかもしれません。

まずはnon-freeパッケージをリポジトリに追加します。

[code] vi /etc/apt/source_list [/code]

以下を追加 [code] deb http://ftp.de.debian.org/debian squeeze main non-free [/code]

アップデート [code] apt-get update [/code]

以下のようなエラーが発生しました。

[code] W: GPG error: http://ftp.riken.jp lenny Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY AED4B06F473041FA W: GPG error: http://ftp.de.debian.org squeeze Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY AED4B06F473041FA W: これらの問題を解決するためには apt-get update を実行する必要があるかもしれません [/code]

問題を解決する為にはapt-get updateしろって書いてるけどもちろん鍵認証のエラーなので解決しない。 keyringをインストールし、再度アップデート

[code] apt-get install debian-archive-keyring apt-get update [/code]

NICのドライバファーム(今回はrealtek)をインストール

[code] apt-get install firmware-realtek [/code]

備考

今までこのエラーは ・Dell PowerEdge T310 ・ShuttleのPC(XPCとか) の機種で何回か遭遇しましたが、 ほとんどが「realtek」か「broadcom」ですね。 どちらもDebianにはnon-freeとしてドライバが配布されています。