2007年12月10日月曜日

自業自得

いつからか、USBメモリが自動マウントされなくなったと感じて居ったのですが、「ConsoleKit」というデーモンを止めていた所為でしたOrz このデーモンの名前より、てっきりコンソール作業のためのデーモンで、Xでログインしたら関係ないだろうと思って止めてたんですね。そしたらこいつがHALと結構深く絡んでて、両方のデーモンを動かしていないとUSBやCDのオートランは有効にならないようです。
さらにさらに、なぜか権限が与えられていなかったサウンドデバイス(最近気づきましたがビデオキャプチャデバイスも)もConsoleKitを有効にすることで権限が与えられました。なんという自業自得Orz
とはいえ、今までのLinuxの管理方法からすればデバイスのアクセス権限はrootユーザにしか与えられていません。実際、/dev/video0のアクセス権限を確認すると

crw-rw----+ 1 root root 81, 0 2007-12-09 18:20 /dev/video0


となり、rootにしか権限が与えられていません。ところが、最近のFedoraではACLが導入されておりまして、ファイルやフォルダごとにアクセス権限を設定することが出きるようになっています。アクセス権限を示す部分の最後についている「+」が肝です。これがついているファイルやフォルダにはACLによる個別アクセス権限が設定してあります。それの確認コマンドとして「getfacl」コマンドがあります。これによりアクセス権限を確認すると、

getfacl: Removing leading '/' from absolute path names
# file: dev/video0
# owner: root
# group: root
user::rw-
user:code_air_edge:rw-
group::rw-
mask::rw-
other::---

とまぁこんな感じで、このファイルに対してのrw権限がユーザ「code_air_edge」に与えられていることが分かります。
Sawa氏 thanks !!!)
デバイスファイルは起動時にudevにより自動的に作成されるため、その度にACLを指定しているわけですが、それを行うデーモンがHALとConsoleKitだったようです。私の場合、HALは動かしていましたがConsoleKitは止めていたため、ACLが有効になって居らず、USBメモリなどの自動マウントに失敗していたようです。なんという自業自得Orz
とりあえず、ConsoleKitも動かすようにしてちゃんとUSBメモリが自動マウントされることを確認しました。
が!
なぜか書き込みやファイルの削除に失敗するOrz 全デバイスというわけではなく、USBメモリオーディオは失敗するようです。miniSDカードは何の問題もなく書き込みできました。謎だ・・・。
どうもI/Oエラーが出ているようなのでデバイス側に問題があるとは思うのですが・・・、けどWinでは特に問題なく書き込みができているんですよね。尚のこと謎だ・・・。
今回の教訓。特に問題がある分けでもなければデーモンは止めるな。止める場合ははっきりと「必要ない!」と言い切れるものだけ止めよ。よく分からないデーモンは触るな!
以上。つまらんことで随分悩んでしまったぜ・・・w

2007年12月9日日曜日

Wine恐るべし・・・!


