AMDがGPUソフトウェアをオープン化、Linuxに注力

PCwatchの記事にもなっているが、AMDはRadeon SoftwareのOSS化をはかるようだ。

AMDとnVidia、どちらが優位にあるのか、ということはよく知らない。
GPGPUやPCゲームにおいてはnVidiaが圧倒的第一人者であるように見える。しかし、PlayStation4, Xbox360, Xbox One, Wii Uとコンシュマーゲーム機などではAMDの独占状態だ。

しかし、印象としては、Intelに対するAMD、nVidiaに対するAMDと、巨人に立ち向かうイメージが私の中にはある。

私はAMDが好きだ。AMDとATIは別に考えろという人もいるかもしれないが、AMDが好きだ。できることならばAMDで通したい、と思ってきた。
だが、現実はそうはいかない。
一見すると、コア数が多く高回転なAMDのCPUは、Linux、あるいはUnixで非常に有利に見える。forkモデルによって非常に多くのプロセスを回すためだ。
にもかかわらず、スループットの低さを感じるようなUXの悪さがついてまわる。

グラフィックスのほうはもっと深刻だ。描画のバグが多く、VDPAUはまともに動作しない。ビデオ再生の支援すらできず、セカンダリディスプレイではマウスカーソルが歪む。Skypeではビデオが変色してしまう。

結果的には、AMD環境はWidnowsではあれば、Intel+nVidiaに遜色ない結果を残せる構成であっても、Linux環境ではUXが著しく悪い。
話にはLinuxを向いているようなのに実際は違う、というのは非常に残念な思いだった。

そこに飛び込んできたのがこのニュースだ。

AMDがLinuxを軽視しているためにドライバが不出来でうまく動作しないわけではなく、Linuxに活路を見出してくれたということがとても嬉しい。

記事によればGPUコンピューティングのためのもので、ビデオ改善のためではないようだが、これからの動向が楽しみだ。

nVidia vs AMD (nvidia-driver vs catalyst) on Linux

AMD APU (Radeon R7)からQuadroに変わって猛烈に快適になった私のPC。これまで抱えていた非常に多くの問題が、なんだか勝手に解決した。

今までの苦労はなんだった。

そんなにRadeonがダメなのか?それとも、そんなにCatalystがダメなのか?
Windowsでもマウスカーソルが歪むという話は出ているのであまり良くはないだろうとは思うけれど、それともGeForceだと同じようなものなのか。

Phoronixの記事を見ると、この場合はLinux Gamingだし、しかもGeForceとRadeonだしではあるけれど、この情報から明らかなことがある。

RadeonよりもGeForce(グレード関係なし)。

RadeonよりもGeForceのほうがゲームで好まれるというのはあるが、WindowsにおけるそれはどちらかというとGeForceに最適されているからである、という話をきく。Radeonに最適化されたゲームにおいてはRadeonのほうが快適だというのだ。

だが、Linuxのこの結果は、10万円クラスのR9 Furyが3万円以下のGTX 950と同等というわけのわからない結果になっている。

つまり、Catalystはひどい、と。R9 Furyみたいなモンスターを腐らせてしまうくらいに。

AMDはLinuxサポートの強化とかいってなかったか?それでこれか?
様々な挙動不審も、CatalystドライバーがLinux向けにちゃんと作られていないからだろう。

hp Z400 ( Intel Xeon W3565 + nVIDIA Quadro 2000 ) Manjaro Linux

経緯

事はデスクトップPCが壊れたことに端を発する。

起動不能となり、配線のチェックなども行ったものの解決せず、結局秋葉原まで持ち込み修理に出してきた。

BUYMORE秋葉原本店で購入したものであるため、Unicom秋葉原サポートセンターに持ち込み。
事前に、ケースが不要であることを確認し、電源と、マザーボード+メモリ+APUの状態で持ち込んだ。

ちなみに、台風のため(甚大な被害を出したあの雨だ)、翌日の持ち込みとなった。

秋葉原サポートセンターは非常にわかりづらい場所にある。随分探しまわってしまった。
総武本線の高架下沿いで、JRの駅からは中央通りをはさんで反対側、御茶ノ水方向で、KFCの向かいだが表ではなく裏側の向かい、マウスコンピューターの地下1階で、しかもその階段はサービスカウンター沿いの奥にある。

とりあえず持ち込んだはいいが、なんといっても台湾送りのため、1ヶ月程度はかかるもよう。その間仕事ができないというのは、とても困る。

暫定的な対応

とりあえずは、ProLiant MicroserverのSlaveディスク4台を抜き出し、Masterディスク4台を投入、Masterのキーファイルを入れ、Masterをマウントできるようにする。

SlaveをMasterに昇格させると数日分の作業データを失うこととなる。
基本的にはSlaveはMasterディスクの損失に対する存在だ。

これによってProLiant MicroServerで本来のデータが扱えるようになり、sshfsでアクセスすることでデータにはアクセスできるようになった。

だが、環境に関するデータは結構困る。
FUSEやNFSでマウントしているデータへのアクセスはかなり制限される。FUSE環境だとアクセスできるのが所有者に限られるためsudoが使えない、という程度はわかるが、なんとSpamassassinがちゃんと動かない。ちなみに、sudoでもsu -cでも動かないが、su -なら動く。

細かく様々制約され、「なんだか変な挙動」「なぜか動かない」が蓄積し、作業効率を大幅に下げる。

