2005年12月26日

Gentooカーネルアップデート

最近GentooのStableなgccのバージョンが上がった。
Gentooはすべて自分でコンパイルしてインストールするディストロなのでコンパイラの変更は割と影響範囲が大きいらしい。
と言うことで
Gentoo Linux GCC Upgrade Guideなんかを参照。
ガイドの通りにやればOKだった。

で、コンパイラを変更したのでカーネルもコンパイルし直した方がイイだろうと言うことでカーネルを最新にしてみる。
こちらは日本語のガイドがあるので安心して作業ができる。
Gentoo Linuxカーネルアップグレードガイド

と言ってもカーネルアップデートと言っても/usr/src/linuxのリンク変えてコンパイルし直すだけだが。
ポイントは以前の.configを新しいカーネルにコピーして
make oldconfig
をして新しい設定に適応する、ぐらいか。

新しく増えた設定項目を聞かれるようでとりあえずわかんないやつはNoを選択しておいた。


カーネルを新しいコンパイラでコンパイルしたらTVが見れなくなった。
ドライバのロードで失敗している模様。
ivtvのドライバをコンパイルし直してインストールすればOKだった。


さらに音が出なくなっていたので何でだろうと思ったらカーネル設定でドライバが選択されていなかった。
make oldconfig
でNoばっかり選択していたから設定が変わってしまったのだろうか。
とりあえずカーネルコンパイルし直したら音が出るようになった。


VMwareもバージョンアップしておいた。
例によってVMwareをバージョンアップするとパーミッションがおかしくなるのでそれも修正する。
カーネルを変更したのでvmwareのドライバも更新。
今回のバージョンアップでvmwareグループというのが追加されて、vmwareを使うユーザーがそのグループに入っていないとダメなようになった。
バージョンアップの時にこの注意メッセージを見逃していたのでそれに気づかずなんで実行できないんだろうと悩んでた。
再インスコしたときにメッセージを確認できたのでやってみたら動いた。
バージョンアップするときはemerge -u -worldして全部まとめてバージョンアップするからメッセージ見れないよな・・・。
ログはファイルに出力されているからログビューアみたいなのがあるのかもしれないが、めんどくさいからまぁいいや。


コンパイラをバージョンアップしたりカーネルをバージョンアップするといろいろ問題が起こるが、これも"常に最新の環境"のGentooの醍醐味と言うことで。


んで今までメインで使ってるLinuxマシンのメモリが1Gだったが、EclipseやVMwareを起動するだけでスワップしまくりできつかったので2Gにしてみた。(Windows仮想マシンに512MB割り当ててるというのが問題な気もするが・・・)
仮想デスクトップがあるとどうもアプリを起動しまくりになってしまうが、2Gあるとどんなアプリを起動しまくってもスワップ無くて快適。
ちなみにメモリは今株をメインで買ってるエルピーダメモリ。512x2で12000円ほどだった。
日本の半導体が再び世界のトップになれるように頑張って欲しいところだ。

2005年12月21日

Gentooのcpioアップデートでこける

Gentooのアップデートをしようとしたらcpioのところでこけた

