Linux」カテゴリーアーカイブ

Winとのメールの連携

現在メールをWindowsXPのマシンで送受信してるのですが、ノートからも参照できればと思って。WinではThunderBirdを使ってるので、ノートにもemergeでインストール。あとはどうやって参照するかという事だけ。ThunderBirdは参照する受信トレイなどのパス名を指定出きるのでそれをWinマシンと共有できればいけるはず。
恐らくLinux側で読み取り、Windowsから参照ならSambaの設定だけでWin側はネットワークのパス名を入れるだけでいけると思われます。漢字コードの問題がありそうですが。逆はパス指定だけという便利な機能はないのでマウントする作戦で。
幸いLinuxにはsmbmountという強力な機能があるのでmount -t smbfsでマウントできれば問題クリアのはずでした。ハマった問題点は下記の通り。
1.smbfsは将来サポートされない
マウントしそこを参照って思ったのですが、コマンド行からマウントしてThunderBirdで参照は問題なし(この時点で漢字が化けてた)問題は/etc/fstabで自動的にマウントさせようとしたらカーネルへsmbfsを組み込む必要が出てきた点。File system、Network File system内のsmbfsを有効にしてみたらマウントはできるもののカーネルから将来消えるからcifsへ置き換えなさいって警告が。それまでcifsってのがsmbfsだと思い込んでました。なのでsmbfsを設定から外しました。
2.cifsでマウントできない
mount -t cifsでマウントしようとしたら/sbin/mount.cifsが存在しないことが判明。カーネルオプションとは別にコマンドが足りないだけらしいです。/usr/src/linux/fs/cifs/READMEによるとSamba内のソースにクライアントがあり、それをコンパイルせよとの記述が。emerge -pv sambaでUSEフラグを見てみるもそれらしきオプションはなし。少し悩むもemerge -s cifsでパッケージを探したらnet-fs/mount-cifsというのを発見。それを組み込んだら問題なくマウントできました。
3.ThunderBirdが起動しなくなった
~/.xsession-errorsを見るとエラーメッセージが。どうやらフォルダのいくつかに漢字のディレクトリとファイル名が存在するのが原因らしい。ThunderBird内でメールの振り分けなどで漢字のフォルダを作成するとそのままディレクトリ名や保存ファイル名に使うらしい。なのでcifsをマウントするのにオプションを指定する必要がある。iocharset=utf8を指定したら問題なく参照出きるようになった。
ちなみにiocharset=UTF-8としてたら下記のエラーが。
mount error 79 = Can not access a needed shared library
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
対応してない文字列を指定するとこうなるらしい。utf8でもUTF-8でもどちらでもいいってことじゃないのが面倒過ぎる。もう少しわかりやすいエラーメッセージが出ればとか思った。
ちなみに手動で何度かマウントしてたのですが、GNOME端末でls表示でWin共有をマウントしたのを確認してたのが時間がかかった敗因。LANG=ja_JP.UTF-8だからUTF-8で表示してると思った。????で表示されるのでハマった。素直にThunderBirdを起動して確認すればと今になって・・・。
あと、これとは別にsmbfsでマウントしたとき下記のエラーが出た。
session setup failed: ERRSRV – 2242
SMB connection failed
これはWindows側でユーザーを追加し、何も設定を変えないとこうなる。デフォルトで「次回ログオン時にパスワードを・・・」ってのがチェックされてたり、パスワードが期限切れでパスワードが要求された場合に発生するらしい。まあ、ドコゾにエラーコードに対する対処がかかれてるのだろうけど情報をもっと出力して欲しいものだ。

A31p

