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

百日半狂乱

Shut the fuck up and write some code!!

Ubuntu12.04のフリーズバグとlinuxカーネルのバージョンアップ

Ubuntu12.04 Linux

Ubuntu13.04出たし、かなり古い話題だけど、コマンド一発でカーネルバージョンアップができたのでメモ.

Ubuntu12.04でカーネルのバージョンが 3.2.0-40-generic-paeあたりだった場合、

特にブラウザ開いて動画視聴している最中に何の前触れもなくフリーズするバグが発生する.

その解決方法は、linuxカーネルのバージョンアップでしたという話.

フリーズの原因

発生した場合、マウスもキーボードも無反応で、電源落とす以外に復旧方法が何もないという恐ろしい状況に陥る*1

再起動後にdmesgコマンドをたたくと、ERROR Power management discrepancyなどといういかにもなログがあったので、こいつで検索してみると、 同様の症状について、12.04 drm error in kern.logとかubuntu 12.04 completely freezes frequently. などで報告されていた.

正直詳しく読んでないので、結局カーネルのバグなのか、なんのかはわかりませんが...orz

なんせカーネルのバージョンアップを行うとフリーズしなくなるらしい.

linuxカーネルのバージョンアップ

カーネルのアップデートについては、How can I upgrade the Ubuntu 12.04.2 kernel to 3.5.0-23?などというド直球な質問があったのでこれを参考にカーネルをアップデートしてみる.

ちなみに、

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get linux-generic

としても、12.04にデフォルトで入っているlinuxカーネルのリビジョン(バージョン番号の3桁目以降?)が更新されるだけでカーネルのバージョンは上がらない*2

例えば、quantalにカーネルイメージをバージョンアップするなら、

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get linux-generic-lts-quantal

としてrebootする.バージョンを確認すると、無事バージョンアップができたみたい.

$ uname -rv
3.5.0-43-generic #66~precise1-Ubuntu SMP Thu Oct 24 14:55:08 UTC 2013

お手軽.

Xもバージョンアップ

Xはlinuxのカーネルイメージに付いているパッケージ名に沿って配布されているようです.

For the new X stack:

sudo apt-get install xserver-xorg-lts-quantal

WARNING: If you are using the xorg-edgers PPA, do not install the xserver-xorg-lts-quantal package as this will most likely result in breakage.

Reference: https://launchpad.net/~xorg-edgers/+archive/ppa

This is only recommended for x86 hardware installations.

WARNINGに注意!

古いカーネルイメージの削除

せっかくなので古いカーネルイメージの削除方法も調べてみた.

(/boot の容量不足時) 不要なカーネル イメージを削除する (Ubuntu 13.04, Lubuntu 13.04)

もちろん、12.04でもできるので、削除.

$ dpkg --get-selections | grep linux-image
$ sudo apt-get autoremove --purge linux-image-3.2.0-*
......
以下のパッケージは「削除」されます:
  linux-generic-pae* linux-image-3.2.0-30-generic-pae*
  linux-image-3.2.0-53-generic-pae* linux-image-3.2.0-55-generic-pae*
  linux-image-3.2.0-56-generic-pae* linux-image-generic-pae*
アップグレード: 0 個、新規インストール: 0 個、削除: 6 個、保留: 0 個。
この操作後に 454 MB のディスク容量が解放されます。
続行しますか [Y/n]? y
......

お手軽*3

カーネルイメージいろいろ

quantalってなんじゃ?思ったので調べてみたらカーネルイメージのパッケージ名のようで、linux-image-generic パッケージがズラッとあってquantalは3.5.0.43.59のパッケージのようだ*4

sudo apt-get install linux-genericでタブ2回叩いてみると、全部じゃないけどいくつかヒットした.

$ sudo apt-get install linux-generic
linux-generic                        linux-generic-lts-raring             linux-generic-lts-saucy-eol-upgrade
linux-generic-lts-quantal            linux-generic-lts-saucy              linux-generic-pae

なんか、ひたすらURL張っただけの記事になってしまった.

*1:一回、gitのコミット中にフリーズした際にローカルのリポジトリがぶっ壊れて酷い目に合った

*2:Linux3.0以降はバージョン番号の二桁目がマイナーバージョンと呼ばれてて、ここが一つ増えればバージョンが一つ上がったという解釈で良いのだろうか参考,参考2.

*3:いちいち、コマンド実行前の状況を記録し忘れてますが、3.5に上げる前は3.2が入ってました

*4:これってどういう基準で名前が付いているのだろう?