問題はそれだけではない。それをドライブする端末がないのだ。
ThinkPad e440は異常なまでに不安定であり、作業効率は10%も出ない。1分ごとにXが落ちて、その再起動に30秒程度かかるなど話にならない。

ちなみに、e440はWindowsの初期状態でもかなり不安定な挙動を見せる。もう、Lenovoのことはだいぶ嫌いになっている。

かといってとProLiant MicroServerの直接利用も性能的にも厳しいし、映像出力系にトラブルがあり、難しい。

対策の候補

いずれにせよ、必要だと分かっていた冗長系投入を遅延させていたのが問題であり、冗長系を投入するのが妥当だろう。
窮状にあって苦しいが、やむを得ない。

候補は以下だ

  • 直近の将来の要求である4k x3モニターが可能なメイン系(現行を冗長系へ) (14万円)
  • あくまでも冗長系の新品AMD A4マシン (3万円)
  • あくまでも冗長系の中古マシン (2万円)
  • 活用可能な中古マシン (4万円)

4k x3を可能にするのは、Quadro K1200が最低ラインのようだ。K620に関しては、DP Hubによる分岐もFQHDまでしかサポートしない。そのため、結構な額になった。なお、全体はSkylakeで構成することを想定した。

やはり、額が大きいことと、これからSkylakeも安くなっていくだろうし、USB CやDDR4メモリなど新規格が続々の中ではなかなか筋が悪い。

新品AMDマシンは構成が近いため、冗長環境を作りやすいが、既に問題が大量にあり、しかも十分なパフォーマンスがないというのに、さらに下位のものを選ぶのはなかなか厳しい。

さらに、メーカーが非常に評判が悪く、保証どころか修理すら預けられない感じであったため、それならば中古のほうが良いと判断し、最初に消去した。

2万円はCore i7-870、4GB RAM、GeForce 250GTマシン、4万円はXeon W3565, 4GB RAM, Quadro 2000マシンだった。

Windows的に、そしてベンチマーク的に測ればおそらく大差ない。実際ベンチマークを見るとXeon W3565が6,093、i7 870が5,480で、7700kは5,247となっている。

Skylake i7のベスト(i7-6700k)は10,957、4770kでも10,184ということを見れば、やはりふるさは否めない。
一方で逆の見方をすればそれで最新のKaveriよりも上なのだから、ハイエンドってすごいなぁ、とも思う。

GeForce GTS250は随分数字が小さいことに不安を覚えたが、この時は全世代のハイエンドである9800 GTX+(上から2番目)の名前だけを変えたのがGTS 250で、このシリーズでは上から6番目、下から4番目、とのことだ。

古いので、最新ゲームは結構きつそう。時代を感じる。

もっとも、もうこの世代になるとGeForceはOpenGLを切る方向だった。
LinuxはDirectXを使わないし、安定性を求めるならQuadroのほうがいい。nVidiaはQuadroに関してはLinuxのサポートも手厚い。

Windows上での性能は差が小さいが、私が使う上での価値はかなり差が開いている。妥当な価格差だ。

これだけの性能があれば、何かの時に助けてくれる気がする…ということで、hp Z400 workstationを購入した。

hp Z400 Workstation

2009年に投入された前期型型Z400ワークステーションは、CPUはXeon W3520からW3580までで、これら対して5250円の水冷オプションがある。

グラフィックスボードを持たない最小構成で22万円程度、Quadro FX1800を含むと27万円程度とのこと。

後期型はW3520はそのままだが、W3565, W3680, W3690とプロセッサが変更され、グラフィックスのラインナップも一新、QuadroだけでなくFireProも加わっている。
また、メモリスロットを4から6に増やし、最大24GBメモリをサポートするようになった。チップセットはintel X58とのことだ。

最小構成+水冷を99,750円で提供していたらしいが、最初構成で買う人がいたのだろうか?

SASモデルもある。SASモデルでなくてよかった。

私が購入したモデルは、Xeon W3565プロセッサ, 4GB RAM, Quadro 2000の水冷モデル。
SATA仕様で、電源は475Wブロンズ、X58チップセットの後期型だ。

光学ドライブを搭載している。DVD-ROMドライブやBDドライブもあったようだが、DVDスーパーマルチドライブだった。

Xeonについて

Intel XeonはIntelのワークステーション/サーバー向けのCPUである。

ワークステーション向けは処理性能が高く、サーバー向けはコア数が多くて発熱が抑えられている。

Xeonのワークステーション向けの下位モデルは、民生用で最上位のCore i7 Extreameシリーズと同等品となり、またそれ以上のモデルが用意されている。

基本的には民生用のCoreシリーズと比べると高性能だが、それだけでなくECCメモリーへの対応や、CPUあたり6本のメモリスロット、マルチCPUのサポートなどより高度な性能要求や安定性に耐える仕様となっている。

その分各部品は割高だ。マザーボードも非常に高価だが、ECCメモリーなども地味に痛い。

Quadroについて

nVIDIA Quadroは、nVIDIAの映像処理向けグラフィックスボードだ。

民生用のGeForceがDirectXに特化した「ゲーム用」であるのに対し、3Dグラフィックデザイナー、CADアーティスト、映像クリエイターなどに向けてOpenGLに特化した仕様としている。

また、安定性もかなり高められており、他画面出力にも強くトレーダーにも適している。

