玄箱Pro、直します。

超初心者が、玄箱PROでLinuxを勉強する無謀なブログです。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
別窓 | スポンサー広告
∧top | under∨

MediaTomb覚え書き

なんとか文字化けを解消。
一応のメモ。

まずはconfig.xmlに以下の赤文字を追記。

<import hidden-files="no">
<filesystem-charset>UTF-8</filesystem-charset>
<metadata-charset>CP932</metadata-charset>

<scripting script-charset="UTF-8">



当初、これだけで文字化けを解消できるかと思っていたんですが、どうもうまくいかない。
よくよく調べてみると、「WindowsのiTunesでCDを取り込んだmp3は化け、データで導入したmp3は化けない」という共通点を見つけた。

mp3のタグ情報についてググってみると、ID3タグには様々な設定があるようで、文字化けしないmp3はすべて「ID3v2.3+v1.1」となっていたのに対して、それ以外の設定のmp3はすべて化けた。
しかも同一のアーティストなのにもかかわらず、APX-300の「Artist」のくくりでばらつきがあった。
Windowsでこれらのmp3のタグを修正することに。
使用したソフトは「SuperTagEditor改 Plugin Version (Nightmare)」。

全体のmp3タグ情報をまず「標準mp3形式」に変換し、次に「ID3v2形式」に変換、そして「ID3v2バージョン」を「v2.3」に変換。
さらに「文字コード」を「UTF-8」にしてみたりした。

・・・・・直らねぇぇぇ(>_<)

もうホント、丸1日くらいずっと格闘していましたけど、なんか妙なことに気がついた。
MediaTombをリロードしても、データベースそのものに変更が加わっていない気がする・・。
いやいや、気のせいかもしれませんよ。
仕組みもわからない素人が偉そうなこと言っても仕方ないんですが、明らかに挙動が変な気がする。

調べてみると「sqlite」を使っているとのこと。
実はsqlite、よく知らないんです(笑)。
MySQLは仕事の関係で何度か触れてるんですが、sqliteは概念も何もわかりません。
テーブルの情報すらどうやって確認するのかわからない・・。

こうなったらMySQLにしちゃおうか。

ということで、

ひまにあ日記さん
玄箱をDLNAサーバーにする!(インストール編)

アメコロガシさん
MediaTombの設定メモ



を参考にしながらStorageDriverをMySQLに変更しました。
それほど難しくもなく、すんなりと(と言いながら2度ほどパスワード云々と言われMediaTombが起動できませんでしたが(笑))起動できました。

前回までのDatabaseを削除し、新たに追加し直すと・・。

で、できた~!!

今まで山のように文字化けのエラーがコンソールに流れていたのが嘘のように静まりかえって作業しています・・。
早速APX-300で確認してみると・・・完璧!
倖田來未の「來」、長渕剛の「渕」など、どうしても表示できない漢字も存在しますが、これは化けたというよりは仕様でしょうね。

これで何とかクリアしました。

以上、MediaTombの文字化け回避メモでした。

(2008.1.10追記)
この時点からの玄箱PROと今の状態(工場出荷状態)が違いすぎるため確認はしていませんが、たぶんMySQLは無関係ですね(笑)。
mp3タグを修正した後、おそらくsqliteで作成した「文字化けだらけのデータ」テーブルを削除し、再度構築すれば同じように直ると思います。
テーブル(データベース)を削除するのはMediaTomb設定のブラウザ画面からすぐできます。
再構築も同じ画面であっという間にできます・・・はぁ・・・。

スポンサーサイト
別窓 | Debianで遊ぶ | コメント:0 | トラックバック:0
∧top | under∨

MediaTomb+APX-300

最近ですね、めっきり勉強をサボってまして(笑)。
ホント、LinuxがどうしたとかU-bootがどうとかまったく触れてない気がします。

と、言うのもある事情で玄箱PROを各種サーバに仕立てる都合がありまして、web、ftp、samba、ssh、daap、メールサーバを急遽動かしました。
そして一通り役目を終わり、もう元に戻してもいいのですが・・・daapを入れた際に一緒にHDDに放り込んだ2000曲近くのmp3を再度戻したりするのもめんどくさく。

この際玄箱PROをメディアサーバに仕立てちゃおうか、と呑気なこと言い出しました(笑)。

ひとまずiTunesサーバはソースからビルドすればDebian環境でも日本語の曲名表示も出来ますし、これといって難解な部分も少なくクリア。
でも玄箱PROの本領発揮といくならやっぱりネットワークオーディオだと思いますので、とりあえず買いました、長瀬産業TRANSTECHNOLOGY APX-300

apx300


あちこちサイトを見て回ったんですが、よくわかりませんです(笑)。
config.xml触ったら何とか日本語が表示されだしたので「まぁいいや」レベルでオッケー。
カミさんが台所で聞くための装置ですから、あまり液晶表示にこだわる必要もなかったので、モチベーションもまったく上がらず。

ま、6000円ならこんなものですかね・・。

