玩式草子─ソフトウェアとたわむれる日々

第65回 やっと出ましたPlamo-5.3

この記事を読むのに必要な時間:およそ 4 分

新年明けましておめでとうございます。通常,本連載は月末ごろに公開しているものの,今回は年末進行の都合で年明け公開になりました。つきましては,昨年一年のご愛読を感謝すると共に,本年もよろしくお付き合いくださいますよう,この場を借りてお願い申しあげます。

さて,暮れも押し詰まった大晦日の日,何とか年内駆け込みでPlamo Linux 5.3リリースしました。従来,Plamo Linuxは年に1,2度のペースで新バージョンをリリースしてきたものの,2014年は,夏ごろに予定していたリリースの機会を逃してしまい,そのまま秋が来て,冬になり,そろそろ年末が見えてきた11月の下旬,このままではリリースが無いまま一年が終ってしまう,と一念発起し,11月の終りごろから,古くなっていたパッケージの更新と更新したバイナリとライブラリの依存関係の調整を繰り返し,最後の数日はひたすらテストやパッケージの解説ファイル書きに費して,何とかリリースにこぎつけることができました。

図1 Plamo-5.3のKDE環境

図1 Plamo-5.3のKDE環境

上図に示したスクリーン画面を見る限り,以前のバージョンとそう変わりないように見えるものの,内側では多くのソフトウェアが最新版に更新され,使い勝手等も改善しているので,Plamo Linuxに興味を持った方は,ぜひ最新版のPlamo-5.3を試してみてください。今回は宣伝を兼ねて(苦笑)⁠Plamo Linux 5.3の新機能や変更点などを紹介します。

Plamo Linux 5.3の新機能

"5.3"というバージョン番号が示すように,今回のバージョンアップは「メンテナンス・リリース」という位置づけにしています。しかしながら,前バージョンである5.2からは丸一年ぶりのバージョンアップで,GCCやGlibcといったシステムの根幹部分のソフトウェアも更新しており,その意味ではPlamo-6.0への経由地的なリリースとも言えそうです。以下,更新した主要なソフトウェアについて,前バージョンと比較しながら紹介してみます。

Glibc-2.20

Plamo-5.2では2.16だったGlibcを2.20に更新しました。GlibcはC言語で書かれたソフトウェア全てが利用するライブラリなので,仕様が変ると既存ソフトウェアの大半が影響を受けることになります。そのため従来は,同じメジャーバージョン(たとえばPlamo-3)の間はGlibcのバージョンを変えず,Plamo-4に更新する際にGlibcもバージョンアップする,という形にしていました。しかしながら,最近ではGlibcの後方互換性も十分に保証されるようになったので,今回はメンテナンス・リリースの枠内でもGlibcをバージョンアップしてみました。

UNIX系OSではカーネルとアプリケーションソフトウェアは厳格に分離され,アプリケーションがカーネルの機能を利用する際は,常にlibc(Linuxの場合はGlibc)を経由する必要があります。すなわち,カーネルに何か新機能が追加されたとしても,libcにその機能を利用するためのシステムコールが追加されない限り,アプリケーションからカーネルの新機能は利用できないわけです。glibc-2.16は2年半ほど前の2012年6月に公開されており,その後カーネルに追加された新機能には対応していません。2014年9月に公開されたglibc-2.20はこの2年少しのギャップを埋めてくれることでしょう。

GCC-4.8.4

Plamo-5.2では4.6.3だったGCCも4.8.4まで更新しました。GCCはコンパイラなので,互換性を損なうような変更があっても,更新した影響は新たにコンパイルするソフトウェアに限定されるため,Glibcよりは気軽に更新できます。しかしながら,安定性を重視して最新の4.9系ではなく,1つ前の4.8系を採用することにしました。