nVIDIAはQuadroについてパッケージにLinuxへの対応を明記している。

ドライバーサポートはnVIDIAのほうが全体に手厚い。
ただし、ビデオドライバのパフォーマンスは、Windowsはおろか、FreeBSDと比べてもはるかに低いのが残念なところだ。

Z400の内部とシステム

配線は余り過ぎない長さになっており、さらにそれがまとめられた上にカバーまでかけられている。

カバーはメモリも覆うようになっていて、放熱上不利に見えるが、もしかしたらエアーコントロールによってむしろメモリ放熱が考えられているのかもしれない。

5インチオープンベイが3つ、3.5インチシャドウベイが2つ、3.5インチオープンベイに見えるが実際は使いみちのない塞がれたベイがひとつある。

SATAコネクタは6で、SATA 2.0 3Gbps。
ただし、SATA電源コネクタは5。空きの4ピンがふたつあり、電源増設は可能。

PCI関連は

  • PCI e2 x8
  • PCI e2 x16
  • PCI e x8
  • PCI e2 x16
  • PCI
  • PCI

となっている。

メモリスロットは6、最大搭載可能量は24GB。標準では2GBx2が積まれていた。トリプルチャンネル仕様。

おそらくはスタビライザーとして昨日するのであろう緑色のステーがQuadroに向かって伸びている。

基本的には緑色の部分は工具なしで操作できる部分だ。パネル自体はハンドル式になっており、必要な工具は増設時のトルクスのみか。

BIOS式でUEFIなし。

BIOSは、起動ロック、ディスクの暗号化に対応。また、RAIDコントローラを持ち、RAID構築が可能。

WoLに対応。ハイパースレッディングのOn/Offが可能。カバーセンサーについては有効・無効を設定可能。

設定項目は非常に少ない。

ブートデバイスの選択は、Optical, USB, Diskのみ。WindowsとLinuxの切り替えは基本的にはデバイスの起動順序を利用する必要がある。

また、Opticalを指定すればOptical Driveを読みにはいくのだが、ブータブルなCDを入れていてもスルーされてしまうことが結構あった。

OSはWindows 7 Professional。ちなみに、この個体はhpのデフォルトではなく、ショップで入れて認証したものが入っている。

Windowsエクスペリエンスでは、だいたい7.0から7.5。ディスクだけは5.9にとどまった。Windowsのディスクは250GB HDDである。UEFIをサポートしないため、ブートディスクの容量は2.2TBが上限となる。

メモリ増設

あとから知ったのだが、hpは

  • DDR3-1366 DIMM ECC Unbufferedのみ対応
  • hp以外のメモリは使用不可
  • ECCとNon-ECCを併用すると、メモリエラーとなり起動しない

と言っている。また、調べてみると

  • ECCとNon-ECCを混ぜることはできない
  • BIOSで有効・無効が切り替えられるのなら、無効にすればNon-ECCメモリが使用できる。常に有効であるなら使用できない。いずれにせよ混ぜることはできない
  • 否、無効にしてしまえば混ぜてもNon-ECCとして動く

とある。

CFD ELIXIR W3U1600HQ-4Gを追加した。

「おそらくはNon-ECCの、DDR3-1600メモリの4GBx2」である。

メモリチェックはちゃんと通ったし、LinuxもWindowsも問題なく機能する。
よくわからないが、とりあえず気にしないことにした。人には勧めない。

なお、最初から1366のメモリが積んであるにもかかわらず、1066で動作している。

HDD

完全にデスクトップを代替しようとすると、Windowsは「音楽系ソフトを入れる別なディスクが必要」となる。

ディスクは6、マウントは5でいいと思ったのだが、実際はディスクは7、マウントが6必要であることに気がついた。

これは、Windows + Windows DATAで2台、Linuxシステムで1台、btrfsプールで4台だ。
PCIeカードでコネクタは間に合うし、電源はなんとかするとしてもマウントがない。

1台はSSDなので、適当に固定すれば良いのだが、HDDはそうもいかない。しかも、光学ドライブがあるため、マウントはさらにもうひとつ必要なのだ。

結局は、全てHDDに充てることで解決したが、実は方法はあった。

マウントに関してはiStar USA BPN-DEを利用した。

これは、5.25インチベイに固定するHDDラックで、5インチベイx2に対して3.5inch HDDx3を固定できる。
ガシャポン式で、コネクタはSATA 6Gbps。トレイなし、ホットスワップ非対応だ。

このラックは、SATAコネクタは3本(当然)必要だが、電源コネクタは2つでまかなえる。そのため、これを使うと電源増設が不要だ。

WindowsのHDDの割り当てが1台しかないため、音楽をこちらに移すことは諦めたが、このラックを使って入れ替えれば可能であることに気がついた。

それどころか、入れ替える前提であるならば光学ドライブを残すことすら可能だ。

しかし、どの程度抜き差しして大丈夫なものか、よくわからないため、しょっちゅう交換する使い方は不安がある。

なお、これらの固定方法はやや特殊。ドライブ自体にまずガイドネジを取り付け、ベイ開口部から挿入する、という形だ。
5インチベイのラックについては、上段が若干ネジ穴位置が低く、ネジを入れてしまうとガイドを通らなかったので、下段のみにネジを入れて固定した。

ネジはシャーシに固定されている。これはProLiant Microserverと同様だ。マイナスドライバーも受け付けるが、基本的にはトルクス。これはProLiant Microserverと規格が同じで、レンチが流用できた。