copyout.o: In function `write_out_new_ascii_header':
copyout.c:(.text+0x874): undefined reference to `__builtin_stpcpy'
collect2: ld returned 1 exit status
distcc[6008] ERROR: compile (null) on localhost failed
make[2]: *** [cpio] Error 1
make[2]: Leaving directory `/var/tmp/portage/cpio-2.6-r5/work/cpio-2.6/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/cpio-2.6-r5/work/cpio-2.6'
make: *** [all] Error 2

!!! ERROR: app-arch/cpio-2.6-r5 failed.


みたいな感じで。
バグかと思って2,3日置いてから再度試してみてもダメだったので検索したらGentooの掲示板で解決策があった。
分散コンパイルのdistccをやめると問題は出ないらしい。
make.confを修正し、再度やってみると何の問題もなくコンパイルできた。

う~む、分散コンパイルで問題が出ることもあるのか・・・。
面倒はイヤだし分散コンパイルは止めておくか・・・。

2005年11月17日

GentooでLVM

現在ファイルサーバは8台のHDが接続されている。
合計1.2Tのファイルサーバだ。
しかしそれぞれのHDを用途別にしてファイルを保存しているのである用途のHDがいっぱいになったら別HDのディレクトリに保存しなければならず、同じグループのファイルをバラバラの箇所に保存しなければならない。
これは非常に不便だ。

そこで複数の物理領域を一つの論理領域とすることで解決する。
LVMの出番だ。

LVMを使えば複数台のHDからなる一つのパーティションが作成できる。
しかもRAIDのリニアモードと違い、動的に増やしたり減らしたり、あるHDが壊れそうだから取り除く。と言ったことも簡単にできるらしい。

参考は
Gentoo LVM2インストール
Logical Volume Manager HOWTO
とか。

#modprobe dm-mod
してドライバ読み込み。

#fdisk /dev/sda
してタイプを8e(Linux LVM)に変更。

LVMに必要なツール類が入っていなかったので
#emerge lvm2
でインスコ。

#vgscan
で既存のLVMのディスクをスキャンするが当然ない。

# pvcreate /dev/sda1
Physical volume "/dev/sda1" successfully created
でPhysical volume作成

# vgcreate vg /dev/sda1
Volume group "vg" successfully created
でボリュームグループvgを作成。

# lvcreate -L100G -nshare vg
Logical volume "share" created
ボリュームグループvgにshareを100Gで追加

今作ったshareにファイルシステムを作成。ReiserFSを使う。
#mkreiserfs /dev/vg/share

#mount /dev/vg/share /export/share/
マウントしてみる。

dfすると・・・
/dev/vg/share 104854396 32840 104821556 1% /export/share
いけてる。
すげー簡単!

拡張のテストもしてみる
# lvextend -L+100G /dev/vg/share
Extending logical volume share to 200.00 GB
Logical volume share successfully resized
vgを100G増やしてみた。

マウント解除をしてから
#resize_reiserfs -s +100G /dev/vg/share
ファイルシステムを100G増やす。

マウントすると・・・
/dev/vg/share 209708796 32840 209675956 1% /export/share
200Gになってる~~っ

ディスクをさらに増やしてみる。中身の入っているディスクだがちゃんと追加できるだろうか。
fdiskでタイプをLVMに変更してマウントしても一応中身は残っていた。pvcreateした段階で中身が消えるらしい。
#pvcreate /dev/hdb1
#vgextend vg /dev/hdb1
Volume group "vg" successfully extended

マウントを解除しなくても増やすことができるのでマウントしたまま
#lvextend -L +153G /dev/vg/share
して
#resize_reiserfs -s +153G /dev/vg/share

おお~、マウントしたままサイズを増やすことができた。スバラシイ。


・再起動後に自動でLVMが有効になるようにする
/etc/modules.autoload.d/kernel-2.6
にdm-modを追加。
fstabに
/dev/vg/share /export/share reiserfs defaults 0 0
を追加、再起動すると最初から正しく認識されていた。

・LVM情報表示
現在どんな物理デバイスがLVMに追加されているかなど表示
#pvdisplay
--- Physical volume ---
PV Name /dev/sda1
VG Name vg
PV Size 372.61 GB / not usable 0
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 95387
Free PE 0
Allocated PE 95387
PV UUID D3jbAB-2LhU-J0LX-xirV-vWBy-4T6I-hkUYgC
とか表示される。

ボリュームグループの詳細表示
#vgdisplay

論理デバイスの表示
#lvdisplay

2005年11月16日

VMwareのアップデート

GentooでVMwareをアップデートすると仮想マシン起動時にエラーがでて仮想マシンが起動できなくなる。
/tmp/vmware-USERID/ui-9338.log
とかのログに以下のように表示されていた。

11月 15 19:53:53: vmui| VMHS: Exec()'ing /opt/vmware/workstation/lib/bin/vmware-vmx
11月 15 19:53:53: vmui| DUMPER: restoring checkpoint version 8
11月 15 19:53:54: vmui| waitpid failed errno = 子プロセスがありません
11月 15 19:53:54: vmui| VMHSLaunchVM failed: Failed to connect to peer process
11月 15 19:53:54: vmui| DUMPER: restoring checkpoint version 8

http://forums.gentoo.org/viewtopic-t-381798-highlight-vmware+root+process.html
↑を参考に

#chmod u+s /opt/vmware/workstation/lib/bin/vmware-vmx
#chmod u+s /opt/vmware/workstation/lib/bin/vmware
#chmod u+s /opt/vmware/workstation/lib/bin/vmrun

と打てば解決した。
もしそれでもダメなら
#chmod 755 /opt/vmware/workstation/lib/bin/vmware-vmx
とかいろいろいじってみる

2005年08月29日

メインマシンOS入れ替え

メインマシンにはTurboLinux10Fを使っていたが最新のパッケージを入れようとすると他のライブラリも更新しないとダメで結局入れられないソフトが多くちょっとつらかった。
ライブラリ依存スパイラルヘルをコマンド一発で解決できるGentooはすばらしいと思った。

さらにGentooはunstableであれば最新のバージョンを追いかけることができるのでメインマシンもGentooにしてみた。

Gentooに移行したときのメモ
GentooはXにXorgを使っている。
そして設定ファイルの形式が微妙に違うのかデュアルモニタの設定がそのままでは使えなかった。
Section "ServerLayout"
  Identifier "Dualhead"
  Screen 0 "Screen0" LeftOf "Screen1"
  Screen 1 "Screen1"
  InputDevice "Keyboard0" "CoreKeyboard"
  InputDevice "Mouse0" "CorePointer"
  Option "Xinerama"
EndSection
とりあえず上の設定でデュアルにできた。
それ以外の設定は以前と同じ。
デフォルトの書式を見るとScreenのフォーマットが変わった?
が、詳しく調べる気力はないので放置。

しかしなんか起動後最初にXを立ち上げるとサブの方のモニタが付かない。
どうもアナログ信号が出ていない模様。
一度Xを落とすとサブのモニタにアナログ信号が行くようになり、素のコンソールの画面がクローン状態で2台のモニタに映る。
そしてもう一度Xを起動するとちゃんとデュアルモニタになる。
よくわからん現象だけど再起動することは少ないのでとりあえず放置。

Atok for Linuxはemerge atokx2でインストール可能。
Atokのアップデートはunstableになっているので~x86でインストール可能。

ブラウザなどでは日本語入力可能になったが愛用のmltermでは日本語入力できない・・・。TurboLinuxではできたのに・・・。

Gentooマシンが2台になったので分散コンパイルをしてみる。
時間のかかるコンパイルを複数台のマシンでやってしまおうというヤツらしい。
ドキュメントはここ

設定するとちゃんと2台でコンパイルしているようだ。
しかし1時間かかるコンパイルが1秒になるわけはなく、遅いコンパイルはやっぱり遅かった。

コンパイル前に「これコンパイルするには1時間かかりますよ~」と言われて分散コンパイルすると30分で終わったとなるうれしいと感じるんだけど・・・。


WindowsエミュレータのWineを入れてみた。
インストールはemerge wineで完了。
Windowsマシンから電卓(calc.exe)をLinuxマシンにコピー、wine calc.exeを実行。
すると電卓がLinux上で起動。スゲー。
猛者になるとIEやエクスプローラーをLinux上で動かすらしい。
う~む、すごいなWine。

WindowsアプリはVMwareがあるからまぁ良いんだけどやっぱりLinuxネイティブアプリのように起動できるWineは便利そうだ。


で、結局TurboLinuxのマシンは無くなってしまったがTurboLinuxはTurboLinuxでいいディストロだったと思う、Gentooのようにつまずくことも少なかったし。
ただ最新のアプリを使おうと思うとPRMパッケージを使いこなせないとダメそうで、その辺はつらい。
Gentooに疲れた頃にTurboLinuxの新しいバージョンが出たらまた乗り換えそうな予感。

2005年08月10日

testingなパッケージインストール

stableなパッケージは古くて使えない!と言うときは
/etc/portage/package.keywords に gnome-extra/gdesklets-core ~x86 などを追加するとtestingなパッケージもインストール可能。

gDeskletsがstableなバージョンではうまく動かなかったが0.35.2-r1を入れるとうまく動いた。

でもテスト中のパッケージは危険なのでほんとに最新のが必要な場合のみにしておいた方がよさげ。

Gentooその他のエントリー