新しいカーネルを作成して再起動したらgrubの選択画面が問題なくでた。昨日でなかった原因は不明です。
Xを起動してみるとトラックポイントでの操作が出来ない状態だったり。デバイスのevent番号が間違ってるっぽい。前は動いた気がしてたのですけどね。Xのログを見るとデバイスは自動認識するみたいなので、/etc/hal/fdi/policiy内の各記述からデバイスの指定をコメントアウト。/etc/init.d/hald restartでHALを再起動してみたら問題なく操作できた。これで以前使用していた状態に戻せましたよ。
こいつだとビデオドライバがxf86-video-atiで3D機能が問題なく動くのが何とも。デスクトップ系だとRadeon”互換”なのが苦労の元なのですよね。atiとかradeonとかradeonhdなど試して動けばラッキーですけど動かないものもあるし。まあだからといってnVidiaだといいとかそういうのじゃないですけど。ビデオ周りはWindowsより弱いのは仕方ないですけどね。
次はDB周りを勉強しておこう。sqlite主体で行こうかと思ったけどMySQLの方が実用ありそうな気がするのでそっちを。Cからいろいろと使えればなぁと。

HDD換装

ThinkPadA31pで使っていたHDDは60GBですけど250GBが余ったので換装してみた。
最初はウルトラベイに入れてセカンダリで認識すれば簡単と思ってたのですけど最近の2インチHDDをウルトラベイに入れると干渉して正常に起動しなかったり認識しなかったりした。容量の少ない別のHDDなら問題なかったのですけど謎です。両方つないで単純コピーは失敗なので、SLAXをCD起動し、元のディスク内容をtar+bz2で圧縮、Samba経由でWindowsPCの共有へコピー、HDDをつなぎ変えてコピーを戻して復元という作戦で行いました。
SLAXで起動するとHDDは自動認識して/mnt/hdaXへマウントされます。一応中身を確認してみると問題なし。ルートとなるhda3をまずtarで圧縮しました。jオプションをつけてbz2へ圧縮しながら行い、出来た書庫は7GB程度。最初はFTPでサーバへアップロードしてしまおうと考えてたのですけど、2GBを超えるのはNGらしい(というか、proftpdで上限を設定してたかも)仕方ないのでsmbfsでマウントという事に。WidnowsマシンはWindows2000なのでコピーしてたら2GBを超えるところで転送エラー。XPマシンは空きが無いのでsplitコマンドで書庫を分離してコピーしました。ここまでで結構時間がかかった。tarが一番時間がかかりましたけどね。
ここで一度マシンを停止し、HDDを換装。再度SLAXを起動し、fdiskで/bootを128MB、swapを1GB、残りを/にしました。/bootは少し大きめですけど、カーネルは次第に肥大化してるので何世代か入れると過去あふれたケースがあって多めにしてます。swap領域は物理メモリーが1GBなので慣例的には倍らしいですけど、10数年前からの慣例は無視。倍もいらないと思って同じサイズです。今のところ使う上ではメモリー不足を感じたことがないしこれでOKです。続いて/bootをext2でフォーマット、/をext3でフォーマットしました。そしてsmbfsで共有をマウントし、バックアップした書庫をコピーし復元。/bootも同じように復元しました。(バックアップ時に当然/bootもバックアップしてあります)
ただコピーしただけでは起動できないので、Gentooのインストール時に復元した環境へ入るためにマウント、/procと/devをマウント、swapを有効にしてchrootで元環境へ。おまじないのenv-updateとsource /etc/profileを実行。あとはgrubを起動してブートローダーを設定しなおしました。
そして再起動して見ると・・・何故かOS選択がでない(でてるけどxpmの画像が出てない?)ですけど、起動は行うことが出来ました。/bootをマウントしてgrub.confをチェックしたけど問題は見つからず。まあ、後で調べることにします。とりあえず換装はこんな感じで問題なく行えました。知ってる人は当たり前なのでしょうけど、こういった経験がないとどのように行うのかハマりそう。特に入れなおしとかだと数日かかるし。今のmake.confさえあれば入れなおしてもいいけど面倒ですからねぇ。そして今まで溜まったアップデートをうどんワールド(emerge -uDN world)で更新中。なにやらgccがバージョン上がってるので再コンパイルとか考えると入れなおした方が綺麗になったのか?とか思いつつ。しかも、pythonもバージョン上がってるしなぁ・・・。うどんワールドが終わったらカーネル再構築してオールリコンパイルかな?