Linux上での性能

まず、この通り

$ cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us.
hardware limits: 1.60 GHz - 3.19 GHz
			available frequency steps: 3.19 GHz, 3.19 GHz, 3.06 GHz, 2.93 GHz, 2.79 GHz, 2.66 GHz, 2.53 GHz, 2.39 GHz, 2.26 GHz, 2.13 GHz, 2.00 GHz, 1.86 GHz, 1.73 GHz, 1.60 GHz
available cpufreq governors: ondemand, performance
current policy: frequency should be within 1.60 GHz and 3.19 GHz.
				The governor "ondemand" may decide which speed to use
				within this range.
current CPU frequency is 1.60 GHz.
boost state support:
	Supported: yes
	Active: yes
	25500 MHz max turbo 4 active cores
	25500 MHz max turbo 3 active cores
	25500 MHz max turbo 2 active cores
	25500 MHz max turbo 1 active cores

ここで躓かれても困るが。ただ、ondemandperformanceしかないのか。

ハイパースレッディングをONにした状態だと、

$ nproc
8

これも当たり前。

実際、感覚としてはA10-7700Kとはまるで違う。
A10-7700Kは3.4GHzだというのだが、実際に動かしているとほとんどの場合、2.4GHzで動作する。負荷がめいいっぱい高い状態でも2.6GHz、2.8GHzがせいぜいで、フリーズするような状態になってもそんなものだ。

ベンチマークなどで見る性能には、はるか届いていない。というか、モバイル用Celeronのほうがさくさく動く始末だ。

それに対して、Xeonは圧倒的に速い。細かく停止するようなトラブルもない。

メモリは4GBでは圧倒的に足りない。yaourtでビルドできないパッケージが結構ある。
/etc/yaourtrcで設定すれば回避できるが、結局メモリが足りないという問題の解決にはなっていない。

12GBあれば日常的には問題ない。
ただし、一時的であれtmpfsに大きなファイルを置くと圧迫される可能性がある。
とはいえ、実際に使われる範囲としては、6GB前後というのが私の感覚なので、tmpfsに半分とられてもswapもあるし、12GBというのは、おおよそ問題ない気がする。

ただ、そもそも圧迫されている状態になった時にバッファとして使える領域が非常に少ないため、16GBあったほうが安心ではある。

Xeonがとにかく速く、メモリを増設した時のパフォーマンスは本当に感心する。
それだけ良いようだと、最新のワークステーションはどれほどのものなのか…

Quadro 2000 と Linux

さて、問題のQuadroだ。

AMD A10-K7700はAMD R7グラフィックス相当だが、Catalystドライバを使っていても

  • セカンダリディスプレイのマウスカーソルが歪む
  • VDPAU/VA-APIともに使用できない
  • Xのパフォーマンスが非常に悪い。描画のもたつき、プチフリーズが多い
  • Chrome系ブラウザが動作しない。画面が表示されたり消えたりする。プロセスが増えるとまずダメ
  • Skypeで画面が歪む。変色し、緑色の線が入る
  • マルチデスクトップは正常に機能しない

これなら安定して動作するIntelグラフィックスのほうがいいのではないか…と思ってしまう。パフォーマンスも非常に悪い。

対するQuadroは、これらの問題が見事なまでに発生しない。
100時間以上を費やし、動作しない理由の究明に勤しんだVDPAU/VA-APIも、いともあっさりと動いた。動画再生は非常に快適だ。

ただし、VLCで「DRM経由のVA-API」にすると動作しない。「XのVA-API」にする必要がある。

驚いたのはImageMagickの処理が飛躍的に高速化したことだ。
従来1分は余裕でかかっていた処理が3秒以内に完了する。おそらく、数時間かかっていたmogrifyの負担も著しく軽減されるだろう。

とにかく安定している。問題らしき問題が発生すること自体稀だ。

ただし、デスクトップで動作していたOpera Devloperは動作しない。フリーズしてしまう。また、Chrome系のChromiumなどは動作はするものの、入力に対する反応が著しく遅い。Blinkの神経質さが気になる。

Blink系ブラウザではMaxthonが正常に動作するが、Maxthonは現在AURから落ちてしまっている。旧リポジトリから入手可能だ。

これからは事実上Blink以外の選択肢が失われていくように思うのだが、Blinkの動作の不安定さは非常に気になる。WebKit系は動作するが、非常にもっさりだ。

結論

LinuxのグラフィックスボードはQuadro。

AMDのCPUのパフォーマンスが出ない理由はよくわからない。ビデオもCPUも、Windowsではそれほど悪くないように感じるのだ。

ただし、Windowsではオーディオデバイスのほうが見事に落ちまくる。ASIOドライバを使うようなデバイスは、やはりIntelのほうが最適化されているのだろう。AMD CPU不可というものもあるくらいだし、完全な互換性はないのか。

で、AMD APUのパフォーマンスはWindowsの時よりもはるかにしょうもないものに見える。非常にストレスフルな性能だ。

結局のところ、Intel CPU + Quadroという、普通の組み合わせ(Quadroは普通ではないが、Linux的にはむしろ妥当だ)が一番いいようだ。

愛着のある、はじめての自作PCとの比較がこのようなことになって、とても残念だが、だが、このような蓄積は仕事上必要だと思うことにしよう。

