googleドキュメントでblogを書く&共有で投稿するテスト
2010/05/12
2010/05/09
esata起動とmediatomb
とりあえずメモ。
esataドライブをつけてesataにubuntuをインストールしてそっちから起動させるようにする。
基本的なやり方は日経Linux5月号にのってるのでそちらで。
ほんとは最新のkernelにsheeva patchを当ててmake+mkimageでuImage作成してesata起動対応したkernel-2.6.33.2を作ってbootしてみたんですが、/dev/sda not found でkernel panicになってしまって、うーん・・orz。
結構調べてみたんですが、今回は近道してもうBuild済みのkernel+ubuntu9.04を使いました。
そんで、まずは当初の目的だったPS3用にNAS+DLNAサーバを作ることにしました。
$sudo apt-get install mediatomb
$sudo apt-get install mysql-server
$sudo apt-get install ffmpegthumbnailer
で、ぱぱっとインストール完了。
ここからはうちの環境用に設定をいじってきます。
$sudo vi /etc/mediatomb/config.xml
で設定を弄ります。
まずはデフォルトでsqliteなのをmysqlにします。
うちの音楽ファイル、写真ファイルは数万ファイルずつあるんですが、以前玄箱で試した経験上、sqliteだとPS3で引いてくるのが遅くて使い物にならなかったです。
<sqlite3 enabled="no"></sqlite3>
(略)
<mysql enabled="yes">
次はわざわざコメントで書いてあるくらいなので以下をyesに変更します。
<protocolinfo extend="yes"></protocolinfo>
文字コードの設定します。
UbuntuのファイルシステムがUTF-8なのと、iTunesでAAC化したメタデータがUTF-8である事をふまえて以下にすると、文字化けせず表示されました。
<import hidden-files="no"></import>
<filesystem-charset>UTF-8</filesystem-charset>
<metadata-charset>UTF-8</metadata-charset>
<scripting script-charset="UTF-8"> </scripting>
<map from="m4a" to="audio/mp4"> </map>
<map from="mpg" to="video/mpeg"> </map>
<map from="mts" to="video/mpeg"> </map>
<map from="m2ts" to="video/mpeg"></map>
<map from="m2t" to="video/mpeg"> </map>
<map from="avi" to="video/divx"></map>
上記でwmvと書いてあるんですが・・、実際にはwmvは”壊れたファイルです”エラーがでて今の所再生できてません。
<transcoding enabled="yes"> </transcoding>
<mimetype-profile-mappings></mimetype-profile-mappings>
<transcode mimetype="video/divx" using="video-thumbnail"></transcode>
<transcode mimetype="video/mpeg" using="video-thumbnail"></transcode>
<transcode mimetype="video/mp4" using="video-thumbnail"></transcode>
<transcode mimetype="video/avi" using="video-thumbnail"></transcode>
<transcode mimetype="video/x-ms-wmv" using="video-thumbnail"></transcode>
<profiles>
<profile enabled="yes" name="video-thumbnail" type="external"> </profile>
<mimetype>image/jpeg</mimetype>
<accept-url>yes</accept-url>
<thumbnail>yes</thumbnail>
<resolution>128x128</resolution>
<agent arguments="-i %in -o %out -s 128 -t 0%" command="/usr/bin/ffmpegthumbnailer"></agent>
<buffer chunk-size="512" fill-size="1024" size="524288"> </buffer>
$mysql -u root -p < /usr/share/mediatomb/mysql.sql
esataドライブをつけてesataにubuntuをインストールしてそっちから起動させるようにする。
基本的なやり方は日経Linux5月号にのってるのでそちらで。
ほんとは最新のkernelにsheeva patchを当ててmake+mkimageでuImage作成してesata起動対応したkernel-2.6.33.2を作ってbootしてみたんですが、/dev/sda not found でkernel panicになってしまって、うーん・・orz。
結構調べてみたんですが、今回は近道してもうBuild済みのkernel+ubuntu9.04を使いました。
そんで、まずは当初の目的だったPS3用にNAS+DLNAサーバを作ることにしました。
$sudo apt-get install mediatomb
$sudo apt-get install mysql-server
$sudo apt-get install ffmpegthumbnailer
で、ぱぱっとインストール完了。
ここからはうちの環境用に設定をいじってきます。
$sudo vi /etc/mediatomb/config.xml
で設定を弄ります。
まずはデフォルトでsqliteなのをmysqlにします。
うちの音楽ファイル、写真ファイルは数万ファイルずつあるんですが、以前玄箱で試した経験上、sqliteだとPS3で引いてくるのが遅くて使い物にならなかったです。
<sqlite3 enabled="no"></sqlite3>
(略)
<mysql enabled="yes">
次はわざわざコメントで書いてあるくらいなので以下をyesに変更します。
<protocolinfo extend="yes"></protocolinfo>
文字コードの設定します。
UbuntuのファイルシステムがUTF-8なのと、iTunesでAAC化したメタデータがUTF-8である事をふまえて以下にすると、文字化けせず表示されました。
<import hidden-files="no"></import>
<filesystem-charset>UTF-8</filesystem-charset>
<metadata-charset>UTF-8</metadata-charset>
<scripting script-charset="UTF-8"> </scripting>
拡張子とmimeのmapping設定をします。
<map from="m4a" to="audio/mp4"> </map>
<map from="mpg" to="video/mpeg"> </map>
<map from="mts" to="video/mpeg"> </map>
<map from="m2ts" to="video/mpeg"></map>
<map from="m2t" to="video/mpeg"> </map>
<map from="avi" to="video/divx"></map>
上記でwmvと書いてあるんですが・・、実際にはwmvは”壊れたファイルです”エラーがでて今の所再生できてません。
最後にtranscodingの設定、というかvideo thumbnailの設定。
<transcoding enabled="yes"> </transcoding>
<mimetype-profile-mappings></mimetype-profile-mappings>
<transcode mimetype="video/divx" using="video-thumbnail"></transcode>
<transcode mimetype="video/mpeg" using="video-thumbnail"></transcode>
<transcode mimetype="video/mp4" using="video-thumbnail"></transcode>
<transcode mimetype="video/avi" using="video-thumbnail"></transcode>
<transcode mimetype="video/x-ms-wmv" using="video-thumbnail"></transcode>
<profiles>
<profile enabled="yes" name="video-thumbnail" type="external"> </profile>
<mimetype>image/jpeg</mimetype>
<accept-url>yes</accept-url>
<thumbnail>yes</thumbnail>
<resolution>128x128</resolution>
<agent arguments="-i %in -o %out -s 128 -t 0%" command="/usr/bin/ffmpegthumbnailer"></agent>
<buffer chunk-size="512" fill-size="1024" size="524288"> </buffer>
mysqlの準備。
データベースの初期化用SQL
resetdb.sql作っとく。ファイルの追加に失敗して一からやり直したい事が結構あったので、作ってた方が楽。
drop database mediatomb;
create database mediatomb;
grant all on mediatomb.* to 'mediatomb'@'localhost';
flush privileges;$mysql -u root -p < resetdb.sql
$mysql -u root -p < /usr/share/mediatomb/mysql.sql
これで起動準備完了。
$sudo /etc/init.d/mediatomb start
で起動。
ブラウザで
http://server ip addr:49152 へアクセス。
こんな画面。
画面左のペイン?のFileSystem→ディレクトリツリーをたどって音楽ファイル、写真、動画があるディレクトリを選ぶ。右はじの”+”アイコンをクリックすると、ファイル登録が開始。
”+”アイコンの右の”+”と丸っこい矢印アイコンをクリックすると、scanの設定がでる。とりあえず
"Timed"(一定間隔更新), "Full"(更新時に中身も確認), "Recursive", "Scan interval(in second) 172800"(2日に1回)
かな。
"Inotify"を選びたいが、玄箱の時はInotify選ぶと復旧不能になると2chにあったので・・。
これであとはファイルの登録が済むのを待ってPS3で「ビデオ」「フォト」「ミュージック」のアイコンからMediatombを選ぶだけ。
videoファイルはサムネイルが(ちょっと遅いけど)表示されます。
やりたいけどできてないこと。
- CDのジャケットを表示できてない(ファイル内にジャケット画像が含まれている場合でも)
- WMVの再生
あと他にもあったよーな。思い出したら書きます。
ビデオはともかく写真とかは一列に並べる表示よりもグリッド状に表示してくれた方が一覧性がいいなぁ。
音楽もアーティストが"feat. ◯◯"とかが全部でてきて異常に多くなってるし、多くなるとお目当てのアーティストまでスクロールするのが面倒だったり・・。
2010/05/07
/dev/mtd?と/dev/mtdblock?
uImageやrootfsの書き込みの際に、
/dev/mtd?と/dev/mtdblock?と微妙に似て非なる2つのものがでてきたので、ちょっと調べた内容についてメモ。
参考リンクは以下
デバイスドライバー以下http://www.ibm.com/developerworks/jp/linux/library/l-embdev.html
というのを踏まえて参考にしたサイトを見ると、
NANDに直アクセスする場合
となっていて、マウントする場合は
と使い分けられているわけか。
なんとなく、わかったような気になったよーな気がする。
/dev/mtd?と/dev/mtdblock?と微妙に似て非なる2つのものがでてきたので、ちょっと調べた内容についてメモ。
参考リンクは以下
デバイスドライバー以下http://www.ibm.com/developerworks/jp/linux/library/l-embdev.html
MTDドライバーは、Linuxで、とくに組み込み環境用として開発されてきている新しいクラスのドライバーです。従来のブロック・デバイス・ドライバーと比較してMTDドライバーを利用することの主な利点は、MTDドライバーがとくにフラッシュ・ベースのデバイス用として設計されている点です。したがって、セクター単位の消去や読み書きに関して、サポートや管理やインターフェースが従来よりも良くなっています。どうも、デバイスにはセクター単位で データにアクセスするデバイス(HDDとか)(=ブロックデバイス)に対して、もっと細かい単位でデータにアクセスするデバイス(フラッシュメモリとか)(=キャラクタデバイスというらしい)がある。
で、フラッシュメモリが対象になる場合に、/dev/mtd?の方はアクセスする単位を細かいデータ単位(=キャラクタ?)で取り扱えるのに対して、/dev/mtdblock?の方は既存のブロックデバイスであるかのように取り扱えるというような違いかな?MTD_CHARには、フラッシュのキャラクタを直接アクセスする機能があるのに対して、MTD_BLOCKは、フラッシュを通常の (IDEディスクのような) ブロック・デバイスとして取り扱い、その上にファイルシステムを作成できるようにしています。MTD_CHARに関係付けられるデバイスは /dev/mtd0、mtd1、mtd2 (など) で、MTD_BLOCKに関係付けられるデバイスは /dev/mtdblock0、mtdblock1 (など) です。MTD_BLOCKデバイスは、ブロック・デバイスに似せたエミュレーションを行いますので、多くの場合、このエミュレーションの上にFTLやJFFS2のようなファイルシステムを作成すればよいでしょう。
というのを踏まえて参考にしたサイトを見ると、
NANDに直アクセスする場合
#/usr/sbin/flash_eraseall -j /dev/mtd2
#/usr/sbin/nandwrite -p /dev/mtd2 /ubuntu-9.0.5.Release.jffs2
となっていて、マウントする場合は
#mount -t jffs2 /dev/mtdblock2 /mnt1
と使い分けられているわけか。
なんとなく、わかったような気になったよーな気がする。
SheevaPlug+でNFSBoot
SheevaPlug+復旧の記録。
Ubuntu Weekly Recipe第69回 GW特別企画・電源プラグ型コンピューターSheevaPlugの使い方(1):基礎編
送られてきたSheevaPlug+でapt-getをやろうとすると、
"/usr/lib/methods/http not found"(Pathは少しあやふや)なるエラーがでてしまい、plugcomputing.orgからゲットしてきたrootfs.tar.gzやら展開してみるも効果がなく、途方にくれて結局rootfs自体再インストールする事にしました。
で、NFSBootをやりました。
(後から考えたらSDCardにMiniRoot作ってもいけたような気もするんですが・・)
NFSBootをしてNetwork越しのkernel&rootfsでBootし、NANDを書き換えるという作業。
かなり参考した記事は以下
Ubuntu Weekly Recipe
第70回 GW特別企画・電源プラグ型コンピューターSheevaPlugの使い方(2):インストール編
やりたいことをほぼそのままやってくれているので詳細はそちらにゆずるとして・・。
やりたいことをほぼそのままやってくれているので詳細はそちらにゆずるとして・・。
ざっくりやったことを書くと、
母艦側
1. tftpのインストール&設定
2. NFSのインストール&設定
3. NFSBoot用のkernelとrootfsの準備
SheevaPlug側
4. bootcmd, bootargsをNFSBoot用に設定
5. NFSBootする
6. flash_eraseall, nandwriteを使ってkernel, rootfsの上書き(kernelはついでにやった)
7.bootcmd, bootargsをNANDBoot用に設定
8. Boot
注意点があるとすれば、
rootfsのサイズが記事では0x1f800000なんですが、
自分の環境では0x1fb00000にしないとうまく起動してくれなくて、rootfsが読み込めんといわれてkernel panicを何度も起こしました。
あと、別に起動しなくなるわけではないかもしれませんが、bootargsのmtdpartsを記事ではu-bootから指定してますが、自分の環境ではuImageとrootfsだけ書く方に変えました。
長くなったので、とりあえず一旦ここまで。
登録:
投稿 (Atom)