サーバのメンテ

細かいリビジョンがあがったものが多かったけど、slangのコンパイルでハマった。
コンパイルの結果をスクロールをさかのぼって見てみると、ldが「cannot find -ltermcap」というエラーを出していた。ncurses-5.6-r2辺り?と思ってequery f ncursesでファイル一覧を見てみると、libtermcap.*が見つからず。別にインストールする必要が?と思って調べてみると「sys-libs/libtermcap-compat」ってのを発見。これをインストールして再度コンパイルするけど結果は変わらず。env-updateの実行を忘れてました。一応ldconfigも実行し、source /etc/profileを実行してリコンパイルしたらうまく行ってました。でも、libtermcap-compatが必要なら勝手にインストールされても良いと思うのだが。あとはrevdep-rebuildを実行して欠落してるライブラリがないかチェックで完了です。
Gentooは各デストリでバージョンアップしたときのアップデート作業が無くていいけど、細かいハマりがあるので調べることが出来ないと辛いかもね。rpm系、deb系、tgz系などで好きなパッケージ管理が出来るものを選べばいいですけど、CPUパワーがある程度あるならGentooを選ばなくてもいい気がしてきた。ただ、うちは他のデストリだと本体と開発部(~develなど)が分かれていてプログラムを作ったり何かをコンパイルするとき入ってないとがっかりするのでそのあたりが嫌いだったり。Apache、PHP関係も微妙にいくつかパッケージがあるのもねぇ。なのでGentooを使い続けるわけです。

久々

いろいろとリアルの環境が変わったのでいじる時間が取れなくて放置状態でした。常時PCを起動する数を減らしたのでXeonマシンなどは停止して凍結状態です。ノートも一台WindowsマシンにしたのでA31pとサーバマシンのみとなりました。
サーバは忙しくなる前にメンテしたのでxorgの変更分は間に合ってカーネルのバージョンを上げたくらい。A31pは結構放置してたので200近いパッケージのコンパイルが必要でした。
気づいたのはcairoのコンパイルでUSEフラグの変更があった点。svgというフラグがコンパイル時に必要らしい。関連してX関係でいくつか使われるようになっていた。次にxorg-serverの変更点。キーボードとマウスの設定がxorg.confから/etc/hal/fdi/policy配下へ設定をXMLで記述したファイルが必要とのこと。HALを使わない場合は問題なく移行できるみたいです。前から組み込んでるのでアップグレードガイドのサンプルを展開し作成しました。キーボードは日本語キーを使ってると設定を加えないと駄目らしい。うちはUSキーなので特に要らないっぽいですけど、参考に書き加えました。
○キーボード設定



evdev
/dev/input/event0
xorg
pc101
us


○マウス設定
http://74.125.153.132/search?q=cache:_VEsIKEbvnYJ:nyanpokorin.blog55.fc2.com/blog-category-1.html+xorg+1.6+ThinkPad+fdi&cd=4&hl=ja&ct=clnk&gl=jp&lr=lang_ja&client=firefox-a
こちらを参考にして追加しました。ドライバはevdevでキーボードと同じようにデバイスも指定したらうまく動作しました。デバイスは/proc/bus/input/devicesに書かれているので合わせれば動きます。闇雲に他人の設定に合わせると動かない場合も。
キー入力も問題ありませんし、トラックポイントもWindowsと同じように動作してますので問題ないと思われます。

ノートのメンテ続き

avahiのコンパイルでハマった。
以前は、Python2.4と2.5の混在でpython-updaterを実行したら問題なくコンパイルできたのですけど、今回はNG。2.4は見てないっぽいので別問題っぽい。こういうときは関連パッケージのリコンパイルか。
emerge -av pygobject pycairo pygtk dbus-python avahi
これで解消されたみたい。恐らくどれかのモジュールが古かったのでしょう。適度に全パッケージのリコンパイルが必要かもね。