高度なことを求める人にLinuxを動かすハードウェアとしてAMD APUは勧められない。

VDPAU/VAAPIが動作しないのは、ディストリビューション的な事情かもしれないが、少なくともマウスカーソルが歪むという問題はディストリビューション問わず発生した。Skypeに関しても同様だ。

これが、Radeon全般の問題なのか、7700K固有の問題なのか、はたまた私の7700Kの問題なのか、あるいはCatalystの問題で将来的に解決されるのか…といったことはわからない。
ただ、マウスカーソルが歪む問題は、やはりRadeon * CatalystにおいてWindowsでも報告されている。

スペックだけをみればAMDの製品はLinuxのほうを向いているかのようだが、事実はそうではないらしい。

Manjaro Linux 0.8.13 setup (3)

"インストール作業"

  • libaacplus
  • evince
  • gedit
  • gedit-plugins
  • gedit-core-assistance
  • ggjs
  • libgit2-glib
  • flashplayer-standalone
  • cnijfilter-mp620
  • xfce4-goodies
  • purple-line
  • wireshark
  • dconf-editor
  • expect
  • firefox-aurora
  • gstreamer-vaapi
  • libvdpau-va-gl

ビデオ関連と、あとはこれまで使っていて欠如しているものを足した。

firefox-auroraはFlashのOut Of Dateに対応したもの。xfce4-goodiesは中途半端に入っていた。

expectはmkpasswdコマンドのためにある。

ビデオプレイヤーの設定

ビデオのパフォーマンスが非常に悪い。 しかも、えらいCPU大食いなので、調べてみたら、ビデオ再生は無条件にGPUを使う、わけではないようだ。

なお、ビデオカードはAMD A10-7700Kで、AMD Radeon R7ということになる。

VLC

環境設定→入力/コーデック→ハードウェアアクセラレーションによるデコード

がある。だが、VDPAUでもDRM経由のVA-APIでも「開けない」と言われてしまう。なぜかnvidiaドライバーを開こうとしたりしている。

X11のVA-APIならば、ただしくAMD用ドライバーで再生するが、フリーズしたり、盛大なブロックノイズなどが頻発する。

Smplayer

VLCよりも快適な再生ができているSMPlayerは、

環境設定→ビデオ→出力ドライバー

で設定できる。色々あるが、とりあえずgl (高速 - ATI カード)を選択することで改善された。

また、「パフォーマンス」の項目にDecodingがあり、Hardware decodingを選択(vaapiにした)することでハードウェアアクセラレーションが利用可能なようだ。

fetchmailが止まる

fetchmailが受信中に停止。 SIGINTで中断して再開するも止まってしまう。

試してみると、特定サーバーで止まる。 そのサーバーより前に記述されているサーバーは正常に処理される。

どうやら、特定メッセージの受信で止まってしまうらしい。 調べたが、あまり有用な情報はなかった。 IMAPでそのメールを除去すると正常に動作するようになった。

この問題は2回目。

Manjaroのアップグレード時のX起動問題と、マウスカーソルの問題

昨年末にきていたAURのアップデートだが、これを適用するとXが起動しなくなる。LVMスナップショットを使ってロールバックしていたが、3回適用しても全て同様の症状となる。

しかし、3回目にyaorutの実行メッセージにヒントをみつけて次のように実行した

sudo mhwd-gpu --setgl catalyst

これで正常に起動した。スナップショットを削除して完了。

そして先日からセカンドモニターのマウスカーソルがバグる、という話をしていて、なんとかしたいので調べてみた。すると、Radeonの問題であり、Windowsでも生じるらしい。Windowsの解決策が並ぶ。

“linux pointer cursor distored”で検索すると情報が出てきた。

のように、

Option “SwCursor” “true”

xorg.confに追記することで解決する、らしい。解決したのかは分からないが、とりあえず今のところなっていない。

Manjaro LinuxのXが起動しなくなった

12-20のシステムアップグレードリリースでManjaroを再起動した際、Xが起動しなくなった。

[ 32.722] (II) fglrx(0): Desc: AMD FireGL DRM kernel module
[ 32.722] (II) fglrx(0): Kernel Module version matches driver.
[ 32.722] (II) fglrx(0): Kernel Module Build Time Information:
[ 32.722] (II) fglrx(0): Build-Kernel UTS_RELEASE: 3.18.0-0-MANJARO
[ 32.722] (II) fglrx(0): Build-Kernel MODVERSIONS: no
[ 32.722] (II) fglrx(0): Build-Kernel __SMP__: no
[ 32.722] (II) fglrx(0): Build-Kernel PAGE_SIZE: 0x1000
[ 32.722] (II) fglrx(0): [uki] register handle = 0x00016000
[ 32.722] (II) fglrx(0): DRI initialization successfull
[ 32.722] (II) fglrx(0): FBADPhys: 0xf400000000 FBMappedSize: 0x010e0000
(==) Log file: “/var/log/Xorg.0.log”, Time: Sat Dec 20 23:57:18 2014
(==) Using config file: “/etc/X11/xorg.conf”
(==) Using config directory: “/etc/X11/xorg.conf.d”
(==) Using system config directory “/usr/share/X11/xorg.conf.d”
(WW) fglrx: No matching Device section for instance (BusID PCI:0@0:1:1) found
/usr/bin/Xorg.bin: symbol lookup error: /usr/lib/xorg/modules/drivers/fglrx_drv.so: undefined symbol: GlxInitVisuals2D

