作業マシン購入

ID: 84
creation date: 2010/07/21 21:33
modification date: 2010/07/21 21:33
owner: mikio

俺はWindowsをほとんど使わないのだが、KCのWindowsサポートを続けるためにはWindows環境が必要なので、新しいマシンを買った。それでいろいろ設定したので今後のためにメモを残しておく。

旧マシン

Thinkpad T60を使っていた。画面解像度がSXGA+の最後のマシンである。最近のマシンはワイドとか言って横解像度ばかり高くなって、縦解像度をおろそかにする傾向にあるわけで、SXGA+(1440x1050)という縦1000越えのもので持ち運べるものはもうほとんどないではないか。T60もかなりでかいけど、今だとFull HD(1900x1080)とかいうようなマシンじゃないと縦1000越えは得られない。そんなのでかすぎるよ。ということで俺はT60が好きだった。プログラマに必要なのは縦解像度なのだ。

ただ、デュアルブートでたまに起動していたWindows XPがもうめちゃくちゃ壊れてきていて、3回に1回くらいしかまともに起動しない。でもってすぐ固まる。この状態ではとても開発などできるものではなかった。さらに無線LANがハードウェア的に壊れたのかWindows側からもLinux側からも認識されなくなっていて、悲しいけれどもう引退勧告をせざるを得なかった。今までありがとうT60。名機だったよ。

新マシン

ThinkpadのX201sを買った。秋葉原の某ショップで134780円で売られていて、Lenovo直販サイトの20万〜オプションという価格に比べるとすこぶる安かったので、即決。解像度はWXGA+(1440x900)と縦が短いが、横幅30cm以下のマシンではこれが一番マシ。CPUはCore i7の2GHz。メモリはデフォルト2GBなので増設して4GBにした(500円)。無線LANはもちろん、bluetoothやWiMAXもデフォルトでついてきて結構お得。そして、キーボードがフルサイズでかなり打ちやすいのもよい。

Windows側の設定

デフォルトでWindows 7(32ビット)が入っているので、それを64ビットに変えたい気もするが、とりあえず今は放っておく。電源入れて、無線LANの設定して、Windows Updateを2回ほどかければ、とりあえず使える状態にはなる(この時点で初心者に優しくはないと思うが)。あとはregeditでCaps LockをCtrlにするとかxyzzyを入れるとか外観をクラシックWindows風にするとか遊んで終了。

デュアルブートでLinuxを入れるために、デフォルトでWindowsのCドライブに全部割り当てられているパーティション構成をどげんかせんといかん。今までだとLinux立ち上げて全体のパーティションを切り直してから、リカバリメディアで先頭パーティションにWindowsを入れ直すという面倒をかけていた。しかしWindows 7(Vista)からは起動中のシステムドライブのパーティションも縮小できるというナイスな機能が搭載されているので、それで後半130GBをLinux用に開放することができた。残念ながらシステムファイルのある位置よりも小さくはできないらしく、150GB以上をWindows側に残してしまったが、まあ許容範囲だろう。

あと、Visual Studio Expressを入れて、各種環境設定をごにょごにょする必要がある。MinGWとかもいれなきゃな。

Linux側の設定

Ubuntu 10.04をインストール。Xシリーズは内蔵の光学メディアがないので、妻のX31の外付けDVDを借りてそこから起動して行った。で、swapを8GB、/をext4の16GB、/homeをext4の80GB、残りをテスト用にEXT3、EXT2、ReiserFS、XFS、JFSに割り当ててパーティションを設定。あとは指示どおりでOKOK押すだけ。

起動したら、synapticでg++やらvalgrindやらemacsやらを入れまくって、開発環境を整える。Python3やLua5.1やRuby1.9を入れるのも忘れずに。JDK1.6は手動で入れた。でもって.bashrcと.emacsと.sshを旧マシンからコピーしてきて、いちおう使える状態にはなった。

無線LAN

ここからが鬼門である。今までの作業は有線LANのネット接続で行っていたいたのだが、今回は是が非でも無線LAN接続を成功させねばならない。なぜならリビングで開発作業をすると妻と喧嘩になるからだ。俺の部屋で作業するにはLinux上で無線LANを使えるようにするのが絶対条件である。

結論としては、苦労した末に接続できた。Ubuntu 10.04のカーネル(2.6.32)にはX201sに積んであるCentrino Advanced-N 6200用のドライバが既に組み込まれている。lspciというコマンドを実行すると、「Network controller: Intel Corporation WiMAX/WiFi Link 6050 Series (rev 35)」と出力されるし、iwconfigというコマンドを実行すると「wlan0 ... IEEE 802.11abgn ... Tx-Power=15 dBm」などと表示されるので、どうやら認識はされているらしい。ただし、実際に使うにはファームウェアというファイルが別途必要らしく、それはデフォルトでは入らない。そしてそれはsynapticとかでも手に入らない。

