XBMC LiveUSB 作り方(CD、DVDドライブレス)

XBMC:動画、音楽等の再生が可能なメディアプレイヤー。LinuxベースのOSでCDドライブからのブートが可能。

これをUSBメモリからブートするための手順です。
(対象バージョンは9.11-live-repack ※repack以前では出来なかった)
手順間違えるとPC起動しなくなる恐れもあるので詳しくない方はお控えください。

1.以下XBMCサイトからLiveのisoファイルをダウンロード。
http://xbmc.org/download/

2.UNetBootinのダウンロード
http://lubi.sourceforge.net/unetbootin.html

3.USBメモリを接続。UNetBootinを起動し、Diskimageにチェックを入れ右側のボタンでファイルを選択。1で取得したXBMCLive.isoを指定。
TYPEがUSB Drive、Drive:が用意したUSBメモリのドライブである事を確認。
OKを押す。プログレスバーが100%になったらExitで終了。

以上で完了です。
マザー設定でUSBメモリからの起動を有効にして起動してください。



以下は、作成したLiveUSBをそのまま使いたい人用です。
HDD等へインストールして使う人は不要です。
(これでHDDへXBMCをインストールしたことは無いので、出来るかどうかは不明です。ご注意ください。うまくいったらコメントいただけると有りがたいです。)

今のところ Acer Aspire One では正常に動作しているみたいです。

【日本語化】
以下はLinuxに詳しくない人はお勧めしません。
1.日本語フォントを用意
作成したUSBメモリ内「dotXBMC\skin」等に日本語フォントをコピー
日本語フォントは適当なものでOK。

2.XBMCをSAFEモードで起動(該当GPUのSAFEで起動)

3.ログインし、以下のコマンドを実行(user:xbmc pass:xbmc)
sudo mount -t vfat /dev/sda1 /mnt
sudo dd if=/dev/zero of=/mnt/live-rw bs=1M count=600
sudo mkfs.ext3 -F /mnt/live-rw

4.システムのフォントを日本語フォントへ置き換え
1でコピーしたファイルが「.xbmc/skin/」にあるのでそれをコピー

sudo cp .xbmc/skin/xxx.ttf /usr/share/xbmc/media/Fonts/arial.ttf
sudo cp .xbmc/skin/xxx.ttf /usr/share/xbmc/media/Fonts/teletext.ttf

5.FONT設定をarialへ
正常に起動して、メニューからSystem→Appearance→Skin→Fonts をarialへ変更

以上です。

XBMC LiveUSB 作り方

※バージョン9.11は以下を参照ください。
http://d.hatena.ne.jp/niero/20100306/1267889422

XBMCとは。
動画、音楽等の再生が可能なメディアプレイヤーです。
(単なるプレイヤーというよりはメディアセンターといったほうが良いかもしれません)
大抵の動画フォーマットの再生が可能で結構便利です。
元々XBOX(360ではない)を改造して高性能なメディアプレイヤーとして使える様にするソフトでしたが、今ではWindows,Linux,Mac等で使用できます。その中でもLinuxベースの物はLive版が配布されており、CD/USBから直接起動することが可能です。
前置きはこの辺で。

・XBMC(9.04)がブート可能なUSBメモリの作成手順
用意する物:USBメモリ 2Gも有れば十分です(消しても良い物で)
概略:XBMCのサイトからisoファイルをダウンロード。UNetbootinを使って起動可能なUSBメモリを作成。設定を書き換え。
※操作間違えるとPCが壊れるかもしれません。自己責任でお願いします。

1.以下XBMCサイトからLiveのisoファイルをダウンロード。
http://xbmc.org/download/
2.UNetBootinのダウンロード
http://lubi.sourceforge.net/unetbootin.html
3.USBメモリを接続。UNetBootinを起動し、Diskimageにチェックを入れ右側のボタンでファイルを選択。1で取得したXBMCLive.isoを指定。
TYPEがUSB Drive、Drive:が用意したUSBメモリのドライブである事を確認。
OKを押す。プログレスバーが100%にったらExitで終了。
4.USBメモリ内のsyslinux.cfgを編集(sakuraエディター等で)
boot=cd となっている所をすべて boot=usb へ変更する。

以上で完成です。
USBメモリで起動してみてください。
(USB起動方法はPC、マザー等の説明書を参照してください)
起動直後の選択ではNVIDIA/AMD/Intelの中からお使いのPCに搭載されているGPUにあわせたものを選択してください。

・日本語化
概略:適当な日本語フォントを用意。arial.ttfというファイル名でUSBメモリへ。フォントを差し替えるスクリプトを作成し、XBMC起動時に実行させる。
※上記で作成したUSBメモリを一度起動しておく事。