検索すると事例はかなり多く見つかるが、そのほとんどはaticonfig –initialしろというものだ。

だが、これでうまくはいかなかった。nomodesetしろという声もあったが、それはすでにしてあるし、確認もした。

そのほかにはflgrxを無効にする方法について記述されたものがある程度で、それ以外はインストールしろか、もしくは解決しないままか、だ。

かなり深く調べた。エラーでは0:1:1となっているが、本当にBusIDの不一致を疑って調べると0:1:0だったので、それが原因かと思って調べたりもした。だが、結局解決にはつながらなかった。

バックアップしたイメージでロールバック、ということも考えたのだが、まずは総再ビルド&インストール。もし、パッケージが壊れたためならこれで解決する。もともと壊れていたのなら、ロールバックしてアップグレードしても同じことになる。

やり方は次のようなもの。

for i in $(pacman -Q | cut -f 1 -d " ")
do
yaourt -S --noconfirm "$i"
done

sudo時間は長くしておくほうが良い。

だが、うちの場合、頻繁に、長時間に渡ってネットワークダウンが生じる。上流で起きていること(おそらく、回線、集合回線部分のせいだろう)なので私には手出しできない。フルビルドで回っている間ネットワークがダウンすると失敗する。これはなかなか恐ろしい。

幸いにもネットワークダウンには遭遇せず2回完走したのだが、改善しなかった。そこでロールバックを試みたのだが、dumpしたイメージをrestore(8)しようとしたが、0 inode fileと言われ、14GBもあるファイルにもかかわらずできなかった。

システム再インストールしかなくなってしまったが、せめてもということで、pacman -Qの結果を外部に保存しておく。

再インストールだが、Manjaro 0.8.11 Xfce JPのイメージのインストーラではkeymap選択画面でフリーズしてしまい、進まない。0.8.10 XFce JPイメージでインストールする。

2014-11-05のarticleにある手順でセットアップ。

  • pacman-keyの再構築、無効なキーの削除
  • aticonfig
  • vigrでusersのGIDを500

そしてパッケージを復帰させる。いくつか試したが、sudoのtimeoutを無効にした上で

for i in $(ruby -e 'list1 = `pacman -Q | cut -f 1 -d " "`.split("\n")' -e 'list2 = `cut -f 1 -d " " paclist`.split("\n")' -e 'list2.each {|i| next if list1.include?(i); puts i}' )
do
yes Y | yaourt -S "$i"
done

--noconfirmではconfrict時に中止を選択されてしまう。基本的にはこれで通るが、MATE関連でgstreamerかpulseaudioか選べと言われてYを返しても通らないため、チェックしてこの時に一旦INTしてmate関連を手動インストールの上、やり直す。ちなみに、依存関係で入るパッケージもこの方法だと再インストールするため、mozc-utなどはfcitx-mozc-utで入るのだから途中で中断してやり直したほうが早い。

これを避ける方法としては

while p=$(ruby -e 'list1 = `pacman -Q | cut -f 1 -d " "`.split("\n")' -e 'list2 = `cut -f 1 -d " " paclist`.split("\n")' -e 'list2.each {|i| next if list1.include?(i); puts i}' | head -n 1)
[[ -n "$p" ]]
do
yes Y | yaourt -S "$i"
done

で、その他の選択肢を要求する場合を除いていけると思う。だだし、そもそもビルドできないパッケージがあると、それはインストールできないため詰んで(ループして)しまう。監視なしにするにはexpectを使うしかない。なお、xpdf関連は無理だった。

この後は次のようにしてセットアップを進める

  • バックアップしたhomeのイメージをrsync。この時、rsync -av /mnt/1/ –exclude share/ /home/としてマウントされるユーザーデータは回避する。
  • このままではユーザーデータがマウントできないので、sudo -u aki mkdir ~aki/share ~aki/.share.encfsとする。
  • /etc/fstabを編集。tmpfsと~/.share.encfs(btrfsサブボリューム)のマウントを設定。 encfsをマウントするためのスクリプトを~/root/binに書く。
  • これでほぼ通常通り。リブートしてakiでログインし、Catalyst Control Centerを起動、設定すればOKだ。復旧に6日もかかってしまった。
  • 今回のようなことがか内容にと、今回はインストール時にLVMを使用する設定とした。ちなみに、ディスクのパスフレーズの強度を大幅に高めた。
  • だが、標準でLVにVG全域を使用してしまうため、「管理やバックアップを容易にするため」と言いながら、実際は全く柔軟性がない。仕方ないので、SystemRescueCDで起動し、luksOpenしてvgscanし、ルートボリュームをe2fsck+resizefs+e2fsckで縮小した後、lvreduce --size 80G ManjaroVG/ManjaroRootでOK。アップデート前にスナップショットを取るようにすればロールバックは容易になる。Manjaroでは運用中にこのような事態に陥ることが既に3回めなので必要だろう。また、rsyncでバックアップしておくことも必要かもしれない。

MageiaからManjaroへ

Manjaroのセットアップ

Mageiaのパッケージ管理ツールのまずさというのが、「削除がうまくいかない」ことにある。Wineインストール時に一度選択して、その後選択解除するとごっそりパッケージを抜かれる。そして、もう一度選択しても抜くパッケージを選択してくれない。