all AUDIOでシャッフルかけておけば台所音楽ライフは十分です。
一応アルバムごと、アーティストごと、年代ごと、ジャンルごとそれぞれで絞って再生したりシャッフルしたりできるようですが、なにぶんにも日本語対応がまちまちなんですよね・・。
もちろん私のMediaTomb側の設定のせいでしょうけど。

同じ日本人アーティストなのに、文字化けするものとしないものがあるんです。
ぼちぼち調べます。
別窓 | Debianで遊ぶ | コメント:0 | トラックバック:0
∧top | under∨

miconaplなどの導入(2)

前回、miconapl・nvramに必要なライブラリとmiconapl・nvramそのものをコピーしました。
その結果、ライブラリへのPATHとコマンドそのものへのPATHを毎回指定さえすれば動かすことができました。

例)
kurobox:~# LD_LIBRARY_PATH=/usr/local/kurobox/lib /usr/local/kurobox/bin/miconapl -b -a temp_get
#[miconapl.temp_get]
temp=33
kurobox:~# LD_LIBRARY_PATH=/usr/local/kurobox/lib /usr/local/kurobox/bin/nvram -c printenv
1: [baudrate=115200]
2: [loads_echo=0]
・・(略)・・
40: [bootcmd=ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)]
41: [nand_boot=no]


まぁ・・個人的にものすごく感動したんですが・・ちょっと仕組みが理解しやすい項目だったので、こういうのは本当に楽しいです(笑)。

で、今回はこのめんどくさいPATHの指定を省くやり方と、電源ボタンの有効化・ファンコントロールの自動化を導入します。

参考にしたサイト
エレキジャックさん
nvram, miconapl を使えるようにする
ファンの制御と電源スイッチ

まず、私が理解できた手順です。

■PATHをコマンドに渡す仲介役が必要

→この仲介役にもともとPATHの情報を持っててもらって、必要な時にコマンド(/usr/local/kurobox/bin内にある)にPATHとオプション情報を渡してくれればいい



■普通にコマンドを呼び出した時に、自動で仲介役を呼べばいい

→呼び出された仲介役は前述の通り本来のコマンドを呼び処理してくれる



おそらくこういう流れではないかと・・。
まず1番目の仲介役、これがエレキジャックさんの

miconapl-nvram.tar.gzをダウンロードし、適当なディレクトリ (/home/kurobox など)にコピーします。コピーしたら、/usr/local/sbin に展開します。


です。/usr/local/sbinに展開されたmiconapl(これは仲介役のmiconapl)には

# !/bin/sh

CMD=/usr/local/kurobox/bin/`basename $0`
LD_LIBRARY_PATH=/usr/local/kurobox/lib $CMD $*


という内容が記述されているらしいです。細かいことはわかりませんが、CMDのPATHがコマンドのPATHだということは眺めればわかります。エレキジャックさんも

ダイナミックライブラリの検索パスを指定し、呼び出されたコマンド名の /usr/local/kurobox/bin/ 内の相当するバイナリを呼び出しています。


と説明してくださってます。まさに仲介役な仕事です。

2番目の、普通に呼べば仲介役が返事をする、これがまだ不安なんですが・・。
結局、どうしてこれが実現できているのかはわかっていません。
またまた研究します。

とりあえず、これを導入した時点で、miconapl、nvramの最終的な意味でのコマンド導入は終了です。

次に電源ボタンとファンコントロールです。
ファンの制御と電源スイッチ」の通りに作業すれば簡単簡単♪

念のために電源ボタンを3秒程度押してhaltするかどうか、後部のリセットボタンを押してrebootするかどうか試してみます。
コンソール上に「System halted.」と出ているのに玄箱本体の電源が落ちない場合は

kurobox:~# cat /etc/default/halt


で確認。

# Default behaviour of shutdown -h / halt. Set to "halt" or "poweroff".
HALT=poweroff


となっていれば

HALT=halt


と編集すればOK。

あと余談ですが、エレキジャックさんのエントリではなくコメント欄に「ブート完了したらピロリロ~♪」の小技がありました。

rc.localのexit 0の前の行に
${MICONAPL} -a bz_melody “30 b4 b5 b4 b6″
を挿入


これで工場出荷時と同じブート完了音が鳴ります。ちょっと便利かも(笑)。
別窓 | Debianで遊ぶ | コメント:0 | トラックバック:0
∧top | under∨

miconaplなどの導入(1)

前回、よくわからないまま導入したmiconaplとnvramですが、玄箱Proをまた工場出荷時に戻してじっくりと調べてみました。
少しまとめてみます。

参考にしたサイト

エレキジャックさん
オリジナルファイルのバックアップ
nvram, miconapl を使えるようにする

開発人生さん
玄箱プロにDebian



まず素人な私の頭の整理から。

・ファンコントロールや電源ボタンなどはmiconaplというコマンドらしい
・miconaplは玄箱Pro特有のコマンドらしい
・miconaplは著作権の関係で第三者が勝手に配布できない


エレキジャックさんの「nvram,miconaplを使えるようにする」を何度も読み返しました。
私のような初心者にUnix系のOSを「難しい」と感じさせる原因の一つは「ディレクトリ」の表現ではないでしょうか?
「/usr/local/sbin」「home/mtd2/sbin」などと文字で書かれると訳がわからなくなりバーチャル迷子になってしまいます。