1.適当な日本語フォントを用意。arial.ttfというファイル名でUSBメモリへ。dotXBMC\skin へコピーしておく。
2.restart.pyというファイルを作成。
以下ファイル内容。(スペースはタブに置き換えてください)

import os
import xbmc
f = open( '/home/xbmc/tmp.txt', 'r+' )
s = f.readline()
if s != '1':
os.system('sudo cp /.bootMedia/dotXBMC/skin/arial.ttf /usr/share/xbmc/media/Fonts/arial.ttf')
xbmc.executebuiltin('XBMC.RestartApp()')
f.write( '1' )
f.close()

3.autoexec.pyというファイルを作成
以下ファイル内容。

xbmc.executescript('/.bootMedia/dotXBMC/scripts/restartapp.py')

4.restart.py、autoexec.pyをdotXBMC\scriptsへコピー

5.XBMC起動後、setting→UserInterface→Look&Feel→FontをDefaultからArialへ変更

以上で完成です。UIも日本語に出来ます。XBMCで設定してください。

かなり無理矢理日本語化しています。もっと良い方法があれば教えてください。イメージファイル直接編集できればもっと楽なんだけどなぁ・・・

pythonは始めて触りました。いまいちな内容ですが、ご指摘くださればうれしいです。

間違いに気がつくタイミング

 ソフトウェア開発には常に問題が発生しています。要求されている機能を勘違いしたり、間違った設計を行ってしまったり、誤ってプログラムを記述してしまったり。
 様々な工程で様々な問題が発生し、開発者は問題に気がついた時点で問題を修正し、対応することになります。
 問題はなるべく早く発見し、修正することが理想です。発見が遅れれば遅れるほど修正の影響範囲は広くなります。例えば誤った設計を元にプログラムを記述した場合、間違いに気がつくまでに記述したプログラムは無駄な作業になってしまうかもしれません。
 開発者は極力上流工程で問題を発見しようとします。しかしながら現実には上流工程で問題を発見できず、後々手戻りが発生することが多々あるのではないでしょうか?
 そもそも問題はどの様に発見できるのでしょうか?
 私は次のように考えています。
 ・問題は仕様や考えを具体化したときに発見可能となる。
 ・具体化した物を検証したときに間違いに気がつく。
 (異論もあるでしょうが、私は上記のように思います)
 まず、ここで言う具体化とはどういう事か?
 例えば大まかな機能の区分を考え、これをクラス図で記述したとします。(記述した箇所を具体化されたという事にします)次に、クラス図に記述したことで「依存関係や適切な機能に分けられているか?」を視覚的に検証することが出来ます。
 この様に、考えや仕様を具体的に記述し、検証する事で問題を発見することが出来ます。
 又、逆に記述しなかった物の間違いは、発見することは出来無いと言うことです。
 例えば、省略したメソッド等があった場合、これに問題があったとしても気がつくことは出来ません。この間違いの影響範囲が大きなものであった場合、後々大きく手戻りすることになるでしょう。(設計時に省略したなら、おそらくコーディングをした時点で具体化、検証され、間違いに気が付き、そこから手戻りするのではないでしょうか?)

 対策としては以下のように考えています。
 ・上流工程でなるべく具体的に詳細まで考える
  これは、下流工程としていた作業を上流工程に組み入れているだけですので、問題の解決にはなっていないのかもしれません。
  又、クラス図等に記述せずとも想像力をもって具体化し、検証することで、作業効率を上げることが出来るかもしれません。(各人もっと詳細に考える習慣をつける)
 ・間違いに気が付けない物と割り切り、対策を考える
  スパイラルモデルやアジャイル開発等のように、開発工程として対策を組み入れ、対応していく事が良いのかもしれません。

 私自身、まだこれらの問題を解決できていません。
 まだまだ考える余地が有ると思います。

ソフトウェア開発からの属人性の排除について

 ソフトウェア開発から属人性を排除することで、ソフトウェアの品質と開発効率を向上する。等いろいろ言う方はいます。やりたいことは分かるけど可能なのだろうか?
 ソフトウェア開発では、(理想的には)同じものを2度作る必要はありません。同じものを使うのであれば、先に作ったものからコピーするだけで作業を済ませることが可能だからです。従ってソフトウェア開発者が作成する物は、常に新しい物を作成する事となります。
 新しいものを作成する作業から属人性を排除することは可能なのでしょうか?

 まあ、実際の現場では同じようなものを2度3度作りますし、似たようなことを何度もやります。ただ、これについては「再利用性の高いモジュールや仕様をいかに作るか?」を考えることが重要だと考えています。属人性の排除などというあいまいな言葉を使うべきではありません。
 ソフトウェア開発と一言で言っても、作るソフトウェアによっても大きく異なるだろうし、又、一つ一つの工程についても異なることでしょう。すべての状況で属人性の排除が不可能だとは思いませんが、出来ない工程は必ず有る様に思います。