わかっていたのにやってしまった。KDEやKDMなどがごっそり抜かれ、修復困難な状態に。動かない、ということはないのだが、グラフィカルスクリーンを立ち上げることができないため、諦めたほうが早い。

翌日(今日)がopenSUSE 13.2のリリースdayだったので、1日待ってopenSUSE 13.2にしようかとも思ったのだが、まずはManjaroに挑戦してみることにした。「あっ、やっちゃった」と思ってリブート前にManjaro Linux 0.8.10 XFce JPを焼いておいた。これは、以前のものからはちょっと更新されているほか、以前はライブCDの部屋のCinnamon日本語版だったが、今回はManjaro JPのものにした。

以前はGPGキーリングの問題が出てインストールできなくなってしまっていたが、今回はバージョンを上げて再チャレンジ。

しかし、以前のものはとりあえずXが落ちるところまではいくのだが、UEFIブートだとnomodeset, nokmsbootでもブートスプラッシュまで行かない。USBからのブート(BIOS)なら行くし、Xが落ちる。しかし、オプションなしではシステムが落ちる。

UEFIの場合、グラフィックタイプ別のmodeset設定がされており、それを消せばnoXまでは行く。しかし、CUI testingインストーラではいまいちうまくインストールできない。CUI stableインストーラでBIOSブート、というのも悔しいのでいろいろ試していると、nokmsboot+nomodeset+non-free driversでいける、ということがわかった。これであればライブ起動するため、「普通に」インストールできる。

「普通に」UEFIブートでGPT使ってインストールしたところ、UEFIのブートメニューにmanjaroという項目が登場する。これであとは起動時にブートオプションをつけることを忘れなければ(eキーでeditし、linuxの行にnomodeset,nokmsbootの2項目を追加)普通に起動できる。が、アップデートできない(!)

gnupg cannot locally signのエラーが出るのだ。これは以前と同じ問題。ここで躓いてしまうと諦めるしかない。調べると、答えが載っていた!(以前はなかった)

Manjaroフォーラムの情報に従い

# mv /etc/pacman.d/gnupg /etc/pacman.d/gnupgold
# pacman-key --init
# pacman-key --populate archlinux manjaro
# pacman-key --refresh

とすることで進む(–initはかなり時間がかかる)。が、やはり検証できない鍵があり、アップデートに失敗する。

ネットランナーの記事を参考に

# sudo pacman-key -r 604F8BA2
# sudo pacman-key --lsign-key 604F8BA2
# sudo pacman-key -r AC97B894
# sudo pacman-key --lsign-key AC97B894

とすると通った。

あとは以前の通り、Forumの情報にしたがって

# pacman -Syu
# aticonfig --initial
# mhwd-kernel -i linux314

でいける。314でなくても良い気もするが、とりあえず314にしておいた。これでCatalystで起動してくれる。

Manjaroは比較的豊富なパッケージを導入している。encfs, ecryptfs, btrfs, LVMなども最初から入れており、比較的難なく継続利用することができる。

ただし、UIDが1000、GID(users)が100を割り当てるため、互換性に乏しい。ここは統一ルールとして

  • 一般ユーザーのUIDは1000から始める
  • usersグループのGIDは500にする

というルールを設けてvipw及びvigrで編集する。

さらにホールディレクトリの設定は不十分だったので、これも改善しておく。基本的に共有される部分が~/shareにマウントされるサブボリュームであり、ホームディレクトリ直下で使われるものについてはシンボリックリンクで対応する。

home-aki-shareサブボリュームはすでに用意されているが、これまでhomeサブボリュームに自身のホームディレクトリが含まれていた。homeサブボリュームを新たに作り、従来のhomeサブボリュームは「Mageiaのhome」と理解する。また、統一ルールのため、従来のshareサブボリュームについては、chown -R aki:users /mnt/4することで修正する。もちろん、「Mageiaのhome」に未整理のまま取り残されているファイルも存在する。だが、ホーム直下に置き去りにすることはあまりないので影響は少ない、はずだ。こういう時のために~/home/share/jumbleディレクトリでも用意しておこうか。(本来はshare直下にそれをする予定だった)

基本的なものは揃っているが、zsh, git, ruby, sox, fetchmail, claws-mailがないためそのままでは動かない(vlcに関してはMageiaで作りこんだ仕様よりも気持ちよく動く)。これらをインストール。また、mikutterのためにはbundlerをインストールした上でbundleする必要がある。また、iron(SRWare iron)はライブラリがないため動かないし、ironはAURにもない。ただし、MaxthonやOpera developerはAURに存在する。

AURにはlvとnkfもあるので、これも導入しておく。

fontconfigに関してはlocal.confもUserconfも反映してくれない。優先度を99にしても反映されない。これについてはわからないのでpending.

次にオーディオ設定だが、デフォルトでpulseaudioに依存したシステムを組んでいるのでなかなかややこしい。pulseaudioを消すことはできるが、そうするとそのままでは鳴らないプログラムもあるかもしれない。

pulseaudioがなぜ嫌かというと、まぁ、強制的に16bit/48Khzにするからであり、音が悪いからなのだ。USBオーディオインターフェイスを使っている(24bit/92kHz)私としては「なんとももったいない」。ただし、実際はハイレゾ音源なんて制作以外で扱うことは滅多にないし、pulseaudioを外したところで快適なプレイヤーで再生する状況ではないので、わざわざpulseaudioをパージしなくても、どうしても聴きたい時だけalsaplayerだと思うが。