久々にWineを弄り倒してました。相変わらずIE6のインストールはできないままですが(できるにはできたけど、他のアプリと連動してない)、意外なアプリケーションを動かすことに成功しました。
まず1つめがfoobar2000。こいつは完璧に動作します。Linuxには便利なエンコード変換アプリがない(見つけてないだけかも?)ので、変換器として使うにはもってこいだったりします。もちろん、音楽を再生することも可能。Fedora8ではPulseAudioが採用されているため、WineのサウンドドライバにALSAを採用していると音が鳴りませんが、ESD経由にしてやれば問題なく再生できます。
さらに、ffdshow-tryoutsも稼働しました。まぁLinuxにもffmpegがありますし、FLVとかはxineやmplayerで再生可能なのでffdshow-tryoutsの必要性は薄いです。
が、動画のエンコードを行うなら話は別。現状、Linuxでニコニコ動画にうp主画質でアップロードするのは非常にハードルが高いです。
が、Winでは環境が整ってます。ニコニコ動画まとめWikiに高画質動画アップロードの方法が載ってますが、すべてWineで動作することを確認しました。
まとめWikiではffmpegを使用しているところがあります。それはLinuxネイティブのffmpegで代用可能です。よーは、On2VP6のaviが作成できるかどうかなんですな。
mencoderを自前でビルドしたらLinuxでもOn2VP6のaviを作成できますが、Wineでffdshow-tryouts+AviUtil(VirtualModDubなど)を使ってエンコードする方が楽だと思います。
さらに、動くとは思っていなかったですが、東方風神録体験版が動作しました。DirectX9をインストールしなくてはいけませんが、それさえなんとかできれば動作はします。
が、FPSはひどいもんでした^^; SSをアップしてますが、20くらいしか出てません。とてもまともにプレイできるとは言えないのが現状。まぁ、動くとは思っていなかったので、動いただけでも驚きです。
ただ、なぜかBGMは一切鳴ってくれませんでした。SEは鳴ってるんですけどね。謎だ。風神録の体験版は全部WAVEだったよねぇ・・・?
しかし、DirectX9を使ったゲームですら動くんだから、Wineも結構実用的なアプリを動かせるのね。Linuxではゲームはできないとずっと思ってたけど、これは認識を改めるべきかもしれない・・・。
また、LinuxでもソフトはあるけどWineで動作させた方が便利なものに、アーカイバソフトがあります。大抵の圧縮方式にLinuxも対応してますが、日本語を含むファイル名のファイルを圧縮したアーカイブは、Linuxで展開するとファイル名が化けることがほとんどです。
一応、convmvっていうファイル名のエンコードを変換してくれるコマンドもあるんですが、そんなの使うよりWineでWindows向けのアーカーバソフトを動かして展開した方が便利です。
Wineも完全ではなく、動かせないパッケージも多数ありますが、とりあえず試してみるだけの価値はあるかもしれません。思いも寄らないパッケージが動作します。
ただ、最近は.NETが流行りなんですよね。こいつはさすがにWineでは動作しません。代わりにMonoとかがありますが、.NETでGDI+とかを使われるとアウトです。最近のMonoだとWindows.Formsクラスはサポートしているらしいので、これまたシンプルなアプリだと動作してくれます。
そう言えば、ようやくDELLの日本法人が対応ブラウザにFirefoxを追加してくれましたね。これでLinuxからでもDELLのPCを注文できるようになります(笑)
ん? あら、考えてみたら本気でWindowsいらなくなってしまうんじゃね・・・?(ぉ

2007年12月6日木曜日

差分ダウンロードは難しいんじゃないだろうか?

相変わらずLinuxネタです。今日はyumのプラグインのご紹介。
yumとはなんぞや?といいますと、Windowsアップデートをもっと強力にしたやつ、ってところでしょうか。Windowsアップデートでもいくらかのサードパーティ製ドライバやパッケージをインストールできますが、yumとはLinuxのインストールDVDに収められているパッケージ+α(たっくさん!)のパッケージを管理できるツールです。Debianでいうaptです。aptより重いですが^^;
で、yumには追加のプラグインをインストールすることで機能を強化することができます。その中で便利そうなものをご紹介。
必須だと思われるのが「yum-fastest-mirror」。パッケージを公開しているサーバはいくつかある(国内外問わず)のですが、その中からできるだけ転送速度の早いミラーを優先的に利用しようとするプラグインです。以前までは国内ミラーなどを自分で設定ファイル書き換えて指定していましたから、だいぶ楽になりますね。
次に、「yum-merge-conf」。RPMでパッケージの更新を行った際、設定ファイルの書式に変更がある場合等は自動的に「.rpmsave」や「.rpmnew」といった拡張子のバックアップファイルを作成します。これをもとに差分を確認して設定ファイルの更新やあるいは巻き戻しを行う必要があるのですが、yumで一気にたくさんのパッケージを更新したときなどは1つ1つ変更を探すのも大変。実際、マージ処理はしなくても問題がない場合が多いですが、気持ち悪いですよね^^;
で、このプラグインをインストールしておくと、インストール時に設定ファイルの変更を行うかスルーするかを尋ねてくれます。どのみちやらなくちゃいけない作業ですし、個人的にはインストール時に聞いてほしいです。300を越えるパッケージの更新のときに10個程度の変更がぁぁぁ、なんて、後から変更のあるファイルを探す方がしんどいですからね。
そして最後に紹介するのが「yum-presto」。このプラグインは、パッケージ全体ではなく、変更のある差分だけを収めたdeltarpmというパッケージを優先的にインストールするプラグインです。差分だけでよければダウンロードするパッケージも少なくて済みます。
ただ、このdeltarpmを提供しているサーバがまだないため、今はこのプラグインを入れていても意味はありません。実現も難しい気がします。直前のパッケージとの差分だけを提供するのだとして、今インストールされテイルパッケージが直前のものかどうかをきちんと判定しないといけなかったりと、手間が掛かりそうですし。
まぁ、気長に待つとしましょう。
今日の紹介はここまで。yum-merge-confはPirutとか使っているときにはどうなるんだろうなぁ・・・。Pirutとかはプラグイン無効にして実行してるのかしら? そんなことはないか。
今はだいぶ改善されたとはいえ、まだaptより重い気がする。つかメモリ食いすぎだよ・・・。メモリ安くなったことだし、やっぱ買っとくべきか!?

2007年12月5日水曜日

PulseAudioで他PCのサウンドを再生

Skypeが使えなかったり、Mplayerもパッチ当てなきゃプラグインは同梱されてない、Audacityもまだ非対応とまだまだ壁も大きいPulseAudio。
ただ、複数のサウンドカードを統合的に扱えたり、LAN内の他のマシンにサウンドを渡したり受け取ったりできるというちょっと変わった機能を持っている面白い面も。
普通に使う分にはALSAのdmixで十分だし浸透もしていますが、ちょっと凝ったこともしてみたいじゃないですか。
と、いうことで、大学にてTeX程度にしか活用していないFedora8マシン(当然スピーカなどは接続していない)のサウンドをWindowsマシンに飛ばしてみることに。
なんとこのPulseAudio、Win32版のバイナリも提供してます。ただ、ほんとバイナリだけで、設定ファイルなどは一切ないストイックぶり。つーか不親切だぜw
まずWin32版のPulseAudioをコチラからDL、展開します。そして展開したディレクトリ(exeファイルなどがある階層)にdefault.paというファイルを作成します。内容は

load-module module-waveout
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16

です。192.168.0.0/16の部分は各自の環境に合わせて変更してください。接続を許したいネットマスクを指定します。
この状態で、コマンドプロンプトより

c:\pulseaudio-0.9.6-1\pulseaudio.exe -D

とコマンドを打ちます。パスは適宜読み替えてください。
この状態で、特にエラーがでなければ成功です。
続いて、Linux側の設定です。こちらは非常にシンプルで、PulseAudio appletより
「Default server」->「Other」を選択し、ダイアログボックスにWinマシンのIPかホスト名を入力します。うまくいけばこれでLinuxのPulseAudio経由のサウンドはWindowsで再生されます。
Windowsの方はバッチファイルでも作っておくと楽かもしれません。これにより、amaroKで音楽を再生するのはLinuxに任せることができるようになりました。ついでにPrismによるGoogleTalkもLinuxで実行させてます。発言があったときにはちゃんとサウンドがなります。Winではプログラムを実行したりするのでfb2kでの音楽の再生は止めざるを得ないときがありますからねぇ。
しかし、これで私の環境は他人に分かりにくくなりましたね(苦笑) 他の人が私のPCから漏れる音がうるさいということで音楽プレーヤーを止めようにも、まさかLinuxで鳴っているとは考えないでしょうし。まぁ、ヘッドフォンケーブル引っこ抜かれるんですけどね^^;
できたら対応したいのはamaroKのアルバムジャケット表示。まぁこれくらいは体裁にこだわらなければそっこーで用意できるので、明日あたりささっと作ってしまおう。ほんと、SuperKarambaとdcopさまさまだっぜ。
そのうち、その逆も実行してみたいところ。Winの音をLinuxで再生できないだろうかなと。こっちはWinESD使わないと無理っぽいからなぁ。PulseAudioの擬似ドライバでも開発されたら別だけど・・・。まぁ、Winの音をLinuxで再生ってのは主に仮想OSでの使用を考えてるから、あまり重要ではないのだけれど。
そうそう、LANにてサウンドを飛ばすのに用いる帯域は1ストリームあたりおよそ200KB/s弱でした。LAN環境なら余裕ではないかと。例えば、amaroKで音楽を鳴らしながらPrismでチャットをし、ニコニコしてたら600KB/sです。案外喰わないもんですね。これなら無線でも余裕かな。
と、いうことであまり実用的ではないPulseAudioの使い方紹介でした。WinでPulseAudio経由にてサウンドを鳴らす方法はぼちぼち調べてみますかね。

2007年12月4日火曜日

Linuxでビデオチャット

とタイトルで銘打っておきながら動画は初音ミク(ぉ こないだ投稿したやつではボケボケで見えませんでしたし、音もなかったですので、今回はその反省を活かし、範囲を狭めて音も取り込みました。
が、試行錯誤しつつやったため、出来はいまいちです。というか途中で物理+仮想メモリ全部使い果たして操作不能に陥ったことが4、5回あり、作業にならなかったりしたんです;;
ま、なんとか完成はしたので貼っておきます。FC2動画ってどうなんやろ。今度覗いておこう。
それはさておき、本題。Linuxでも音声チャットはSkypeでできてましたし、それ以外にも様々チャットクライアントはあります。が、ビデオチャットが可能なクライアントはあまりないです。Kopeteは対応してたっけな。やったことないけど^^;
で、先日SkypeのLinux版がビデオチャットに対応したということで早速チェキ。
yumでDLしてみるも、はて更新なし。
「どないやねん!」
と思ってググってみますと、どうやらβ版らしい。なるほど開発版のDLページに行かなきゃないのね。
というわけで早速開発版をインストール。見た目にこれといった変化はなく、メニューにビデオデバイスが追加されていたくらいでした。Windows版に比べればかなりシンプルです。まぁ仕方ないか。
で、Velnirに頼んで動作チェック。特に何の問題もなくビデオチャットできてました。こっちのデバイスも向こうにちゃんと届いてます。私はWebカメラを持っていないため、キャプチャボードでキャプチャした映像を飛ばして確認しました。
実はそれ以外に、Screencast4Linux: LinuxのX Window上で手軽にスクリーンキャストというプログラムが開発されているようです。WindowsにはManyCamがありますが、Linuxにはその手のものが見当たらなかったのでこれは注目です。
面白そうなものには目がない私ですのでもちろんDLして試したんですが、私の環境ではうまくいきませんでした。なぜだろう。64bitだからかなぁ・・・。それはあまり関係ない気はしたんだけど・・・。キャプチャボードと競合したっぽかったからキャプチャボードのドライバをアンロードしたけど結局ダメだった。
けど上記サイトのスクリーンショットを見る限りちゃんと動作してそう。すっげぇなぁ。面白そうだからぜひとも開発を進めて欲しいものです。何も協力できないのが残念。Xにv4lはハードルが高すぎる・・・。
と、いうわけで、Linuxも色々と出来るようになってきました。ほんと、後はゲームくらいだなぁ。なんかキラータイトル出てこないかしら。AirかSilverMoonに期待か!?

2007年12月3日月曜日

みっくみくデスクトップ Part.2

[youtube http://www.youtube.com/watch?v=RXevsd13wPA&rel=1&color1=0x006699&color2=0x54abd6&border=0]
と、言う訳で、みっくみくデスクトップ第2弾です。前回に加え、SuperKarambaのウィジェットとMaCoPiXを追加。MaCoPiXにて新規マスコットの初音ミクを作成しました。画像や音データはApricotに同梱されているものを使用しました。絵師はSHIGATAKE氏です。はちゅねミクもあったんですが、個人的にこっちの方が気に入ったので(ぉ
う〜んむ、やっぱテキストは潰れてて読めないな^^; ようつべの解像度じゃ無理があるか。
また、サウンドキャプチャをどうやったらいいか分からなかったため、今回も音なしです。実際にはクリック時に
「みっくみくにしてあげる〜」
「ミクですよ〜」
と喋ってます。Apricotと違い、クリック時しか喋りませんが。
しかしMaCoPiXって意外と簡単にマスコット作れたのね。アクションとしては少なめかも知れないけど、かなり前から公開されてたアプリだものなぁ。つい最近更新されててびっくりした。地味に64bitでコンパイルしちゃった。あっけなく動くんだから驚き。優秀やなぁ。案外メモリ喰ってないし。
あと、SuperKarambaのウィジェットも微妙に改造。システムパフォーマンスモニタに追加して、現在再生中のアルバムジャケット表示機能を追加。themeファイルでのみの対応なので、枠がないなどやっつけ感がたっぷりですが、そこは追々対応しましょうかね。
・・・、気が向いたら。
さて、ウィジェットとして残す所はRainlenderくらいかな。あれはWindowsで改良してLinuxに持ってきた方が無難なんだよなぁ。今でも下手に触るとレイアウト崩れるからできるだけ触りたくなかったり。バイナリしか提供されてないからそのうちライブラリのバージョン依存でこけそうなんだよなぁ。代替アプリは探しておくべきかも。
と、いうことで今週のサンデープログラミング?は終了っとな。来週は何つくろうかねぇ。

2007年12月2日日曜日

Fedora8の未解決の問題

あくまで、現在の私の環境でということになります。現時点で発生している問題点としては
・HALがUSBメモリを自動マウントできない
・全体的にやや不安定
・InitNGで、各種デーモンを起動時有効にしておくと不具合が起こる
などが挙げられます。HALに関しては、ひょっとすると64bit環境のみかも知れません。大学のPCにもFedora8をインストールしていますが、そちらではUSBメモリは問題なくマウントできました。家の環境でも、手動でマウントすればできるようですが、なんか釈然としないですね・・・。他にも同様の症状の方はいらっしゃるんでしょうか?
全体的に不安定なのはFedora8からというわけでなく、継続してます。いつから不安定だったのか思い出せればいいのですが、はっきりとは覚えてないんですよねぇ。気がつくとやたらとXおちだしたなぁと。多分、PCを組み直した去年12月だとは思うんですよね。この頃からBerylなんかで遊び出して、Xが堕ち始めたので。
てっきりBerylのせいだと思っていたために気付くのが遅れたというのが実状。が、ハードウェアを変えたら安定するのかは未知数。するとは思うけれど、財政的に厳しいなぁ。むぅ。
InitNGは今日試してみました。昔、FC4の頃に試したことはあったんですが、あの頃は不安定というか、alsaが有効にできなかったので諦めたんですね。で、久しぶりに再挑戦。
デフォルトのままInitNGを有効にして再起動。無事起動。ビビるほどの起動速度ですね。比較にならんとです。
が、それも半分は当然。起動してないサービス多数。Xやサウンドは有効でしたが、Avahi、MySQL、Dovecot、SpamAssassin、Postfix、lm_sensor、Firestarterあたりが無効になっていました。他にも必要な人も居られるでしょう。起動しているサービスの方が少なかった^^; 必要最低限とは言ったもんだ、うん。
で、ngc-updateコマンドで起動時有効にしたいサービスを登録。再起動してみました。
その結果、ログインはできましたが、確実にエラーが発生しているのが見えました。つーか、あのメッセージ、起動プロセスでコケて^C+Dでやめるかrootパスワード入れろってメッセージだったと思うんだけどなぁ・・・。なんでそのままX起動できたのか謎。
で、案の定有効にしたはずのサービスは起動してませんでした。結局、追加したどれかがよろしくなかったってことでしょう。ただ、それを調べるには面倒なのでInitNGは今回もパス。
大学のFedora8はそんなに起動デーモンが多くないため、そっちでは有効にする価値がありそう。
とまぁ、こんな感じです。PulseAudioはある程度御し方が分かってきたので常用しましょうかね。ただ、自動検出させると44.1kHzの16bitにしくさるので、48kHzの24bitになるようそこだけ設定を変えたい所存。設定ファイルの書き方を調べておきますかね。
とりあえず、安定に動作させるのが最大の懸案事項だなぁ・・・。