ノートのメンテ

アップデート数は少なかったもののgdmのコンパイルでハマりました。
ログをみるとgdmXnestへリンクを張ろうとしてるのですが、元のプログラムがみつからないというもの。コンパイルでエラーというわけでもなく謎でしたが、どうやら犯人はmakeオプションだったらしい。-j2とかプロセッサ数に+1した数を設定してましたが、どうも並列作業されると元のプログラムが出来上がる前に動いて失敗してるっぽい。-j1へ変更してみたら問題なくインストールされました。何だかそれって間抜けな予感が。それって並列作業対応じゃないって事だし、根本を覆すような気がする。まあ、通常は問題ないと思いますけど何だか嫌な感じ。

メンテ

またいろいろ更新されたらしい。Blockedパッケージはemergeがやってくれると思ってたら、駄目だったらしい。
今回はnet-fs/nfs-utilsとnet-lib/libnfsidmapが衝突。前者を消してインストールしました。再起動してみるとNFSのマウントでエラーになった…。まあ、当然か。
再度net-fs/nfs-utilsを入れな直したら問題なさそうでした。
上記の更新でXDMを落としたら/etc/init.d/proftpdの起動メッセージでSSL関係のエラーが出てました。OpenSSLを更新したらリコンパイルが必要みたい。使われるモジュールのメッセージでしたが、リコンパイルでメッセージは消えました。
あと、前回デスクトップのアイコンなどが出ない問題ですが、結局再発したのでmetacityを入れなおしたら問題なく表示されてました。何らかの拍子にファイルが消された?equeryでインストールされた一覧を見ても当該ファイルには関係ない感じがしますけど。まあ、入れなおしで動くならラッキーかな?

デスクトップのアイコンが表示されない

ちょっと放置してたので立ち上げてメンテを。そうしたらデスクトップ上のアイコンが表示されない状態に。~/.xsession-errorsをみると.metacity/sessions/default.msというのが無いのでエラーとの事。このファイルは自分で何かした記憶は無いので、.metacityをリネームし、ログオンしなおしたら問題なく表示されるようになった。リネームしたディレクトリは消しても問題ないかも。
最初はgnome-*/gnome-*のどれかのパッケージが問題?と思ったのですが、設定だけでよかったです。
そういえば、カーネルが2.6.27-gentoo-r7からr8になってた。何も考えずgenkernel –menuconfig allでパラメータを確認しつつコンパイルし、nvidia-driversのコンパイル…と思ったらマスクしていた場合できないみたいで、/etc/portage/packges.maskをリネームして同じバージョンでコンパイル、マスクを戻して再起動しました。(GRUBの設定もしたけそ)これからこういう作業になると思うとちょっと面倒かも。

パスワードなし自動Xログインのメモ

rc-updateで追加できるスクリプトにlocalというのがあり、これが参照してる/etc/conf.d/local.start内に細工をする。
# Start X as user if tty7 is free
if ! fuser /dev/tty7 >& /dev/null; then
  su – -l -c ‘exec startx — vt7 >& ~/.xsession-errors’ &
fi
使うttyとか細かい設定は各自で。
ログインさせるユーザーの.xinitrcに自動起動させるプログラムを羅列でOK。
#!/bin/sh
if [ -f $HOME/.Xresources ]; then
  xrdb -load $HOME/.Xresources
fi
if [ -f /usr/X11R6/lib/X11/xinit/.Xmodmap ]; then
  xmodmap /usr/X11R6/lib/X11/xinit/.Xmodmap
fi
if [ -f $HOME/.Xmodmap ]; then
  xmodmap $HOME/.Xmodmap
fi
xclock -geometry 150×150-80+1 &
xterm -fn 10×20 -sb -geometry 132×40+20+50 &
exec wmaker
これでシステム起動すれば指定したユーザーでログインし、WindowMakerが起動、時計と端末を自動きどうされる。起動するものは適当に追加・削除で。