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

treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

Debianのapt-get upgradeでやたらとWarningがでる原因

今日は久々にDebianの話題です。
apt-get updateしてからapt-get upgrade、よくしますよね。このときにWarningが出るという現象をご報告します。
古いPCでよく出そうな予感です。

エラーメッセージ

こんな警告メッセージが出力されます。

f:id:treedown:20160406020425p:plain

メッセージ内容です。
----------------------------------------------
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8402-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169
----------------------------------------------

対象の環境
----------------------------------------------
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.4 (jessie)
Release:        8.4
Codename:       jessie
$ uname -a
Linux hostname 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) i686 GNU/Linux
----------------------------------------------

原因はパッケージ不足

要因として「firmware-linux-nonfree」が抜けているとこのようになるようです。

Debian -- Details of package firmware-linux-nonfree in jessie

firmware-linux-nonfreeというのは、non-freeのパッケージなので、mainパッケージしかaptのsources.listに登録されていないのであれば、当然自動的には入らないことになります。いちおう念のためsources.listを記録しておきます。
----------------------------------------------
$ cat /etc/apt/sources.list
#
# deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official i386 NETINST Binary-1 20150425-11:41]/ jessie main
#deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official i386 NETINST Binary-1 20150425-11:41]/ jessie main

deb http://ftp.jp.debian.org/debian/ jessie main
deb-src http://ftp.jp.debian.org/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

# jessie-updates, previously known as 'volatile'
deb http://ftp.jp.debian.org/debian/ jessie-updates main
deb-src http://ftp.jp.debian.org/debian/ jessie-updates main
----------------------------------------------
non-freeは含めていません。と、いうよりmainディレクトリしかいません。こうなるとnon-freeに属するパッケージ:firmware-linux-nonfreeは必要でもインストールされないことになります。

対処した結果

各mainの後にnon-freeを追記して再度apt-get updateで更新し、くだんのfirmware-linux-nonfreeをインストールします。
例:non-free追記例
  deb http://ftp.jp.debian.org/debian/ jessie main non-free
このように全行のmainの記述後に追記していきます。

追記後の実行結果です。

----------------------------------------------
$ sudo apt-get update
$ sudo apt-get install firmware-linux-nonfree
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  firmware-linux-nonfree
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
(以下略)
...
firmware-linux-nonfree (0.43) を展開しています...
firmware-linux-nonfree (0.43) を設定しています ...
update-initramfs: deferring update (trigger activated)
initramfs-tools (0.120+deb8u1) のトリガを処理しています ...
update-initramfs: Generating /boot/initrd.img-3.16.0-4-686-pae
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8402-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169
----------------------------------------------
あれ?また出てしまいました。
「update-initramfs: Generating /boot/initrd.img-3.16.0-4-686-pae」のところで出力されています。

もしかすると「update-initramfs -u」を実行してinitramfsを再生成しないといけないのかもしれません。ひとまず、firmware-linux-nonfreeをインストール後の経過観察をして、Warningが収まらないようなら「update-initramfs -u」実行をしてみようと思います。

今宵はこれまでにいたしとうございます。