pulseaudioとはなにかというと、簡単に言えばオーディオドライバに対する高レベルAPI(サウンドサーバー)だ。pulseaudioを経由してesound, oss, alsaといったサウンドサーバー、サウンドドライバーから音を出すことができ、扱いやすく統一した取り扱いを提供する。つまり、プログラマ的、コンピュータ的な論理化、抽象化を提供するレイヤーというわけだ。もしかしたらpulseaudio-jackなんてものもあるかもしれない。だが、確実に鳴らすために16bit/48kHzに変換するし、そこで遅延が生じるし音も悪くなる、という。

ALSAでがんばってみたのだが、Audio4DJは4chあり、Cahnnel B(Headphone monitor)から出したいのだが、ALSAだとChannel Aから出てしまう。結局諦めて、pulseaudio-managerの設定でデバイスを設定(デバイスごとに出力チャンネルが選べるので、Amarok起動状態でAudio4DJのチャンネルをBにし、Amarokの出力をAudio4DJにする)することでAmarokでスピーカーが鳴らせるようになった。

AmarokはGstreamer backendでPulseaudio経由の設定でビルドされている。Xine backendのほうが音がいいのに…Pulseaudioの音はちょっと平べったいけれど、割とスムーズなのと、従来(AmarokでPhononがAudio4DJを出力デバイスにする)はフォーマットが異なる場合などに音が鳴らないままシークが進み、音がバグるトラブルがあったが、それがない。I doというmp3の音源はまともに再生できなかった、ということも解消された。遅延はあるにせよコントロールはしっかりしているので、必ずしも「音が悪い」とは言えないかもしれない。ちゃんと安定して演奏できることは大事だろう。「いい音で聴きたい音楽のみAmarokを使うことで確実にAudio4DJ+Sonyスピーカーから出て、他の音はlogicoolスピーカーから出る、という扱いの良さや意図した通り環境によらず鳴ってくれる点を含めてもしかしたら結構いいのかもしれない。

Manjaro XFce JPの使い心地

ManjaroはManjaro+Arch+AURのリポジトリを使う。AURのパッケージはかなり多く、UbuntuやopenSUSEに匹敵するパッケージがある。また、AURに集約されているため、レベルの高いユーザーの成果物がダイレクトに利用できるというのが非常に大きな魅力となっている。

ただし、もともとArchは最低限のパッケージを導入して使うものなので、それを色々入れて「初心者向け」にしていることの破綻はある。

まず、パッケージインストーラが「ひとつずつインストールを選択する」ことや、「最低限の依存パッケージをchoiceしようとする」ということがまず多くの、そして完成された高機能なソフトウェアシステムを求める人にとっては環境づくりのハードルが高いし、あまり色々いれるともともとあれもこれも入れて選択するような使い方を推奨していないのでトラブルの原因にもなる。「どのパッケージが必要か」分かっている人が余計なものは入れない方向で使うようにしないと機能しないシステムが出来上がりそうだ。

全体にはパッケージは早いがFedoraほどは早くない。それに、パッチ当てなどにあまり熱心でない(必要なら自分でやれ、というのもある)ので、性能や機能面で劣る場合もある。速さはあまりない。また、日本では人気はそれなりにあるが、日本語環境はかなり悪く(それでもMageiaよりはかなりマシだが)、パッケージやオプションが日本での使用に適さないこともある。Archは必要ならABSを使って調整するものなので、あまり余計なものを入れているといろいろ苦しい。

さらに、Japanese Fontを入れようとしたらAURにあるものはかなりがビルドに失敗する(理由は提示されない)ということもあるし、システムへの理解が足りない初心者には決して易しくない、と思う。それでいえばChakraのほうがいいのではないか。パッケージはかなり少ないし日本語は絶望的だが。

Manjaroの情報は少ないが、Forumに結構情報があるし、ベースのArchのwiki(極めて充実している)がほとんどそのまま適用できるため、総合的には情報はむしろ多い。configuration toolの類は少なく、Manjaroが調整を入れているパッケージはあまり多くない。Ubuntuもその点はあまり変わらないが、openSUSEのような「あまりわからなくてもなんとかなる」要素は希薄。

XFceはかなり進化していて、使い心地は非常に良い。のだが、細かな設定ができず使いにくい面もある。例えば、デスクトップのエッジでは4方向に(コーナーはない)最大化してくれるが、ワークスペースを使っていると、ワークスペースとつながっている部分はそのまま通り抜けてしまうようになっている。この点について、とおりぬけるかどうかの設定はない。Notify-sendの対応も悪くはないのだが、邪魔になることがある。また、KDEのようにテーマを容易に導入することもできない。

ファミリーアプリの貧弱さに関しては、最低限のインストールができるようになっているために、kateやgwenview, amarokなどを使うこともできる。ただし、この場合はkdelibがロードされるためメモリーは必要になる。とはいえパッケージでごちゃごちゃすることは回避できる。

KDEを使うこともできるが、使用するパッケージが多く依存関係も深いため、システムのメンテナンスはおそらくかなり大変になる。KDEは好きだが、そこまでするかどうかは悩みどころ。どちらかといえばAwesomeやXmonadを入れたほうがいいだろう。

XFceは使うことは想定した調整になっているが、システム音がないなど作りこまれているという感じではない。