というわけで、自分なりに図にして理解に努めました。
それと、C言語がまったくわかりませんので、他の方と違い、スクリプトを眺めても苦悶するばかりです。いろいろな方々が残してくれたサイト上の貴重な記録を片っ端から読んで、なんとか自分なりの理解まで漕ぎつけました。
Googleがあれば本当に大半は答えがみつかりますね・・。

まず、エレキジャックさんの「nvram,miconaplを使えるようにする」からのこの文章

■Debian 化で使えなくなった理由は?
 Debian 化で使えなくなった理由は、nvram も miconapl も玄箱PROに特有で Debian のパッケージがないことが、その理由です。では、フラッシュメモリやhddroofs.tar.gz内からコピーすればいいかというと、それだけではダメです。理由は必要なライブラリも用意しないといけないからです。EABI, OABI の問題は、これらのコマンドでは起きないようです。


の「理由は必要なライブラリも用意しないといけないからです」という箇所。そうか、コマンドにはライブラリという付属品が必要なのか。

ライブラリという観点で様々なサイトを調べている内に、開発人生さんの「玄箱プロにDebian」にたどり着く。読むと

現行のDebianとはちがってEABIでビルドされています(というかそのほうが普通でしょう)。だったら依存してるライブラリをコピーしてLD_LIBRARY_PATHを指定すれば動きそうです。


との一文が。「LD_LIBRARY_PATHを指定」とは、コマンドにライブラリの場所を教える、という意味だとわかり、だんだん何をするべきかが見えてきた。

エレキジャックさんと開発人生さんお二方のmiconapl導入方法をじっくりと見比べると、

必要なライブラリとPATH
ld-2.3.6.so(/usr/local/kurobox/lib)
libc.so.6(/usr/local/kurobox/lib)
libc-2.3.6.so(/usr/local/kurobox/lib)
libgcc_s.so.1(/usr/local/kurobox/lib)
libbuffalo_bin.so(/usr/local/kurobox/lib)
ld-linux.so.3(/lib)


ということがわかりました。となると、エレキジャックさんの

cd /home/mtd2/lib
 ....
ln -s /usr/local/kurobox/lib/ld-linux.so.3
cp /home/mtd2/usr/local/lib/lib* /usr/local/kurobox/lib/


が理解できないことになります。
最後のlib*は、開発人生さんによると「libbuffalo_bin.so」と特定されていますので、これで試してみます。
---------------------------------------------------------
sushi-kさんの「KURO-BOX/PRO Debian化決定版?」を終え、エレキジャックさんの「オリジナルファイルのバックアップ」を終えているとした上で以下を実行。(エレキジャックさんの「nvram, miconapl を使えるようにする」をベースにしています)

kurobox:~# mkdir /usr/local/kurobox
kurobox:~# mkdir /usr/local/kurobox/bin
kurobox:~# mkdir /usr/local/kurobox/lib
kurobox:~# cp -p /home/mtd2/lib/ld-2.3.6.so /usr/local/kurobox/lib
kurobox:~# ln -s /usr/local/kurobox/lib/ld-2.3.6.so /lib/ld-linux.so.3
kurobox:~# cd /home/mtd2/lib
kurobox:/home/mtd2/lib# cp -p libc-2.3.6.so libgcc_s.so.1 /usr/local/kurobox/lib/
kurobox:/home/mtd2/lib# ln -s libc-2.3.6.so /usr/local/kurobox/lib/libc.so.6
kurobox:/home/mtd2/lib# cp -a /home/mtd2/usr/local/lib/libbuffalo_bin.so /usr/local/kurobox/lib/
kurobox:/home/mtd2/lib# cd /home/mtd2/usr/local/sbin
kurobox:/home/mtd2/usr/local/sbin# cp -p nvram miconapl /usr/local/kurobox/bin/
*太字の箇所はエレキジャックさんのオリジナルから変更点がある箇所です*
「ln -s /usr/local/kurobox/lib/ld-linux.so.3」は意味がわからなかったので削除しました。


ここまでで、開発人生さんと同じように、LD_LIBRARY_PATH付きでコマンドを実行してみました。

kurobox:~# LD_LIBRARY_PATH=/usr/local/kurobox/lib /usr/local/kurobox/bin/miconapl -b -a temp_get
#[miconapl.temp_get]
temp=36


動きました。
てか

cd /usr/local/kurobox/bin
LD_LIBRARY_PATH=/usr/local/lurobox/lib ./miconapl -b -a temp_get

の方がスッキリしてますね・・。

まだ作業の途中ですが、ひとまずmiconapl、nvramはDebian玄箱に導入できました。
この段階の難点は、いちいちライブラリのPATHとコマンドのPATHを入力しなければならない点です。
これを解決してくれるのがエレキジャックさんの「ファンの制御と電源スイッチ」です。

ということで、次回はファンコントロールと電源ボタンの制御です。
別窓 | Debianで遊ぶ | コメント:0 | トラックバック:1
∧top | under∨
| 玄箱Pro、直します。 |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。