$ gcc -v
組み込み spec を使用しています。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.8.4/lto-wrapper
ターゲット: x86_64-pc-linux-gnu
configure 設定: /mnt/Srcs/G/Gcc/gcc-4.8.4/configure --prefix=/usr --libdir=/usr/lib64
 --sysconfdir=/etc --localstatedir=/var --mandir='/usr/share/man' --build=x86_64-pc-linux-gnu
 --host=x86_64-pc-linux-gnu --libexecdir=/usr/lib64 --enable-languages=c,c++,fortran,go,lto
 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
 --enable-gnu-unique-object --enable-linker-build-id --enable-cloog-backend=isl --enable-lto
 --enable-plugin --enable-install-libiberty --enable-clocale=gnu --disable-libunwind-exceptions
 --disable-libstdcxx-pch --disable-werror --disable-multilib --with-system-zlib --with-linker-hash-style=gnu
スレッドモデル: posix
gcc バージョン 4.8.4 (GCC)

GCCはフリーなC/C++コンパイラとして独占的な地位を占めていたこともあって,新機能の採用には比較的慎重でした。しかし最近では,LLVM/Clangが性能や移植性でGCCに肩を並べるまでに成長し,それに刺激されてGCCの開発ペースも上がって,新しい機能や仕様を取り込んだ新バージョンが早いサイクルでリリースされるようになりました。両者の競争は,LLVMがApple社が提唱したSwift言語を利用可能としたのに対し,GCCはGoogle社が提唱したGo言語を採用するなど,新世代の言語の発展にも好影響を及ぼしているようです。

linux-3.17.6

カーネルはPlamo-5.2の3.12.5に対し,5世代くらい新しくなった3.17.6を採用しました。

$ uname -a
Linux corei7 3.17.6-plamo64 #1 SMP PREEMPT Tue Dec 16 11:18:32 JST 2014 x86_64 GNU/Linux

メンテナの田向さんや名倉さんの努力で,コンソールにEUC-JPな日本語を表示するuniconパッチやLiveCD(P-Plamo)に必須のaufsパッチも従来同様に使えると共に,3.18カーネルで正式に採用されたoverlayfsパッチも先取りして適用しています。

最近のカーネルでは,KMS(Kernel Mode Set)と呼ばれる機能を使って,IntelやAMD/ATIのGPUをより積極的に操作するようになっています。このような操作はGPUを活用するためには必要なものの,まれに副作用を引き起こすこともあるようで,手もとのRadeon HD 5450を使ったビデオカードでは,3.17.6カーネルで起動するとKMSが働いた瞬間,画面がブラックアウトして,システムがハングしてしまいました。

3.12.5ではこのような問題は起きなかったので,どこからダメになったのかを調べようと,3.12から3.17までの間のカーネルを順番に試してみたところ,3.13.11から3.14の間でダメになったことが分かりました。この間の変更箇所や同様のトラブル情報をあれこれ調べた結果,どうやら3.14で更新されたRadeon用のDRM(Direct Rendering Manager)にはDPM(Dynamic Power Management)と呼ばれる電源管理機能が追加されており,手元のビデオカードはこの機能を利用しようとするとハングするようでした。

この機能はデフォルトで有効になるものの,起動時パラメータにradeon.dpm=0 を追加すれば無効にできるとのことなので,この設定をgrub.cfgに追加して,無事起動できるようになりました。

echo    'Linux 3.17.6-plamo64 をロード中...'
linux   /boot/vmlinuz-3.17.6-plamo64 root=/dev/sdc1 ro  vga16 unicon=eucjp vt.default_utf8=0 panic_output=7 radeon.dpm=0

同じRadeon系のビデオカードを使っている方からは,このオプションを指定しなくても異常なく起動した旨の報告もあるので,この問題は恐らくビデオカード側の設計に起因するのでしょう。

著者プロフィール

こじまみつひろ

Plamo Linuxとりまとめ役。もともとは人類学的にハッカー文化を研究しようとしていたものの,いつの間にかミイラ取りがミイラになってOSSの世界にどっぷりと漬かってしまいました。最近は田舎に隠棲して半農半自営な生活をしながらソフトウェアと戯れています。

URLhttp://www.linet.gr.jp/~kojima/Plamo/index.html

コメント

コメントの記入