インストール中に試行錯誤で入れたパッケージで不要なものを消したりUSEフラグの調整をしてたので時間がかかった。デフォルトでcupsとか有効になっていて余計なライブラリが組み込まれすぎてたもので。あまり削りすぎると窮屈になるので多少なりとも使うと思われるものは入れておきたいです。
パッドを設定しようと思って/usr/share/xbmc/system/keymaps/keyboard.xmlを眺めてた。ファイル先頭に簡単な説明があったので概要はわかった。パッドの名前をcat /proc/bus/input/devicesを見るか、XBMCのログを見ればわかるらしい。その名前を使ってglobalセクションに書いてやればいい。ボタンIDはSDLで使用されるIDで、xbmc.logに押されたものが記録されるらしい。
つまり、
・
・
・
これを
ちなみにPlayStation3のパッドは設定が提供されてるのでそれを使うのが楽と思われます。
パッドはELECOMのものですが、下記のように設定しました。
あと中央のボタンが2つあるので、それも割り当てたいと思ってます。それと、プレイ中にシーンのサーチとかチャプターを飛ばせるようにもしたい。
書き忘れてましたが、デバッグ情報はuserdata/advancedsettings.xmlにログを出力するように設定する。ファイルは存在しないので新規に作成すればいい。それにより、xbmc.logに押したボタンの情報やら出力される。
「Linux」カテゴリーアーカイブ
SX260をメディアプレイヤーに
素直にWindowsを使えばいいのですけど、LinuxでもXBMCが使えるって知ったので入れてみることにしました。体験するならGentooのLiveCDでも可能です。ディストリは使い慣れてるGentooで。
0.最終目標
LAN接続でファイルサーバにある動画ファイルおよびDVDドライブからの動画を再生する。ゲームコントローラで制御ができるならそれで行う。まあ、XBoxでやってたことができればいい。
1.Gentooをセットアップ
ハンドブックに従ってインストールします。SX260は854チップセットでビデオ、サウンド、LANなどがデフォルトで使えるので特別に設定すべきパラメータは無いです。今回はUSBゲームコントローラを使おうと思ったので、ジョイスティック関係を組み込みました。
2.Xのインストール
素の状態ではXBMCは動かず、Xが必須となるのでインストール関係のドキュメントにあるXの設定を参考にしてインストールする。USEフラグはここで必要なものを設定。メディア再生で必要そうなものを設定しました。
xorg.confは自動生成されたものをテストして何も表示されなくて苦労しましたけど、何も問題なかったみたいでした。つか、xorg.confを作らなくてもstartxで問題なく使えたりします。最近のXは賢くなったねぇ。
3.ALSAのインストール
デフォルトでサウンド関係は有効になってるのでemergeしてalsaconfで設定するだけ。
4.XBMCのインストール
マスクされたパッケージなので、/etc/portage/package.keywordsにmedia-tv/xbmc ~x86を追加。
5.自動ログインさせてXBMCを起動させる
以下のファイルを変更または追加。
・/etc/conf.d/local.start
/bin/su ユーザー -l -c ‘/bin/bash –login -c startx >& ~/.xsession-errors’ &
・ユーザーの.xinitrc
exec xbmc-standalone
6.XBMCの設定
・フォント
デフォルトだと日本語表示は豆腐(って言わないかい?四角が出るだけです。)になるので手ごろな日本語フォントを/usr/share/fonts/配下からコピーします。東風は駄目だったので、IPAをコピーしました。モナーフォントでもいいらしい。
コピー先は/usr/share/xbmc/media/Fontsで、Arial.ttfへ上書きコピーします。まあ、オリジナルをリネームしてコピーがいいでしょう。
XBMCを起動してSystem→Appearance→SkinのFontsをArial basedへ、InternationalのLanguageをJapanses、Character SetをJapanese(もしかするとDefaultでOKかも)に設定すれば日本語になると思います。要はArial自体は日本語を持ってないのでArialに見立てて日本語フォントを入れればXBMC自体はマルチリンガルなので行けるという。
・パッドの設定
カーネルにジョイスティック関係を設定すると/dev/input/js0が利用できると思います。jstestなどで動作確認してください。/dev/js0は無いのでうちは一応シンボリックリンクを張っておきました。
XBMC上ではパッドが認識しないので、/usr/share/xbmc/system/keymapsにxmlファイルを作って置かないと駄目っぽい。gamepad.xmlをいじればいけるか?とか思いましたけど、うまく設定できてないのでこれは後日にでも。
P4-2.4GHz、オンボードVGAだとやはり厳しいですね。モニターが液晶TVを使ってるので、1360×768がフル画面となり、引き伸ばした映像が激しくスクロールするとかくつきます。オリジナルサイズだとまあまあでしたけど、小さい画面だと厳しいです。
もしかすると、Windowsにした方が軽いかな?ちょっと気になるところ。HDD内容をバックアップして入れてみようかとか思ってたり。
そういえば、今回ルートはReiserFSを使いました。以前使っていたホームサーバであるNEC PK-AX20がReiserFSを使っていたのでext3よりアクセスが早いのか?と思いまして。HDDに入れての再生は考えてないのでファイルシステムは何でもいいかも。
☆課題
1.ゲームコントローラでの操作
2.XBMCのシャットダウンからのシステムシャットダウン(LiveCDだとできてるので)
3.要らない設定のカットともう少し最適化。-O3でも駄目だろうけど。
VMware起動した
VMwareがエラーを吐いて停止する問題がわかった。
VMwareがD-BUSに悪さするらしい。VMwareを起動させる前にD-BUSを停止させ、VMwareを起動、D-BUSを起動させれば問題なく動く事が判った。
haldは起動刺せようとするとconsolekitが起動するメッセージが出て停止する。なので既にconsolekitに置換えていいものと思ってrc-updateで削除し、consolekitを追加しておいた。これでgdm経由でログインできるようになると思われる。そして上記の手順を実行すればいいわけだ。
GNOMEを消してシンプルなXにし、WMをWindowMakerあたりにしてしまうのも手かも。twmでもいいのですけど、Windowsライクな操作のほうがいいので微妙なところ。
サーバのメンテ 続き
ハードを入れ替えてプロセスが不定期に落ちたり、ログインできなくなったり、カーネルパニックになったりしたのですが、原因がメモリだった。1GBのモジュールを2枚刺してましたが、それとマザーの相性が悪かったみたいです。1枚ならエラーが出ないが何とも。まあ、エラー原因がわかってよかった。
それと、VMwareが起動しない問題が。どうやらhaldを起動しないと駄目らしい。でもhaldを動かすとgdmが落ちて駄目だったり。dbus、consolekit、hald辺りがどうも怪しいみたいです。これらを外したいところですが、いくつかUSEフラグが関連するみたいなのでいろいろ試してみます。
サーバのメンテ
emerge –syncしたらカーネルのバージョンも結構上がってるしPHPも上がって何気にアップデートしたらひどい目にあった。Xは起動してもGNOMEが落ちてグラフィカル環境は壊滅。いろいろと試してるうちにマシンが立ち上がらなくなった。
マシンが起動しない原因はどうも電源スイッチの不良っぽい事が結果的にわかりましたけど、Socket603のXeon2.4GHzでしたが、メモリーがRIMMで増加も高くのとマシンの轟音が前から問題でした。P4 3GHzとマザー、DDRが余ってたので入れ替えました。電源も剛力が余ってたので何とかなった。
それでもGNOMEが落ちる問題が解決してないのでそれからかな。PHPのバージョンが上がって警告が出る関数があるのでスクリプトも何とか対処しないと。あと、VMwareも起動しないかも状態なので安定までは先が長そう。
PBG4のメンテ
やっと終わった。
いくつかのパッケージでlafilefixerを実行しないと駄目なのがあったのと、libpng12問題があったくらいか。前者は古いパッケージが引き起こす問題か?一通りlaを提供するパッケージを更新してくれればいいのにね。後者は付属のシェルスクリプトを実行すれば解消できる。一応古いライブラリは新パッケージの持ち物らしいから消さないけどリンク先が新しいものになってるからこのまま放置でいいかも。
見た目の問題点はなかったけど、Firefoxを起動すると最新じゃないって警告画面が出てた。最新じゃないとしても閲覧できればいいのでこれも放置。ローカルの設定を消せば解決できるのか?とか思うけど面倒なのでいいや。
PowerBook G4のメンテ
ppc32環境ですが、gcc-4.4とGNOME 2.30(2.28だった気がしたけど、昨日のemerge –syncで2.30が来た)が降りてきました。gccをコンパイルしてgentoo-sourcesも新しくなったのでカーネルを作り直したらモジュールのコンパイルでエラーが出た。
drivers/scsi/ipr.c: In function ‘ipr_mask_and_clear_interrupts’:
drivers/scsi/ipr.c:653: error: implicit declaration of function ‘writeq’
(以下略)
SCSI関係のモジュールなのでOFFにすればいいと思ってメニュー内を「IPR」で探したらIBMのモジュールだった。それをOFFにしたら問題なく通った。それにしてもallでコンパイルするとPBG4で3時間くらいかったか?デフォルトで作成するモジュールが多すぎるのでしょうね。うまく削って見たいところです。
そして、emerge -uDN worldでアップデートと思ったらgcc-configで切り替えを忘れてた。カーネルは前のコンパイラで作ってしまったよ。今度はモジュールを減らしつつリコンパイルを後でやるさ。
アップデート中、glibのコンパイルでautomakeが通らない問題があった。
http://forums.gentoo.org/viewtopic-p-6345743.html?sid=967f46b611539dc1b21afca06ebdb099
ここと現象が同じなので、リンク先のhttp://bugs.gentoo.org/show_bug.cgi?id=327559へ行って#3に書いてあったemerge gtk-doc-amを実行したら問題解消できた。必要だったらアップデート時にコンパイルして欲しいよ。
automakeを再マージとか余計なことをしてしまった。
あとはアップデートが終わったらカーネルを作り直して再起動か。そしたらemerge -e worldで全リコンパイルしよう。このマシンは寝る前にインターネットを覗いたりするマシンなので動くだけでいいし。
改めてPBって使いにくいと思う。Windows系のWheelマウスに慣れてると特に苦痛に感じる。ボタン一個でよく操作できるよね。タッチ部で叩いて対応するのでしょうけどLinuxを入れてしまうと3ボタン系で使いやすくなってるから仕方ないと言えばそれまでですけどもう少し使い勝手をよくする方法とかあるのか?とか思う。もう一台A31pが欲しい気がしてきた。つか、最新鋭のノートを買って寝室にA31pを持っていくのがベストかもしれなが。
続samba
swatは起動できたけど表示が英語のままだった。
display charsetを指定したけどUTF8じゃ駄目なのかも。eucにしてもいいけどunix charsetと同じにするといいとあったのですけど駄目だし。まあ、英語でもいいのでこのまま放置します。
そういえば、rootをsambaのユーザーに追加してなかったので入れなくて焦った。
それと大きな問題が1点。シンボリックリンクされてる先への参照が出来なくなってた。どうやら3.4.6から7に変わったときに変更されたらしい。シンボリックリンクを辿る攻撃があったらしく、その正式対応みたい。
unix extensions = no
wide links = yes
これをglobalに追加すれば問題ない。うちはfollow symlinksも指定しておいた。
emerge -e world
全リコンパイル完了。
そしていくつかハマった。
emerge -eをする場合は事前に–syncを行ったら-uDN worldでアップデートしておかないと失敗する場合があるってわかった。アップデートしつつリコンパイルできると思ったのが甘かった。
リコンパイル中に何故かカーネルソースのシンボリックリンクが古いものに置き換わった点があった。不気味なのでgentoo-sourcesをマージし直しておいた。カーネルのリコンパイルもしたのですけど、nvidia-driversのりコンパイルを忘れてた。これまた古いカーネルのモジュールを作ったのか謎である。xf86-input-*関係はリコンパイルで問題なかった模様。
vmware-playerが起動しなかった。vmmonとかモジュールが何故かロードされなくて、/lib/modules/*/miscを見たけどモジュールはあった。emerge –config vmware-playerを実行してみるとコンフィグレーションがまた新しくなって変わってたので何が何だか。vmmonとかをinsmodでロードしてみたら動くには動いたけどネットワークがうまく認識しなかった。もう一度マージしなおしてリコンパイルし、–configしなおしてみたら何事も無かったように動いたので謎である。
そしてsambaですが、通常通りWindowsから参照したら長い呪文のようなエラーが出てアクセスできず。設定やらデーモンやらは問題なさそうなのですが、いろいろと試すとパスワードなしのパブリックな奴はアクセスできると判明。homesへのアクセスがおかしいとわかった。smbpasswdは問題なかったので前から入れようと思ってたswatフラグを追加してsambaをリコンパイルしたら…最後にメッセージが出て警告があったよ。samba 3.4からpassdb backendが変更されてpassdb backend = smbpasswdを指定するか、pdbedit -i smbpasswd -e tdbsamを実行してユーザー設定を移行しないと駄目らしい。一応前述の方法でsmbpasswdを引き継げるらしいですが、後者がこれからのメインらしいのでコマンドを実行して引き継ぎました。あとはこのコマンドで保守すればいいらしい。設定してsambaを再起動したら何事も無くアクセスできるし。emergeのログを読まない罰なんだろうね。
これでサーバが-O3から-O2 -march=nativeへの変更が出来た。体感でのアクセス速度は変わってないけど恐らくこのマシンでの最速な環境となった”はず”です。あとでswatも試さないと。
サーバのメンテ
仕方ないのでgccのバージョンを上げました。-O3にしてたのも-O2と-march=nativeに変更。これが一番最適化されるらしいので試して見ようかと思って。それと-fno-strict-aliasingも付けた。ポインタの型変換だけで違うタイプのメモリアクセスした場合に警告が出なくするだけですが、unionを使えば警告が出ないといわれてます。しかしunionってシステム依存な部分が多いから移植性に問題がありそうな気がする。恐らく使われることも少ないと思って警告をOFFという形で対処です。この辺りのプログラミングは宗教論争と同じだからなくすなら言語を変えるしかないだろうし。
全部コンパイルしたかったのですが、emerge -e systemを実行したらコンパイルできないのがあった。コンパイルされる順番が悪いのかフラグがいろいろ変わって駄目なのかよくわからず。GNOMEのバージョンも上がってるのでアップデート分のコンパイルを先に行いました。
引っかかったのがgststreamer関係。blockedの問題は軽度ですけど、gst-plugins-pangoのコンパイルがなかなか通らなかったので焦った。cairo辺りのエラーが出てたのでcairoをリコンパイルしても駄目。emerge –syncを実行してもしや?と思ってpangoをリコンパイルしたら通った。何をリコンパイルしたらいいかわからんのがGentooの悪いところというか欠点に思える。関連するパッケージが入ってればどんなコンパイルオプションだろうがある程度通ってしまうから整合性を取るのもむずかしいのでしょうね。これがソースビルド系のつらいところか。