いろいろ調べたあげく、iwlwifi-6050-4.ucodeというファイルを/lib/firmwareというディレクトリの下に置けばよいらしいということがわかった。しかし、iwlwifi-6050-4.ucodeがなかなか見つからない。結局、Intel Linux Wirelessなんたらというサイトのダウンロードページからiwlwifi-6050-ucode-9.201.4.1.tgzを取ってくればその中にあるということがわかった。でそれを所定の場所に置いて再起動したところ、デスクトップ上のネットワークマネージャにアクセスポイントの一覧が出てくるではないか。あとは普通にWPAのパスワードを入力するとつながる。ついにやったぜ!

けど、ちょっと不安定な気もするなあ。もしかしてもうちょい設定があるのかも。まあ今のところはいいや。急につながらなくなっちゃった時は、FnキーとF5を同時に押してデバイスのON/OFFをしてあげてからまたネットワークマネージャで接続するとよいらしい。

追記

無線LANカードが電力食いすぎたのか、筐体が異常に熱くなってしまった。で、いろいろ調べたところ、iwconfig wlan0 power on とかいうのを実行すると省電力モードになるようで、とりあえずはそれでしのぐ。rc.localに書いておけばOK。あと、WPA/WPA2+AESという方式だとなんだか不安定なので、WPA/WPA2+TKIPという設定にした。それでもたまに切れるけどまあいいや。

さらに、EXT4は不安定な気がする。というのも、KC-Javaのmake checkをEXT4上でやるとほぼ確実にOSごとハングアップしてしまうからだ。EXT3やEXT2上ではそのような問題は起きないし、そもそもアプリケーションの責任でOSが固まるということはありえないので、おそらくファイルシステムのバグだ。ということで、/や/homeなどの実用的なパーティションでEXT4を使うのはまだ時期尚早かも。EXT3でインストールしなおした。

おまけ

synapticでIPAフォントを入れるとFirefoxでなぜかビットマップフォントが表示されて汚くなるので、その場合はホームディレクトリにこの.fonts.confファイルを置くと直る。

性能

旧マシンのCPU(Core 2 Duo)も新マシンのCPU(Core i7)もクロック数はともに2GHzなので、シングルスレッドでの性能は両者同じくらいなのかなと思いきや、新マシンの方がかなり早かった。KCのビルド時間が、旧マシンだと134秒くらいで、新マシンだと81秒くらいだ。make -j4で4並列ビルドしてみると、旧マシンは75秒くらいで、新マシンは45秒くらいであった。旧マシンは2コア扱いで新マシンは4コア扱いなのだが、こちらは期待したほどCore i7が早いってわけではなかった。まあでもかなり早くなっているのは間違いない。

なお、KCの最新バージョンでは、make gchとやるとプリコンパイルヘッダを作るようになっているので、KC自体の開発をする際には、今いじっていないヘッダのプリコンパイルヘッダを作っておくとビルド時間がかなり短縮できる。-O0で最適化を抑止してさらにプリコンパイルヘッダを作っておくと、新マシンならKCの並列ビルドは13秒で終わる。これならストレスなく開発できるネ!

追記

KCの実行速度を旧マシンと新マシンで比較してみたところ、新マシンの方が圧倒的に早いという結果が出た。双方ともEXT2上で100万レコードの読み書きを実行した。

T60 X201s
HashDB,1スレッド,set 1.82 0.74
HashDB,1スレッド,get 1.54 0.74
HashDB,4スレッド,set 2.15 0.65
HashDB,4スレッド,get 1.49 0.47
TreeDB,1スレッド,set 1.91 0.76
TreeDB,1スレッド,get 2.06 0.92
TreeDB,4スレッド,set 1.90 0.74
TreeDB,4スレッド,get 1.36 0.66

どのテストも2倍から3倍くらい新マシンの方が高速である。ここで特筆すべきは、2コア相当のCore 2 Duo程度のCPUだとスレッド数を増やしても高速化しないばかりか、かえって遅くなることもあるKCだが、4コア相当のCore i7とかになるとスレッドを増やした恩恵が受けられるようになるということだ。期待通りの挙動でよかった。8コア、16コアになってくるとやっとTCでなくKCの時代が来ると思う。

まとめ

やっぱりThinkpadは良いですよ。Lenovoになってからどうかなーって気もしていたけども、やっぱりノートPCの中では一番いい。マウスもトラックパッドもホームポジションから手が離れちゃうでしょ。プログラマならトラックポイント使うでしょ。Thinkpadの中でも、省スペース&高性能というXシリーズと、そこそこ高性能というTシリーズはが俺は好きだ。これでLinuxで無線が使えれば最高だなと思っていたが、ついに念願かなったよ。

今日は猛暑だったが、うだうだマシンいじっててあっという間に一日が終わってしまった。ニート道を爆進中である。明日からは本気出す!

0 comments
riddle for guest comment authorization:
Where is the capital city of Japan? ...