<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>短期記憶容量少ナキ我ガ爲ノ備忘録也</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/" />
    <link rel="self" type="application/atom+xml" href="http://microgroove.jp/shaolin/atom.xml" />
    <id>tag:microgroove.jp,2010-03-17:/shaolin//3</id>
    <updated>2011-11-03T12:25:30Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.23-en</generator>

<entry>
    <title>Storing VM disk image files on a sparse bundle</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2011/10/storing_vm_disk_image_files_on_a_sparse_bundle.html" />
    <id>tag:microgroove.jp,2011:/shaolin//3.1028</id>

    <published>2011-10-11T07:12:00Z</published>
    <updated>2011-11-03T12:25:30Z</updated>

    <summary> VirtualBox などで使用する、仮想マシン用のディスクイメージ。これを効率的にバックアップするのには少しコツが要ります。既に広く知られているとは思いますが、個人的メモも兼ねて書いておきます。...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="MAC" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VINE" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mac" label="Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="osx" label="OSX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sparcebundle" label="Sparce Bundle" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="virtualbox" label="VirtualBox" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
<a href="http://www.virtualbox.org/" target="_blank">VirtualBox</a> などで使用する、仮想マシン用のディスクイメージ。これを効率的にバックアップするのには少しコツが要ります。既に広く知られているとは思いますが、個人的メモも兼ねて書いておきます。
</p>]]>
        <![CDATA[<p lang="ja">
ホストOSが Mac OS X (Leopard 以降) の場合、
<a href="http://www.apple.com/jp/macosx/apps/#timemachine" target="_blank">Time Machine</a>
を使ってバックアップを取ることが多いと思いますが、
その OS X 上で VirtualBox や VMWare といった仮想化ソフトウェアを使用する場合、仮想マシン用のディスクイメージは単一ファイルであり、ゲストOS上でファイルを1つ修正したとしても、ホストOS側からみると大きなディスクイメージ1つに変更が加えられた、と判断されます。
</p>

<p lang="ja">
そのため Time Machine によるバックアップも、（仮想化ソフトウェアでゲストOSを全く使用していない時を除き）毎回数GB〜数10GB単位で行われることになり、あっという間にバックアップ領域がいっぱいになってしまいます。
</p>

<p lang="ja">
そこで、仮想マシン用のディスクイメージが保存されているディレクトリ、VirtualBox の場合は「<code><strong>~/VirtualBox VMs</strong></code>」を、Time Machine のバックアップ除外リストに指定し、これらディスクイメージを別途バックアップする、いう使い方をされている方も少なくないでしょう。
</p>

<br />

<div style="text-align: center;">
<img alt="[Time Machine Exclude Paths]" src="http://microgroove.jp/shaolin/img/TimeMachine_Exclude_Paths.png" />
</div>

<br />

<p lang="ja">
あるいは、ゲストOS上で直接、古式ゆかしき <code><strong>dump</strong></code>、あるいは <code><strong>rsync</strong></code> や　<code><strong>pdumpfs</strong></code> などを使って、バックアップを取るという方法を取られている方もいるでしょう。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
OS X (Leopard) 以降では、<a href="http://en.wikipedia.org/wiki/Sparse_image#Sparse_bundle" target="_blank">スパースバンドルディスクイメージ</a> (Sparse Bundle Disk Image) がサポートされています。これは、従来の単一ファイルのディスクイメージではなく、OS X Finder 上でディスクイメージのように見えているものはバンドル（ディレクトリ）で、その中には 8MB ごとに分割されたフラグメントが収められています。このディスクイメージをマウントし、その中にファイルを追加したり削除したり変更を加えたりすると、8MB 単位で分割されたフラグメント単位で増えたり減ったり修正が加わったりするわけです。
</p>

<ul lang="en">
<li><a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/hdiutil.1.html" target="_blank">Mac OS X Developer Library: hdiutil (1) man page</a>
</ul>

<p lang="ja">
なので、このスパースバンドルディスク上に、仮想マシン用のディスクイメージを保存しておけば、Time Machine によるバックアップでも効率よくバックアップできる、ということになります。とはいっても、ゲストOSを起動するだけで、結構な差分量が生じるようですが。。。それでも通常の Time Machine バックアップよりはましになるのでよしとしましょう。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
現在 OS X 上で VirtualBox を使っているとして、仮想マシンのディスクイメージをスパースバンドルディスクに移行するおおまかな手順は以下の通りです。
</p>

<ol lang="ja">
<li>VirtualBox のすべてのゲスト OS を終了しておく
<li>OS X 上でディスクユーティリティを起動、「新規イメージ」をクリックする
</ol>

<br />

<div style="text-align: center;">
<img alt="[Disk Utility - New Image - Sparse Bundle]" src="http://microgroove.jp/shaolin/img/DiskUtility_NewImage_SparseBundle.png" />
</div>

<br />

<ol start="3" lang="ja">
<li>作成したスパースバンドルイメージをマウントし、そこに <code>~/VirtualBox VMs/</code> の中のフォルダをすべてコピーする
<li><code>~/VirtualBox VMs</code> をリネームするなり、削除する
<li>ターミナルを使い、<strong>シンボリックリンク</strong> を作成する
<br />
（このとき OS X Finder 上でのエイリアス作成ではだめです。VirtualBox はエイリアスを解釈してくれません。かならずシンボリックリンクにする必要があります）
</ol>

<br />

<div style="text-align: center;">
<img alt="[Symlinking VM directory]" src="http://microgroove.jp/shaolin/img/SymLink_VM_Directory.png" />
</div>

<br />

<ol start="6" lang="ja">
<li>「システム環境設定」→「ユーザとグループ」→「ログイン項目」で、上で作ったスパースバンドルディスクイメージを選び、システム起動時にディスクイメージがマウントされるようにしておく
</ol>

<br />

<div style="text-align: center;">
<img alt="[Startup Items on Login]" src="http://microgroove.jp/shaolin/img/StartupItemsOnLogin.png" />
</div>

<br />
<hr width="80%" />
<br />

<p lang="ja">
と、まあ、いまのところは、こんな感じで使っています。Time Machine であれ、rsync であれ、これで毎回のバックアップで無駄に差分が生じることはなくなるはずです。
</p>

<p lang="ja">
この MacBook Air でも、じきに OS X の VirtualBox 上で Vine を常用する形態から、直接 Vine を起動して常用することになっていくとは思いますが、とりあえずいまはこんな感じで。。。
</p>]]>
    </content>
</entry>

<entry>
    <title>Apple Products I Ever Bought</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2011/10/apple_products_i_ever_bought.html" />
    <id>tag:microgroove.jp,2011:/shaolin//3.1027</id>

    <published>2011-10-07T02:15:00Z</published>
    <updated>2011-11-07T05:49:17Z</updated>

    <summary> 今までに買ってきた/所有してきた Apple 製品を思い出してみた。ただなんとなく。 故 Jobs 氏への強い思い入れは不思議とほとんどなかったのかな、 と改めて思いました。 むしろ Bill Atkinson さん、故 Jeff Raskin さん、 Andy Hertzfeld さん、Joanna Hoffman さん、といった、 エンジニアな方々への興味の方が強かったのかな、と。...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="MAC" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VINE" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apple" label="Apple" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iphone" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macbook" label="MacBook" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macintosh" label="Macintosh" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="powermac" label="Power Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="powerbook" label="PowerBook" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vinelinux" label="Vine Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
今までに買ってきた/所有してきた Apple 製品を思い出してみた。ただなんとなく。
</p>

<p lang="ja">
故 Jobs 氏への強い思い入れは不思議とほとんどなかったのかな、
と改めて思いました。
むしろ Bill Atkinson さん、故 Jeff Raskin さん、
Andy Hertzfeld さん、Joanna Hoffman さん、といった、
エンジニアな方々への興味の方が強かったのかな、と。
</p>
]]>
        <![CDATA[
<br />
<hr width="80%" />
<br />

<h3>1990: Macintosh SE (HDFD, 2MB RAM, 20MB HDD)</h3>
<p lang="ja">大学生協で買ったこれが自分で所有した最初。はじめて触ったのは 1988年頃の Plus だったかな。1983年、当時定期購読していた科学雑誌ウータンに Lisa の特集記事が載っていたのも懐かしい。不思議と Apple II との接点はあまりありませんでした。</p>
<p lang="ja">最終的には外付 SCSI 100MB HDD をつけたり、メモリを 4MB に増設したりしながら、漢字Talk 6.0.7〜GomTalk〜漢字Talk7.0.1までなんとか使ったんやったかな。</p>
<p lang="ja">当時好んで使っていたキーボードは今でも大事に持っていますが、ADB接続なので使えません。。。</p>
<br />
<div style="text-align: center;">
<a href="http://instagr.am/p/NsLvq/" target="_blank"><img class="link" alt="[Apple ADB Keyboard]" width="306" height="306" src="http://distillery.s3.amazonaws.com/media/2011/09/20/78367f07ae2746fb9ef4487b5a10fad1_6.jpg" /></a>
</div>
<br />

<br />
<hr width="80%" />
<br />

<h3>1990: ImageWriter II</h3>
<p lang="ja">本体と一緒に買ったドットインパクトプリンタ。これでよく印刷してプログラミングのレポートとか提出した記憶がある。しかも Pascal のソースコードを Los Angeles フォントで印刷とかアホなことをしていた記憶が。のちに白黒の HP DeskWriter を買うまでは大変お世話になりました。</p>

<br />
<hr width="80%" />
<br />

<h3>1992: Macintosh IIci + Apple Portrait Display</h3>
<p lang="ja">バイトしまくって買った。4MBメモリ、80MB HDD くらいだった記憶。縦長のブラウン管ディスプレイと一緒に。縦に広いとこんなにも楽なんだというのを実感した最初。そのバイト先では IIcx や PowerBook 140 などもあって、頻繁に使った記憶。</p>

<br />
<hr width="80%" />
<br />

<h3>1994: Macintosh Quadra 800</h3>
<p lang="ja">またまたバイトしまくって買った。スペックは覚えてないけど、のちに PowerPC Upgrade Card を挿して延命した。この私物を当時いた大学の研究室に持ち込み、10Base-2 経由でインターネットに接続していた。今であれば、一瞬でセキュリティ担当がすっ飛んできてこっぴどく叱られるであろう、のどかな時代。</p>

<br />
<hr width="80%" />
<br />

<h3>1995: Power Macintosh 8500/120</h3>
<p lang="ja">最初の就職先で使用。後半は web サーバとして使用されていた記憶。のちに Vine Linux for PowerMac 開発マシンとなる。</p>

<br />
<hr width="80%" />
<br />

<h3>1996: Motrola StarMax 4000/200</h3>
<p lang="ja">唯一買った互換機。アメリカから並行輸入。PowerMac 4400 と同等のマザーボードだったと思いますが、ADB 以外に PS/2 コネクタも装備していたのが互換機っぽかった記憶。</p>
<br />
<div style="text-align: center;">
<img alt="[Motorola StarMax 4000/200]" width="300" height="400" src="http://microgroove.jp/shaolin/img/19970604_BigBird.jpg" />
</div>
<br />

<br />
<hr width="80%" />
<br />

<h3>1996: PowerBook 5300cs</h3>
<p lang="ja">職場で使用。あまり記憶にない。</p>
<br />
<div style="text-align: center;">
<img alt="[Apple PowerBook 5300cs]" width="400" height="300" src="http://microgroove.jp/shaolin/img/19970621_Ernie.jpg" />
</div>
<br />

<br />
<hr width="80%" />
<br />

<h3>1997: Power Macintosh G3 MT</h3>
<p lang="ja">職場で使用。のちにこれが最初の Vine Linux for PowerMac 開発マシンとなる。</p>

<br />
<hr width="80%" />
<br />

<h3>1999: Power Macintosh G4 AGP Graphics 400MHz</h3>
<p lang="ja">自宅で使用。</p>

<br />
<hr width="80%" />
<br />

<h3>PowerBook 2400c/240</h3>
<p lang="ja">職場で使用。同室の助手の方が置いていったもの。これも最後は Vine マシンになった。</p>

<br />
<hr width="80%" />
<br />

<h3>2000: iMac G3 DV (Slot-Loading)</h3>
<p lang="ja">自宅で妻が使用。たしか Apple Store でリファービッシュ品（整備済製品）として買ったんだったかな。ストロベリー色の iMac。これものちに Vine 開発機として大活躍しました。このマシン自体を持って行き、Linux のイベントで発表したこともありました（iMac をプロジェクタにつないで発表。。。）</p>

<br />
<hr width="80%" />
<br />

<h3>2001: PowerBook G4 Titanium 400MHz</h3>
<p lang="ja">転職した直後に秋葉館で購入した記憶。OS X 10.1 はインストールはされたもののほとんど使われることもなく、Vine マシンとして 2008年まで酷使し続けました。</p>

<br />
<hr width="80%" />
<br />

<h3>2001: Power Mac 7600/200</h3>
<p lang="ja">OldWorld Mac が家からなくなっていたので、秋葉原で中古を購入、Vine のテスト機として机の下で待機していました。</p>
<br />
<div style="text-align: center;">
<img alt="[Apple Power Mac 7600/200]" width="480" height="320" src="http://microgroove.jp/shaolin/img/20011128_140821_DCP_0159.jpg" />
</div>
<br />

<br />
<hr width="80%" />
<br />

<h3>2002: iMac G4 Flat Panel (Jan 2002)</h3>
<p lang="ja">某所の某氏より無償で貸していただいていたもの。長らく Vine サブ開発マシンとして活躍してくれました。鏡餅が懐かしい。</p>

<br />
<hr width="80%" />
<br />

<h3>2004: Power Mac G4 Dual (Mirrored Drive Doors)</h3>
<p lang="ja">耳をつんざかんばかりの轟音と共に、Vine 開発マシンとしてつい先日まで活躍してくれました。OS X は見事に一切使われませんでした。</p>
<br />
<div style="text-align: center;">
<img alt="[Power Mac G4 Dual (Mirrored Drive Doors)]" width="400" height="267" src="http://microgroove.jp/shaolin/img/20040527_000541_DCP_1052.jpg" />
</div>
<br />

<br />
<hr width="80%" />
<br />

<h3>2006: Power Mac G3 (Blue &amp; White)</h3>
<p lang="ja">スキャナマシンとして使っていた G4 AGP が故障した際、某氏が提供してくれたマシン。ありがとうございました。</p>
<br />
<div style="text-align: center;">
<img alt="[Apple Power Mac G3 (Blue &amp; White)]" width="300" height="225" src="http://microgroove.jp/shaolin/img/IMG_1980.jpg" />
</div>
<br />

<br />
<hr width="80%" />
<br />

<h3>2008: MacBook (Early 2008)</h3>
<p lang="ja">PowerBook G4 Titanium がぶっ壊れたのでやむなく購入。やはりほとんど Vine 開発マシンとして日々使われました。</p>
<br />
<div style="text-align: center;">
<img alt="[Apple MacBook (Early 2008)]" width="480" height="320" src="http://microgroove.jp/shaolin/img/20111007_105657_DSC0312.jpg" />
</div>
<br />

<br />
<hr width="80%" />
<br />

<h3>2010: PowerBook G3 (FireWire)</h3>
<p lang="ja">某氏からタダで譲って頂いたもの（ありがとうございます）。基本的に Vine のテスト用。既に iMac G3 だの iMac G4 だのは家になく、OS 9 が動く古いマシンで Linux テストするためにあると便利なので。。。</p>

<br />
<hr width="80%" />
<br />

<h3>2010: iPhone4</h3>
<p lang="ja">私にとっては、CD ウォークマン以来、初めての携帯ディジタル音楽プレーヤー、という点が一番大きかったかも。なにせ音楽メインソースはいまだにレコードでしたから。。。家の音楽CDのリッピングはいまだに終わっていません。。。まだあと数百枚。。。</p>

<br />
<hr width="80%" />
<br />

<h3>2011: MacBook Air 11-inch Core i7 (Middle 2011)</h3>
<p lang="ja">現在も VirtualBox 上で Vine を使うのがメイン。</p>
<p lang="ja">MacBook White (Early 2008) は現在妻がメインマシンとして使用中。</p>
<br />
<div style="text-align: center;">
<a href="http://instagr.am/p/J74AO/" target="_blank"><img class="link" alt="[MacBook Air Mid 2011 11-inch]" width="306" height="306" src="http://distillery.s3.amazonaws.com/media/2011/08/11/b3198d2f6ccf42099dafe7cf4644aa56_6.jpg" /></a>
</div>
<br />

<br />
<hr width="80%" />
<br />

<h3>2011: Power Mac G5 2.0GHz DP (June 2004)</h3>
<p lang="ja">G4 MDD がついに壊れたので中古で購入。いまさら Vine/ppc64 を開発。。。することは今のところなく、普通に iTunes 母艦＆スキャナマシンとして使われています。</p>
<br />
<div style="text-align: center;">
<a href="http://instagr.am/p/NlFJl/" target="_blank"><img class="link" alt="[Apple Power Mac G5 2.0GHz DP (June 2004)]" width="306" height="306" src="http://distillery.s3.amazonaws.com/media/2011/09/19/dcb02e24a26e47ad99d51f064b87f10a_6.jpg" /></a>
</div>
<br />]]>
    </content>
</entry>

<entry>
    <title>Installing Vine Linux on MacBook Air (Middle 2011)</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2011/08/installing_vine_linux_on_macbook_air_middle_2011.html" />
    <id>tag:microgroove.jp,2011:/shaolin//3.1024</id>

    <published>2011-08-16T06:36:30Z</published>
    <updated>2011-09-16T00:48:49Z</updated>

    <summary> 要約: 日常的に Vine マシンとして使っている MacBook Early 2008 の後釜として、MacBook Air Middle 2011 を購入。現時点で Vine が MBA 上でどの程度動くか動かないか、とりあえず現状を確認しました。で、安定するまで当分は OS X 上の VirtualBox に Vine 環境を移そうか、と考えています。 Bought a MacBook Air (Middle 2011) - 11inch, US Keyboard, 4GB Memory, 128GB SSD and Core...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="MAC" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VINE" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="macbook" label="MacBook" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macbookair" label="MacBook Air" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="middle2011" label="Middle 2011" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vinelinux" label="Vine Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="virtualbox" label="VirtualBox" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja" style="font-style: italic;">
要約:
<br />
日常的に Vine マシンとして使っている MacBook Early 2008 の後釜として、MacBook Air Middle 2011 を購入。現時点で Vine が MBA 上でどの程度動くか動かないか、とりあえず現状を確認しました。で、安定するまで当分は OS X 上の VirtualBox に Vine 環境を移そうか、と考えています。
</p>

<br />
<hr width="80%" />
<br />

<p lang="en">
Bought a <strong>MacBook Air (Middle 2011)</strong>
 - 11inch, US Keyboard, 4GB Memory, 128GB SSD and Core i7 -
to replace my MacBook (Early 2008) that has served me very hard
as a Vine Linux development environment as a daily basis for a few years.
</p>

<br />

<div style="text-align: center;" lang="en">
<a href="http://instagr.am/p/J74AO/" target="_blank"><img class="link" alt="[MacBook Air Mid 2011 11-inch]" width="306" height="306" src="http://distillery.s3.amazonaws.com/media/2011/08/11/b3198d2f6ccf42099dafe7cf4644aa56_6.jpg" /></a>
</div>

<br />

<p lang="en">
To be honest,
I always have used my whity MacBook with Vine - Mac OS X is always there
on the harddrive in a separated partition, but I seldom booted it up on my
MacBook - maybe once or twice a year? Another OSX machine at home,
an old PowerMac G4 MDD, is still there and serving me as a daily basis as well,
to store my huge digital music contents (almost all in lossless format) on iTunes
(still hundreds of CDs left to get ripped though), 
and as a scanning machine (connected to the old SCSI A3 flatbed scanner).
</p>

<p lang="en">
The first thing I did on my new toy was to play around the new OS for a while
that amazed me a bit. This was the first time for me to play with the 
multi-touch trackpad and gestures. I felt Gestures and "Mission Control" are
really great for portable computers with small screens like this MBA 11inch.
</p>

<p lang="en">
And the next thing I gonna do was, of course, to figure out how well
this brand new machine is supported on Linux - I know there are so much
to get done on the Linux kernel, the X thing, and some userland utilities,
to run Linux on the MBA 2011 flawlessly, but I just thought it was worth
checking out and playing around.
</p>

<br />

<div style="text-align: center;" lang="en">
<img class="link" alt="[MacBook Air Mid 2011 11-inch vs MacBook Early 2008]" width="450" height="300" src="http://microgroove.jp/shaolin/img/MBA2011_vs_MB2008.jpg" />
</div>

<br />]]>
        <![CDATA[<hr width="80%" />
<br />

<h4 lang="en">Create Lion Recovery On Your USB Flash Drive</h4>

<p lang="en">
So you are going to try installing Vine Linux on your MacBook Air (Middle 2011) which doesn't come with any recovery media. Of course, if you have a wireless connection to the Internet, you will be able to restore OS X Lion through the net, without any install media. This is called &ldquo;<a href="http://www.apple.com/macosx/recovery/" target="_blank"><strong>Internet Recovery</strong></a>&rdquo;, built into newer Macs starting with Mac Mini (Middle 2011) and MacBook Air (Middle 2011).
</p>

<br />

<div style="text-align: center;" lang="en">
<img class="link" alt="[OS X Lion Internet Revoery]" width="470" height="351" src="http://microgroove.jp/shaolin/img/OSX_Lion_InternetRecovery.jpg" />
</div>

<br />

<p lang="en">
But you should be fully prepared - &ldquo;<strong>Providing is preventing</strong>&rdquo; - you would be happier to have the physical recovery medium, an USB flash drive, that contains OS X Lion Recovery, before facing some accidental issues.
</p>

<p lang="en">
All you need is an USB flash drive and <a href="http://support.apple.com/kb/DL1433" target="_blank"><strong>Lion Recovery Disk Assistant</strong></a>. Create the USB flash drive recovery media before installing Linux for safety.
</p>

<p lang="en">
In case you already build up your own environment on OS X Lion, you would better back up your whole system with <strong>Time Machine</strong> - this will simplify the process of restoring your entire OS X environment onto the specific partition of your harddrive.
</p>

<br />
<hr width="80%" />
<br />

<h4 lang="en">Boot up the Linux Installer, partition the drive, then install</h4>

<p lang="en">
Now you are nearly ready. Prepare another USB flash drive and make the USB install medium. If you already have Linux machines, connect the flash drive to the machine, identify the device name (such as <code>/dev/sdb</code>) very carefully, then just do this:
</p>

<blockquote lang="en">
<pre>
$ sudo dd if=Vine60-x86_64-DVD.iso of=/dev/sdb
</pre>
</blockquote>

<blockquote lang="en">
<pre>
(or alternatively)
$ sudo sh -c 'cat Vine60-x86_64-DVD.iso > /dev/sdb'
</pre>
</blockquote>

<p lang="en">
Similarly you can create the USB install medium on Windows machines, using <a href="http://www.si-linux.co.jp/wiki/silinux/index.php?DDforWindows" target="_blank">DDforWindows</a> or <a href="https://launchpad.net/win32-image-writer/" target="_blank">Image Writer for Windows</a>.
</p>

<br />

<p lang="en">
<strong style="color: #ff6666;">CAUTION, PLEASE NOTE: </strong>
Unfortunately a nasty bug is found on Vine Linux 6.0 x86_64 edition, that will cause some issues, when trying to install onto the <strong>harddrives with GPT partition table</strong>. The bug is already fixed (among the Vine developers) and will be released as a part of future releases of Vine Linux. 32bit edition does not suffer from this issue. You would install the 32bit edition instead, or wait for the minor fix version of the x86_64 edition.
</p>

<br />

<p lang="en">
Shut down your MacBook Air, plug the USB flash drive, hold the <code>option</code> key while pressing the power button, then you will see the boot selector named &ldquo;<a href="http://support.apple.com/kb/ht1310" target="_blank"><strong>Startup Manager</strong></a>&rdquo; that is built in Intel Macs. Select the USB flash drive and press return, and the initial screen of Vine Linux Installer would appear.
</p>

<br />

<div style="text-align: center;" lang="en">
<img class="link" alt="[Intel Mac Startup Manager]" width="400" height="300" src="http://microgroove.jp/shaolin/img/IntelMac_StartupManager.jpg" />
</div>

<br />

<p lang="en">
<strong>Be sure to select NOFB MODE</strong> before proceeding - otherwise your MBA will black out and will &ldquo;hard freeze&rdquo;. The KMS (Kernel-based Mode Setting), Intel Framebuffer driver and Xorg driver on Vine Linux 6.0 (even on breeding-edge Linux kernel and Xorg as of today) is <strong>NOT</strong> compatible with the 2011 MBA hardware yet.
</p>

<br />

<div style="text-align: center;" lang="en">
<img class="link" alt="[Vine Linux 6.0 Installer Options]" width="450" height="314" src="http://microgroove.jp/shaolin/img/Vine60_Installer_Options.jpg" />
</div>

<br />

<p lang="en">
Then the Vine Installer starts. As my MBA is brand new and I already have Recovery USB flash drive, so I don't hesitate to erase all the partition on the MBA SSD. If you already have your own OSX Lion environment, you would back up your whole OSX system with Time Machine as noted far above.
</p>

<p lang="en">
The only thing you should keep in mind is, place the Linux partitions first, then the OS X partition. This is a limitation of the GRUB bootloader (unless you use newer GRUB2 bootloader), as it only sees the MBR partition tables which can hold up to four partitions. OS X on Intel Macs, on the other hand, relies on the GPT (GUID Partition Table) that can hold more partitions. As long as you use the GRUB bootloader, Linux partitions (especially the <code>/</code> partition or <code>/boot</code> partition which holds Linux kernels and initrds) must be either of first four partition.
</p>

<p lang="en">
My case - I know MBA 2011 is not fully supported on Linux yet (and hopefully several months needed to get fully supported), so I decided the Vine Linux directly on MBA 2011 was just for testing purpose. 10GB for <code>/</code>, 2GB for <code>swap</code>, the rest (approximately 107GB) kept free to reinstall OS X later.
</p>

<p lang="en">
Did a few settings (selecting languages, keyboards, timezone and a few more) in the Vine Installer, then finally the installation process starts. As the MBA comes with a SSD harddrive, package installation itself is faster than you could imagine - just a few minutes - not long enough to grind coffee beans and drip brew. You would try instant coffee when installing Linux on machines with SSD.
</p>

<br />

<p lang="en">
Okay, you finished installing Vine Linux. But you need a few more to do. Otherwise the Linux system you just installed won't boot.
</p>

<br />
<hr width="80%" />
<br />

<h4 lang="en">Reinstall OS X (or Restore your OS X system from Time Machine)</h4>

<p lang="en">
Next, you need to reinstall OS X. Boot from the Restore USB flash drive, open Disk Utility, and create the HFS+ partition while keeping the Linux partitions intact. Then proceed restoring OS X. Alternatively you may restore your OS X system from the Time Machine backup onto the HFS+ partition you just created.
</p>

<br />

<div style="text-align: center;" lang="en">
<img class="link" alt="[Lion Recovery: Mac OS X Utilities]" width="386" height="295" src="http://microgroove.jp/shaolin/img/LionRecovery_MacOSXUtilities.png" />
</div>

<br />
<hr width="80%" />
<br />

<h4 lang="en">Install rEFIt</h4>

<p lang="en">
You are just one step away from the completion. Boot up the OS X you just reinstalled/resotred, grab <a href="http://refit.sourceforge.net/" target="_blank"><strong><strong>rEFIt</strong></strong></a>, then install.
</p>

<p lang="en">
Then open the Terminal, and type the following command.
</p>

<blockquote lang="en">
<pre>
$ cd /efi/refit
$ sudo ./enable.sh
</pre>
</blockquote>

<p lang="en">
Okay, now you are almost done. Reboot your MBA. If you did everything correctly, you will see the rEFIt boot selector.
</p>

<br />

<div style="text-align: center;" lang="en">
<img class="link" alt="[rEFIt OS Selector]" width="350" height="288" src="http://microgroove.jp/shaolin/img/rEFIt_Selector.jpg" />
</div>

<br />

<p lang="en">
But don't rush - you have <strong>one more thing</strong> left to do - syncronize GPT and MBR tables. On the rEFIt screen, use arrow key to select &ldquo;<strong>Partitioning Tool</strong>&rdquo; (<code>gptsync</code>) then press return. Press Y to syncronize the GPT/MBR partition tables. Then shut down your MBA once for safety.
</p>

<p lang="en">
Then you'll be able to boot into the Vine Linux, finally.
</p>

<br />
<hr width="80%" />
<br />

<h4 lang="en">Current Status: Vine Linux 6.0 / VineSeed on MBA 2011</h4>

<p lang="en">
Unfortunately, as I already noted far above, there are still so many things
to get done on the Linux kernel, the X thing, and some userland utilities,
to run Linux on the MBA 2011 flawlessly. You will see many restrictions on
Linux (not only Vine but also many other distros) on MBA 2011,
at least <strong style="color: #ff6666;">AS OF AUG. 16, 2011</strong>.
</p>

<p lang="en">
Vine Linux 6.0 doesn't fully support MBA 2011, while VineSeed (development version of Vine Linux) gradually supports MBA 2011 features - see the updates below.
</p>

<br />

<p lang="en">
(1) (Vine Linux 6) You'll need to add <code><strong>nomodeset</strong></code> to the grub.conf. Otherwise your MBA will hard-freeze during bootup.
<br />
<strong style="color: #ff6666;">UPDATE: (SEP. 6, 2011): </strong>
most recent VineSeed (kernel-3.0.4-1vl7) doesn't hard-freeze w/o <code>nomodeset</code>. However, you need Apple Mini DisplayPort (ThunderBolt) / DVI (or HDMI) Adapter to get the screen. Without <code>nomodeset</code>, the screen will only appears on the external display (built-in LCD will get blank).
<br />
<strong style="color: #ff6666;">UPDATE: (SEP. 16, 2011): </strong>
most recent VineSeed (kernel-3.0.4-2vl7) finally supports 1366x768 resolution on the built-in LCD. Now no need to add <code>nomodeset</code> to the grub.conf.
</p>

<br />

<p lang="en">
(2) (Vine Linux 6) <strong>X</strong> still can't do 1366x768. 1024x768 at most, strangely stretched wide.
<br />
<strong style="color: #ff6666;">UPDATE: (SEP. 6, 2011): </strong>
with recent kernel and without <code>nomodeset</code> described above,
you get normal 1024x768 on the external display. Intel HD Graphics can do
3D accelaration (w/ xorg-x11-drv-intel-2.16.0-2vl7) and compatible with
GNOME Shell.
<br />
<strong style="color: #ff6666;">UPDATE: (SEP. 16, 2011): </strong>
with recent kernel (3.0.4-2vl7) and without <code>nomodeset</code>
described above, you finally get 1366x768 on the built-in LCD display,
featuring 3D acceleration with GNOME Shell.
</p>

<br />

<p lang="en">
(3) <strong>Wireless network</strong> works out of the box - with <code>kernel-module-compat-wireless</code> package installed (on Vine6), or with kernel-3.0.1 (VineSeed).
</p>

<br />

<p lang="en">
(4) <strong>Sound output</strong> is initially muted, so you need the following tasks:
</p>

<ul lang="en">
<li>Execute <code><strong>alsamixer</strong></code>.</li>
<li>Press the <code>F6</code> key, and unmute the &ldquo;Surround&rdquo; or the likes. Press <code>ESC</code> to exit.</li>
<li>Execute <code><strong>sudo alsactl store</strong></code> to save the setting.</li>
</ul>

<div style="text-align: center;" lang="en">
<img class="link" alt="[alsamixer on MBA2011]" width="400" height="293" src="http://microgroove.jp/shaolin/img/alsamixer_MBA2011.png" />
</div>

<br />

<p lang="en">
(5) <strong>FaceTime Camera</strong> is properly recognized by Linux kernel with <code>uvcvideo</code>.
</p>

<br />

<p lang="en">
(6) <strong>Special keys</strong>, such as LCD backlight control (F1/F2), keyboard backlight control (F5/F6), sound mute/volume control (F10/F11/F12) does not work at all. The <code><strong>pommed</strong></code> will treat them like a charm on old MacBooks and MacBook Pros (or even some PowerBooks and iBooks), but unfortunately the pommed is not compatible with the new MacBook Air (Mid 2011) yet.
</p>

<br />

<p lang="en">
(7) As this is a Mac, there is no middle-click and right-click - you'll need to enable mouse button emulation to handle this. There are two ways to accomplish the mouse button emulation - one is sysctl way and and the other is Xmodmap way. Please search over the Internet as there are plenty of pages on this.
</p>

<br />

<p lang="en">
(8) <strong style="color: #ff6666;">UPDATE: (SEP. 16, 2011): </strong>
at least with most recent kernel (3.0.4-2vl7) on VineSeed, suspend/resume
works flawlessly on my MBA Mid2011 11-inch.
</p>

<br />
<hr width="80%" />
<br />

<h4 lang="en">Installing Vine on VirtualBox Instead</h4>

<p lang="en">
So the status of Vine Linux 6.0 on MBA 2011 for desktop purpose is still far from flawless (although there's a notable progress going on with the development version, VineSeed, as described above). But I have my old MacBook 2008 that runs VineSeed rock solid, and I have spent my daily computer life on this. I bought my MBA to replace my old MacBook.
</p>

<p lang="en">
That's why I decided to create rather small Linux partitions (10GB for <code>/</code>) on the SSD, keeping the OS X partition approximately 90% of its original size. I mean, sometimes (or very frequently) I may want to try if Linux (as of today) runs good on MBA, but too early to spend every minute on this.
</p>

<p lang="en">
So what did I do?
</p>

<p lang="en">
We have another (and very easy) way to install Linux on Intel Macs - <a href="http://www.virtualbox.org/" target="_blank">VirtualBox</a> (not V<strong>e</strong>rtualBox, but V<strong>i</strong>rtualBox - to whom it may concern). I mean, I install Vine Linux on a VirtualBox running on OS X Lion. I know there is yet another way - a similar solution - <a href="http://www.vmware.com/products/fusion/overview.html" target="_blank">VMWare Fusion</a>, a famous commercial product. But this time I go with VirtualBox as I've been already familiar with running VirtualBox on Vine Linux - testing Vine installer, using other Linux distributions for certain purposes, et al.
</p>

<p lang="en">
The installation itself is really a piece of cake. And you'll get the Linux running on a virtual machine like a charm. You don't have to worry about hardware compatibility issues. You can quickly let your Mac sleep by closing the lid, while Linux is on a virtual machine - no matter what that Linux is compatible with sleep or not. You can run Linux on full-screen mode (although VirtualBox is not OS X Lion's &lsquo;Full-Screen&rsquo; App yet) with 1366x768 resolution very quick and fast. You can instantly switch from OS X (host OS) and Vine Linux (guest OS) by swiping the trackpad with your three fingers - give another huge round of applause to Mission Control!
</p>

<br />

<div style="text-align: center;" lang="en">
<img class="link" alt="[Vine Linux VM on Missiion Control]" width="500" height="281" src="http://microgroove.jp/shaolin/img/MissionControl_VineLinux.png" />
</div>

<br />

<p lang="en">
This is &ldquo;insanely great&rdquo;, actually. Two Vine Linux developers (daisuke & munepi) bought MBA 2011 as well, and they do this way. They didn't ever tried to install Vine directly onto their MBAs like I did this time.
</p>

<p lang="en">
But in the meantime I will keep looking for some hacks and upstream fixes that will make Vine Linux running directly on newer Intel Macs flawlessly like it already does on my old whity MacBook. This is why I still keep small 10GB Linux partition on my MBA 2011's SSD.
</p>

<br />

<p lang="en">
Okay, so I need to move my current Vine environment on my MacBook to the VirtualBox on OS X Lion - hope it will not take long - and I gotta say to myself, installing Linux on MacBook Air is just the means of restoring my daily environment, not an end in itself (except when I am debugging and developing Vine Linux itself).
</p>]]>
    </content>
</entry>

<entry>
    <title>kernel panic on shutdown w/ vboxdrv</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2011/08/kernel_panic_on_shutdown_w_vboxdrv.html" />
    <id>tag:microgroove.jp,2011:/shaolin//3.1023</id>

    <published>2011-08-09T04:26:57Z</published>
    <updated>2011-08-09T04:39:18Z</updated>

    <summary> On my environment (VineSeed/Vine Linux 6 on MacBook Early 2008), the system always crashes with a kernel panic when trying to shut the system down like this: panic occurred, switching back to text console BUG: scheduling while atomic: swapper/0/0x10010000...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VINE" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="vinelinux" label="Vine Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vineseed" label="VineSeed" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="virtualbox" label="VirtualBox" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="en">
On my environment (VineSeed/Vine Linux 6 on MacBook Early 2008), the system always crashes with a kernel panic when trying to shut the system down like this:
</p>

<blockquote lang="en" style="overflow: auto">
<pre>
panic occurred, switching back to text console
BUG: scheduling while atomic: swapper/0/0x10010000
Modules linked in: sit tunnel4 rfcomm sco bnep l2cap vboxnetadp vboxnetflt vboxdrv autofs4 sunrpc
ipv6 acpi_cpufreq freq_table mperf dm_mirror dm_region_hash dm_log dm_mod uinput snd_hda_codec_realtek
snd_hda_intel lib80211_crypt_tkip snd_hda_codec wl(P) snd_hwdep uvcvideo btusb snd_seq_dummy
snd_seq_oss snd_seq_midi_event snd_seq videodev bluetooth ohci1394 v4l1_compat snd_seq_device
applesmc snd_pcm_oss snd_pcm hwmon rfkill lib80211 ieee1394 led_class snd_timer snd firewire_ohci
soundcore firewire_core i2c_i801 snd_page_alloc sky2 input_polldev mbp_nvidia_bl pcspkr crc_itu_t
joydev iTCO_wdt iTCO_vendor_support appletouch processor battery thermal ac ata_generic pata_acpi
uhci_hcd ohci_hcd ehci_hcd i915 dkms_kms_helper drm i2c_algo_bit button i2c_core video output
[last unloaded: cpufreq_ondemand]
Pid: 0, comm: swapper Tainted: P       D     2.6.35-20vl6 #1
Call Trace:
[&lt;c102d3a6&gt;] __schedule_bug+0x1/0x56
[&lt;c1359495&gt;] schedule+0x83/0x4b9
[&lt;f7d7b78e&gt;] ? drm_crtc_helper_set_config+0x84/0x65b [drm_kms_helper]
[&lt;c135999d&gt;] _cond_resched+0x2e/0x47
[&lt;c10c8b80&gt;] __kmalloc+0xa8/0x145
[&lt;f7d7b78e&gt;] drm_crtc_helper_set_config+0x94/0x65b [drm_kms_helper]
[&lt;c1005e37&gt;] ?show_trace_log_lvl+0x39/0x43
[&lt;f7d7aae8&gt;] drm_fb_helper_force_kernel_mode+0x2b/0x5b [drm_kms_helper]
[&lt;f7d7ab62&gt;] drm_fb_helper_panic+0x17/0x1d [drm_kms_helper]
[&lt;c104b6c3&gt;] notifier_call_chain+0x14/0x16
[&lt;c1359289&gt;] atomic_notifier_call_chain+0x14/0x16
[&lt;c1359289&gt;] panic+0x73/0xbc
[&lt;c1005c17&gt;] oops_end+0x7a/0x88
[&lt;c102088f&gt;] no_context+0x115/0x11f
[&lt;c102098a&gt;] __bad_area_nosemaphore+0xf1/0xf9
[&lt;c1020af0&gt;] ? do_page_fault+0x0/0x2eb
[&lt;c10209a4&gt;] bad_area_nosemaphore+0x12/0x15
[&lt;c1020c32&gt;] d0_page_fault+0x142/0x2eb
[&lt;c10080fd&gt;] ?sched_clock+0x9/0xd
[&lt;c104bfb3&gt;] ?sched_clock_local+0x17/0x11e
[&lt;c1020af0&gt;] ?do_page_fault_0x0/0x2eb
[&lt;c135b9b6&gt;] error_code+0x66/0x6c
[&lt;c104007b&gt;] ? ignore_signals+0x21/0x27
[&lt;c1020af0&gt;] ?do_page_fault+0x0/0x2eb
[&lt;f91a3e0d&gt;] ?rtMpNotificationLinuxOnCurrentCPU+0xa/0x9d [vboxdrv]
[&lt;f91a3a51&gt;] rtmpLinuxWrapper+0x22/0x27 [vboxdrv]
[&lt;c10572e7&gt;] generic_smp_call_function_single_interrupt+0xa0/0xba
[&lt;c1017e29&gt;] smp_call_function_single_interrupt+0xa0/0xba
[&lt;c135b546&gt;] call_function_single_interuupt+0x2a/0x30
[&lt;c104007b&gt;] ? ignore_signals+0x21/0x27
[&lt;f86fa1ea&gt;] ? acpi_idle_enter_bm+0x24d/0x289 [processor]
[&lt;c12b7475&gt;] cpuidle_idle_call+0x73/0xce
[&lt;c10023a3&gt;] cpu_idle+0x4e/0x67
[&lt;c1357280&gt;] start_secondary+0x1a8/0x1ad
</pre>
</blockquote>

<br />

<p lang="en">
I'd been looking for the solution to the issue, and finally I found this was it:
</p>

<ul lang="en">
<li><a href="http://www.virtualbox.org/ticket/9305" target="_blank">Ticket #9305: VBox modules randomly cause kernel panic on computer shutdown -&gt; fixed as of 28-Jul 2011</a>
</ul>

<br />

<p lang="en">
The fix itself was very trivial:
</p>

<blockquote lang="en" style="overflow: auto">
<pre>
--- src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c	(revision 73209)
+++ src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c	(revision 73210)
@@ -77,7 +77,7 @@
  * @param pvUser2           The notification event.
  * @remarks This can be invoked in interrupt context.
  */
-static void rtMpNotificationLinuxOnCurrentCpu(RTCPUID idCpu, void *pvUser1, void *pvUser2)
+static DECLCALLBACK(void) rtMpNotificationLinuxOnCurrentCpu(RTCPUID idCpu, void *pvUser1, void *pvUser2)
 {
     unsigned long ulNativeEvent = *(unsigned long *)pvUser2;
     NOREF(pvUser1);
</pre>
</blockquote>

<br />

<p lang="en">
Now the fix has been included on VirtualBox-4.1.0-2vl7 (VineSeed).
</p>

<p lang="en">
Same fix for Vine Linux 6 (more precisely, packages for VinePlus/6) will be uploaded as 4.1.0-2vl6 as well shortly.
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Installing Vine Linux 6.0 beta2 on ZOTAC IONITX-P-E</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2011/07/installing_vine_linux_60_beta2_on_zotac_ionitx-p-e.html" />
    <id>tag:microgroove.jp,2011:/shaolin//3.1022</id>

    <published>2011-07-06T08:01:00Z</published>
    <updated>2011-07-28T05:41:31Z</updated>

    <summary> 自宅のリビングのテレビに接続するメディアサーバ (xbmc とか vlc とか) 的な、省電力で安価なマシンが欲しかったので、ION + 定電圧 (CULV) 版 Celeron SU2300 という、変態(?)構成なマザーボード ZOTAC IONITX-P-E を購入し、ちょうどベータ版がリリースされている Vine Linux 6.0 をテストがてらインストールしてみました。...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VINE" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ion" label="ION" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ionitxpe" label="IONITX-P-E" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="nvidia" label="Nvidia" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vinelinux" label="Vine Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="xbmc" label="xbmc" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="xorg" label="XOrg" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="zotac" label="ZOTAC" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
自宅のリビングのテレビに接続するメディアサーバ (<a href="http://xbmc.org/" target="_blank">xbmc</a> とか <a href="http://www.videolan.org/" target="_blank">vlc</a> とか) 的な、省電力で安価なマシンが欲しかったので、ION + 定電圧 (CULV) 版 Celeron SU2300 という、変態(?)構成なマザーボード <a href="http://www.zotacusa.com/zotac-ionitx-p-e-intel-celeron-su2300-1-2ghz-dual-core-mini-itx-intel-motherboard.html" target="_blank">ZOTAC IONITX-P-E</a> を購入し、ちょうどベータ版がリリースされている <a href="http://vinelinux.org/" target="_blank">Vine Linux</a> 6.0 をテストがてらインストールしてみました。
</p>

<br />

<div style="text-align: center;">
<a href="http://www.zotacusa.com/zotac-ionitx-p-e-intel-celeron-su2300-1-2ghz-dual-core-mini-itx-intel-motherboard.html" target="_blank"><img alt="[ZOTAC IONITX-P-E]" src="http://microgroove.jp/shaolin/img/ZOTAC-IONITX-P-E.jpg" /></a>
</div>]]>
        <![CDATA[<p lang="ja">
このマザー、通常 Atom と組み合わされる ION が CULV Celeron と組まれてる以外は、意外と素直な構成というか、ほぼ全てのコンポーネントが特に問題なく使えました。これを 80W 電源がついた小さなケースに入れ、2GB メモリを2枚と、いちばん安い 2.5インチ 320GB ハードディスクを積んだものが今回のマシンです。
</p>

<p lang="ja">
以下、やったことのまとめ。
</p>


<br />
<hr width="80%" />
<br />


<h4 lang="ja">インストール</h4>

<p lang="ja">
USB に書き込んだ DVD インストーライメージ (x86_64) から起動、普通にインストール。特に問題もなく終了。
</p>

<br />

<h4 lang="ja">初回起動・確認</h4>

<p lang="ja">
コンソールは vesa モードで起動、普通に plymouth によるスプラッシュが出てきました。X も16bitで上下左右が幾分欠けてはいるものの、とりあえず動作しています。オンボードの無線ネットワーク (Atheros AR9285) も特になにもせずに使えました。やや拍子抜け。
</p>

<p lang="ja">
以下、<code>lspci</code> の出力。
</p>

<blockquote lang="en" style="overflow: auto">
<pre>
00:00.0 Host bridge: nVidia Corporation MCP79 Host Bridge (rev b1)
00:00.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
00:03.0 ISA bridge: nVidia Corporation MCP79 LPC Bridge (rev b3)
00:03.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
00:03.2 SMBus: nVidia Corporation MCP79 SMBus (rev b1)
00:03.3 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
00:03.5 Co-processor: nVidia Corporation MCP79 Co-processor (rev b1)
00:04.0 USB Controller: nVidia Corporation MCP79 OHCI USB 1.1 Controller (rev b1)
00:04.1 USB Controller: nVidia Corporation MCP79 EHCI USB 2.0 Controller (rev b1)
00:06.0 USB Controller: nVidia Corporation MCP79 OHCI USB 1.1 Controller (rev b1)
00:06.1 USB Controller: nVidia Corporation MCP79 EHCI USB 2.0 Controller (rev b1)
00:08.0 Audio device: nVidia Corporation MCP79 High Definition Audio (rev b1)
00:09.0 PCI bridge: nVidia Corporation MCP79 PCI Bridge (rev b1)
00:0a.0 Ethernet controller: nVidia Corporation MCP79 Ethernet (rev b1)
00:0b.0 IDE interface: nVidia Corporation MCP79 SATA Controller (rev b1)
00:0c.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:10.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:15.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:16.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:17.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:18.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
03:00.0 VGA compatible controller: nVidia Corporation C79 [ION] (rev b1)
04:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
</pre>
</blockquote>

<br />

<br />

<h4 lang="ja">プロプライエタリグラフィックドライバの追加</h4>

<p lang="ja">
このままでもまあまあ使えますが、今回はメインが動画閲覧目的ですので、まずはプロプライエタリな <code>nvidia</code> ドライバをインストール。
</p>

<blockquote lang="en">
<pre>
$ sudo apt-get update
$ sudo apt-get install xorg-x11-drv-nvidia
</pre>
</blockquote>

<br />

<p lang="ja">
あとは以下の手順で、とりあえず nvidia ドライバで X が使えるようになります。
</p>

<blockquote lang="en">
<pre>
$ sudo nvidia-xconfig (雛形的な xorg.conf が作られる)
$ sudo nvidia-config-display enable (必要な module path が追加される)
$ sudo reboot
</pre>
</blockquote>

<br />

<p lang="ja">
具体的には、<code>Files</code> セクションに、以下の <code>ModulePath</code> が追加され、
</p>

<blockquote lang="en">
<pre>
Section "Files"
        ModulePath   "/usr/lib64/xorg/modules/extensions/nvidia"
        ModulePath   "/usr/lib64/xorg/modules"
        FontPath     "/usr/share/fonts/default/Type1"
EndSection
</pre>
</blockquote>

<p lang="ja">
<code>Device</code> セクションでドライバに <code>nvidia</code> を指定するだけのようです。
</p>

<blockquote lang="en">
<pre>
Section "Device"
        Identifier  "Device0"
        Driver      "nvidia"
        VendorName  "NVIDIA Corporation"
EndSection
</pre>
</blockquote>

<br />

<p lang="ja">
その他、<code>DefaultDepth</code> や <code>Deph</code> も明示的に <code>24</code> になっています。
</p>

<blockquote lang="en">
<pre>
Section "Screen"
        Identifier "Screen0"
        Device     "Device0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Depth     24
        EndSubSection
EndSection
</pre>
</blockquote>

<br />

<p lang="ja">
今回は、うちにあるテレビ (TOSHIBA REGZA 32R1) に HDMI 接続していますが、そのままだと上下左右が欠けてしまうので、<code>OverscanCompensation</code> の値を調整して、適切な表示になるようにします。設定は <code>nvidia-settings</code> から。この画面では、<code>OverscanCompensation=60</code> に指定しています。
</p>

<br />

<div style="text-align: center;">
<a href="http://microgroove.jp/shaolin/img/NVIDIA_X_Server_Settings-L.jpg" onclick="window.open('http://microgroove.jp/shaolin/img/NVIDIA_X_Server_Settings-L.jpg', 'popup', 'width=948,height=1056,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img alt="[nvidia-settings]" src="http://microgroove.jp/shaolin/img/NVIDIA_X_Server_Settings.jpg" /></a>
</div>

<br />

<p lang="ja">
毎回 X が起動する際にこの値を有効にするため、
</p>

<blockquote lang="en">
<pre>
nvidia-settings -a "OverscanCompensation=60"
</pre>
</blockquote>

<p lang="ja">
というコマンドを、どこかに書いておくことに。
</p>

<p lang="ja">
今回は、リビングで使うメディアサーバ的で、<code>gdm</code> で自動ログインするような使い方を念頭においてますので、<code>/etc/X11/gdm/PreSession/Default</code> に書いておくことに。もっと別の場所に書く方がスマートかもしれません。
</p>

<br />

<h4 lang="ja">サウンド</h4>

<p lang="ja">
今回はテレビと HDMI 接続するので、オーディオ出力も HDMI にします。が、デフォルトのままではオーディオが出力されていないようです。
</p>

<p lang="ja">
いろいろ調べると、HDMI 経由のディジタル出力が alsa 的にミュートされているらしいことが分かりました。なので、<code>alsamixer</code> でミュートを解除してみます。この画面では、一番右の <code>S/PDIF</code>、<code>S/PDIF D</code>、<code>S/PDIF 1</code> あたりが該当します。
</p>

<br />

<div style="text-align: center;">
<img alt="[alsamixer]" src="http://microgroove.jp/shaolin/img/alsamixer.jpg" />
</div>

<br />

<p lang="ja">
これで、次回起動時にもこの設定が有効になるように、以下のコマンドを実行して、<code>/etc/asound.state</code> に書きだしておきます。
</p>

<blockquote lang="en">
<pre>
$ sudo alsactl store
</pre>
</blockquote>

<br />

<h4 lang="ja">残りいろいろ</h4>

<p lang="ja">
もうこれで、普通に使う分には問題ない状態になってしまいました。拍子抜け。もっといろいろクセのあるハードであれこれいじりたかったところですが、まあそれだけ当たりのマザーを引いたということで、よしとしておきます。
</p>

<p lang="ja">
あとやったのは、今回必要となるあたりのソフトウェアをインストールしたり、
</p>

<blockquote lang="en">
<pre>
$ sudo apt-get install task-all-codecs self-build-vlc \
                       self-build-xbmc chromium
</pre>
</blockquote>

<br />

<p lang="ja">
<code>gdm2setup</code> などを使って自動ログインを有効にし、テレビからある程度離れて操作することを考えて、GNOME デスクトップのフォントや Chromium のフォントを大きめに設定することくらいです。
</p>

<p lang="ja">
これで、仕事部屋に置いてある NAS サーバ上に NFS なり SMB なりを経由して、動画ファイルや DVD からリッピングした ISO ファイル、それと写真などを <code>xbmc</code> で閲覧できる環境が整いました。
</p>

<p lang="ja">
CULV Celeron SU2300 (1.2GHz Dual Core) + ION という構成ですが、まあ普通に 1080i や 720p な動画を見る分には充分な感じです。また、妻が使っている DELL のノートPCの調子が最近特に悪く（使っていると勝手に電源が落ちたりする）、その当座のバックアップ環境ということで、web 閲覧環境がリビングに用意できたという面もあるかもしれません。
</p>

<p lang="ja">
あとは、うーんと、手元には USB なり Bluetooth なワイヤレスキーボードがないので、適当によさそうな奴を探すことくらいでしょうか。なんかオススメのものってありますかね。
</p>]]>
    </content>
</entry>

<entry>
    <title>any good sports for my daughter?</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2011/06/any_good_sports_for_my_daughter.html" />
    <id>tag:microgroove.jp,2011:/shaolin//3.1021</id>

    <published>2011-06-13T21:00:00Z</published>
    <updated>2011-06-13T21:19:04Z</updated>

    <summary><![CDATA[ Yesterday afternoon we went to the tennis school (where we once lived near and I had regular lesson for several years) with my daughter to see how the kids tennis lesson (&ldquo;Kinder Class&rdquo;) was like. We just watched the...]]></summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="こども" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="テニス" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="en">
Yesterday afternoon we went to the <a href="http://www.bigk.co.jp/" target="_blank">tennis school</a> (where we once lived near and I had regular lesson for several years) with my daughter to see how the kids tennis lesson (&ldquo;Kinder Class&rdquo;) was like.
</p>

<p lang="en">
We just watched the class behind the fence - not the trial lesson for my daughter. Sorry for her - she complained that she wanted to join the class and play with balls and racquets. Very sorry for her. Anyway we watched 80% of the whole lesson - about 40 minutes - until my daughter got bored of standing behind the fence, watching the kids class on the tennis court.
</p>

<p lang="en">
Not bad. We saw two children (two four-years-old boys) in the class on that day, while on the neighbouring court &ldquo;Players' Course&rdquo; (a very serious class for teens who wants to be professional tennis players) was playing very hard. The two kids were having fun at the class, moving and playing with much joy. They didn't look like they got bored.
</p>
]]>
        <![CDATA[<p lang="en">
To be honest, it was really a great introduction for 4-6 years old children, for parents who seriously wants their kids play tennis very hard in the near future.
</p>

<p lang="en">
But I don't think it was great for my daughter. Here's just a simple point why.
</p>

<br />

<h4>Too strict lesson for three years old kid to keep interests on tennis?</h4>

<p lang="en">
Stretching, running, holding balls on a racket (and moving around), hitting balls forehands and badkhands moving quick, etc... Okay. it's a nice &ldquo;introduction&rdquo; to tennis for kids, but my daughter still don't know how fun it is to play tennis seriously (she already likes to watch professional tennis matches on TV with me and she already loves to play with sponge balls and her kid racquet, though). I am just afraid if she would hate tennis before she got interested in tennis seriously.
</p>

<p lang="en">
I just thought it was not the right time for her. The class would work very good for her, after she would get interested in tennis very seriously. But in the meantime it's just that I want to look for any good kids class where my daughter can play with other kids and getting to know how the sport is like, getting interested in the sport, and getting to like the sport itself.
</p>

<p lang="en">
My conclusion is, that it is just too early for my three-years-old daughter to do a complete subset of what grown-up school students are doing IMHO. Maybe a few years later when she really gets to know tennis is fun. Or should I look for any other tennis schools for kids where they can feel and learn such &ldquo;everything even before the ABC's&rdquo;?
</p>

<br />

<p lang="en">
So what any good sport for my daughter? We've already observed some Kids Classical Ballet lessons that really amazed her so much. She always says &ldquo;I like pretty things. Ballet is pretty. Tennis is cool, but not pretty!&rdquo; Hahaha... Anyway maybe someday I do hope I play tennis with you...
</p>]]>
    </content>
</entry>

<entry>
    <title>Progress bar on the the Plymouth startup screen &quot;Script&quot; theme</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2011/06/progress_bar_on_the_the_plymouth_startup_screen_script_theme.html" />
    <id>tag:microgroove.jp,2011:/shaolin//3.1018</id>

    <published>2011-06-09T05:08:00Z</published>
    <updated>2012-01-28T22:18:15Z</updated>

    <summary><![CDATA[ This is the startup screenshot of the soon-to-come Vine Linux 6.0 - the &ldquo;script&rdquo; theme from the Plymouth graphical boot animation. To tell the truth I have been always wondering, why the progress bar on the boot-up screen looks...]]></summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VINE" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="plymouth" label="Plymouth" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vinelinux" label="Vine Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vineseed" label="VineSeed" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="en">
This is the startup screenshot of the soon-to-come Vine Linux 6.0 - the &ldquo;script&rdquo; theme from the <a href="http://freedesktop.org/software/plymouth/releases" target="_blank">Plymouth</a> graphical boot animation.
</p>

<br />

<div style="text-align: center;">
<img src="http://microgroove.jp/shaolin/img/Plymouth_Script_Startup.jpg" />
</div>

<br />

<p lang="en">
To tell the truth I have been always wondering, why the <strong>progress bar</strong> on the boot-up screen looks like this. The progress bar is placed on the black background - the border is drawn in white colour - so the which is the progress bar itself, black one, or white one?
</p>

<p lang="en">
Seems like the &ldquo;script&rdquo; theme itself adopts black-coloured bar as a progress bar itself. So the following screenshot means that the boot-up process is now about 20% complete:
</p>

<br />

<div style="text-align: center;">
<img src="http://microgroove.jp/shaolin/img/Plymouth_Script_Progressbar.jpg" />
</div>

<br />

<p lang="en">
But don't you think it a bit strange? Sometimes do you see this as &ldquo;the progress bar coming from the right side, now approximately 80% complete&rdquo; or something?
</p>

<p lang="en">
I believe, in this example (black background, progress bar with white border),  the following screenshot should represents &ldquo;approximately 20% complete&rdquo; far better:
</p>

<br />

<div style="text-align: center;">
<img src="http://microgroove.jp/shaolin/img/Plymouth_Script_Progressbar2.jpg" />
</div>

<br />

<p lang="en">
If the latter one is still ambiguous, how about the following example whose border colour and the progress bar colour is bit different? I like this much better IMHO.
</p>

<br />

<div style="text-align: center;">
<img src="http://microgroove.jp/shaolin/img/Plymouth_Script_Progressbar3.jpg" />
</div>

<br />

<p lang="en">
What would you think? Am I the only one who think it different?
</p>

<br />

<p lang="en" style="font-style: italic;">
<strong>P.S.</strong><br />This change can be easily done by editing the following png files:
<p>

<blockquote lang="en">
<pre>/usr/share/plymouth/themes/script/progress_bar.png
/usr/share/plymouth/themes/script/progress_box.png</pre>
</blockquote>

<br />

<p lang="en" style="font-style: italic;">
And don't forget to execute &ldquo;<code>sudo /sbin/new-kernel-pkg --mkinitrd --depmod --install (kernel_version)</code>&rdquo; (<code>kernel_version</code> = <code>2.6.35-18vl6</code> for example)</code> to take effect.
</p>

<br />

<p lang="en" style="font-style: italic;">
<strong>P.S. 2</strong><br />
Soon after this article was published, I noticed other Vine members were talking on the IRC channel about changing the default Plymouth theme from Script to Spinfinity - okay, okay - that's another solution to avoid the Script theme...
</p>

<br />

<p lang="en" style="font-style: italic;">
<strong>P.S. 3</strong><br />
Then here's yet another canditate from <a href="http://dicey.org/blog/" target="_blank">Daisuke</a>-san - looking good. The very best IMHO.
Now we can clearly distinguish the progress bar itself - no confusion here.
</p>

<br />

<div style="text-align: center;">
<img src="http://microgroove.jp/shaolin/img/Plymouth_Script_Progressbar4.jpg" />
</div>]]>
        
    </content>
</entry>

<entry>
    <title>digikam vs libjpeg-turbo</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2011/06/digikam_vs_libjpeg-turbo.html" />
    <id>tag:microgroove.jp,2011:/shaolin//3.1017</id>

    <published>2011-06-08T06:17:00Z</published>
    <updated>2011-06-08T06:17:04Z</updated>

    <summary> digikam can&apos;t compile on the current version of VineSeed (development/unstable version of Vine Linux, and soon-to-be Vine Linux 6.0). I found the following lines on the CMakeLists.txt in the digikam source code: # Extract version of libjpeg so that...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VINE" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="digikam" label="digikam" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vinelinux" label="Vine Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vineseed" label="VineSeed" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="en">
<a href="http://www.digikam.org/" target="_blank">digikam</a> can't compile on the current version of <a href="http://vinelinux.org/vineseed.html" target="_blank">VineSeed</a> (development/unstable version of Vine Linux, and soon-to-be Vine Linux 6.0).
</p>

<p lang="en">
I found the following lines on the <code>CMakeLists.txt</code> in the digikam source code:
</p>

<blockquote lang="en" style="overflow: auto">
<pre># Extract version of libjpeg so that we can use the appropriate dir
# See bug #227313, #228483
FILE(READ "${JPEG_INCLUDE_DIR}/jpeglib.h" jpeglib_h_content)
STRING(REGEX REPLACE ".*#define +JPEG_LIB_VERSION +([0-9]+).*" "\\1" jpeglib_version "${jpeglib_h_content}")
MESSAGE(STATUS "Identified libjpeg version: ${jpeglib_version}")

IF ("${jpeglib_version}" LESS 80)
    SET(DIGIKAM_LIBJPEG_DIR libjpeg-62)
ELSE ("${jpeglib_version}" LESS 80)
    SET(DIGIKAM_LIBJPEG_DIR libjpeg-80)
ENDIF ("${jpeglib_version}" LESS 80)</pre>
</blockquote>

<br />

<p lang="en">
while on the other hand  VineSeed now has <a href="http://libjpeg-turbo.virtualgl.org/" target="_blank">libjpeg-turbo</a> instead of the ancient <a href="http://libjpeg.sourceforge.net/" target="_blank">libjpeg6b</a>.
</p>

<p lang="en">
<code>jpeglib.h</code> from libjpeg-turbo does <strong>NOT</strong> have the line starting from <code>#define JPEG_LIB_VERSION</code>: instead the declaration is in another header file <code>jconfig.h</code> like this:
</p>

<blockquote lang="en" style="overflow: auto">
<pre>#define JPEG_LIB_VERSION 62</pre>
</blockquote>

<br />

<p lang="en">
So the trivial hack (<em>until the upstream fix this tiny issue</em>) is like this:
</p>

<blockquote lang="en" style="overflow: auto">
<pre>
--- digikam-1.9.0/CMakeLists.txt.orig   2011-02-28 05:16:18.000000000 +0900
+++ digikam-1.9.0/CMakeLists.txt        2011-06-08 14:10:15.000000000 +0900
@@ -153,7 +153,9 @@
 
 # Extract version of libjpeg so that we can use the appropriate dir
 # See bug #227313, #228483
-FILE(READ "${JPEG_INCLUDE_DIR}/jpeglib.h" jpeglib_h_content)
+# VINE: better check jconfig.h in place of jpeglib.h on libjpeg-turbo
+# FILE(READ "${JPEG_INCLUDE_DIR}/jpeglib.h" jpeglib_h_content)
+FILE(READ "${JPEG_INCLUDE_DIR}/jconfig.h" jpeglib_h_content)
 STRING(REGEX REPLACE ".*#define +JPEG_LIB_VERSION +([0-9]+).*" "\\1" jpeglib_version "${jpeglib_h_content}")
 MESSAGE(STATUS "Identified libjpeg version: ${jpeglib_version}")
</pre>
</blockquote>]]>
        
    </content>
</entry>

<entry>
    <title>懐かしの8ビットマイコンゲーム?</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2011/03/hardware_acceleration_sometimes_might_no_do_any_good.html" />
    <id>tag:microgroove.jp,2011:/shaolin//3.1013</id>

    <published>2011-03-06T03:21:00Z</published>
    <updated>2011-03-06T03:25:21Z</updated>

    <summary> 現在の手元のマシン (MacBook w/ Intel GM965 Graphic Controller) の VineSeed、XOrg 1.10.0、xorg-x11-drv-intel-2.14.0-2vl6.i686、Adobe Flash Plugin10.2.152.27 で、 Tick Tock - student short film for Emory Campus MovieFest 2011 (YouTube) を観ようとすると、 。。。。 どこか懐かしさもある、大昔遊んだマイコンのテレビゲームみたいな。。。。 結局、Flash の ハードウェアアクセラレーションを無効にする、というのが正解だった模様です。特定の YouTube 映像のみでおかしくなっていたので、まあなんか特定のエンコーディング用のアクセラレータの問題ではないかと思ってはいたのですが。 なにせ VineSeed でちょうど XOrg 1.10 一式が投入された直後ということもあり、原因はなんだなんだということに。。。...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="MAC" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VINE" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="acceleration" label="Acceleration" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="adobe" label="Adobe" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flash" label="Flash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macbook" label="MacBook" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="plugin" label="Plugin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vinelinux" label="Vine Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vineseed" label="VineSeed" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="xorg" label="XOrg" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
現在の手元のマシン (MacBook w/ Intel GM965 Graphic Controller) の VineSeed、<code>XOrg 1.10.0</code>、<code lang="en">xorg-x11-drv-intel-2.14.0-2vl6.i686</code>、<code>Adobe Flash Plugin10.2.152.27</code> で、
</p>

<ul>
<li><a href="http://www.youtube.com/watch?v=w14v4vGUDdg" target="_blank">Tick Tock - student short film for Emory Campus MovieFest 2011</a> (YouTube)
</ul>

<p lang="ja">
を観ようとすると、
</p>

<br />

<div style="text-align: center;">
<img src="http://microgroove.jp/img/YouTube_TickTock_WithHardwareAcceleration.jpg" />
</div>

<br />

<p lang="ja">
。。。。
</p>

<p lang="ja">
どこか懐かしさもある、大昔遊んだマイコンのテレビゲームみたいな。。。。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
結局、Flash の <strong>ハードウェアアクセラレーションを無効にする</strong>、というのが正解だった模様です。特定の YouTube 映像のみでおかしくなっていたので、まあなんか特定のエンコーディング用のアクセラレータの問題ではないかと思ってはいたのですが。
<br />
なにせ VineSeed でちょうど <code>XOrg 1.10</code> 一式が投入された直後ということもあり、原因はなんだなんだということに。。。
</p>

<br />

<div style="text-align: center;">
<img src="http://microgroove.jp/img/AdobeFlash_DisableHardwareAcceleration.jpg" />
</div>

<br />

<blockquote lang="ja">
&lt;d&gt; flash10.2からVAAPI/VDPAUつかったh264のアクセラレーションが使われるようになったのだけど
<br />
&lt;d&gt; h264のプロファイルによっては壊れる
<br />
&lt;d&gt; &一回こわれるとflashプロセスを殺さないと
<br />
&lt;d&gt; 全部に影響するっぽい
</blockquote>

<br />

<p lang="ja">
ということだと。<a href="http://dicey.org/d/">だいさめ</a> 情報サンクス。
</p>

<br />

<div style="text-align: center;">
<img src="http://microgroove.jp/img/YouTube_TickTock_WithoutHardwareAceleration.jpg" />
</div>
]]>
        
    </content>
</entry>

<entry>
    <title>a tiny patch for recpt1/tssplitter_lite.c</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2010/09/a_tiny_patch_for_recpt1tssplitter_litec.html" />
    <id>tag:microgroove.jp,2010:/shaolin//3.1007</id>

    <published>2010-09-03T06:41:00Z</published>
    <updated>2010-09-04T12:08:29Z</updated>

    <summary> 年明けに northeye さんに代理購入して頂いていたのに、半年も受け取る機会に恵まれず（長らくすんませんでした）、結局7月3日に無事受け取りを済ませた PT2。 その後も箱に入れたままになっていましたが、8月12日に1998年製造のブラウン管アナログテレビがついに壊れてしまい、安い REGZA (32R1) を購入したのを機に、うちに転がっていた古いキューブ型PCにやっとこさ取り付けたのが8月20日。 いまなら linux カーネルに入っている DVB 版ドライバ を使うのが素直なんでしょうが、そのキューブ型PCに入れたのがたまたま VineSeed (linux-2.6.35) ではなく Vine 5.1 (linux-2.6.27) だったため、なんとなく 以前からある方の chardev 版 PT1 ドライバ で環境を構築しました。 tssplitter_lite 相当の動作が内包された recpt1 もお手軽でいい感じですし、これまたお手軽操作の epgrec も悪くない。 が、WOWOW の SD 放送の録画でちょっと面倒臭いことになってしまい、時間を見つけてはあれこれ調べていました。以下経緯と経過。...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VINE" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="earthsoft" label="Earthsoft" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="epgrec" label="epgrec" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pt1" label="PT1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pt2" label="PT2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="recpt1" label="recpt1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tssplitter_lite" label="tssplitter_lite" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
年明けに <a href="http://twitter.com/northeye" target="_blank">northeye</a> さんに代理購入して頂いていたのに、半年も受け取る機会に恵まれず（長らくすんませんでした）、結局7月3日に無事受け取りを済ませた <a href="http://earthsoft.jp/PT/index.html" target="_blank">PT2</a>。
</p>

<p lang="ja">
その後も箱に入れたままになっていましたが、8月12日に1998年製造のブラウン管アナログテレビがついに壊れてしまい、安い REGZA (32R1) を購入したのを機に、うちに転がっていた古いキューブ型PCにやっとこさ取り付けたのが8月20日。
</p>

<p lang="ja">
いまなら linux カーネルに入っている <a href="http://bitbucket.org/hiranotaka/dvb-pt1/" target="_blank">DVB 版ドライバ</a> を使うのが素直なんでしょうが、そのキューブ型PCに入れたのがたまたま <a href="http://www.vinelinux.org/vineseed.html" target="_blank">VineSeed</a> (linux-2.6.35) ではなく <a href="http://www.vinelinux.org/aboutvine5.html" target="_blank">Vine 5.1</a> (linux-2.6.27) だったため、なんとなく <a href="http://hg.honeyplanet.jp/pt1/" target="_blank">以前からある方の chardev 版 PT1 ドライバ</a> で環境を構築しました。
</p>

<p lang="ja">
<span lang="en">tssplitter_lite</span> 相当の動作が内包された <strong lang="en">recpt1</strong> もお手軽でいい感じですし、これまたお手軽操作の <a href="http://www.mda.or.jp/epgrec/" target="_blank"><strong lang="en">epgrec</strong></a> も悪くない。
</p>

<p lang="ja">
が、WOWOW の SD 放送の録画でちょっと面倒臭いことになってしまい、時間を見つけてはあれこれ調べていました。以下経緯と経過。
</p>]]>
        <![CDATA[<p lang="ja" style="font-size: smaller;">
そもそも私が PT2 を購入した最大の動機は、もう20年以上前からしこしこやっている通り、テニスの試合を録画・保存するためです。現在は WOWOW (四大大会全部とその他小さな大会をときどき)、GAORA (マスターズ1000全大会とマスターズファイナル、ウィンブルドンダブルス、その他)、NHK 地上波 (ウィンブルドンなど) などでカバーされている男子プロテニスの試合放送ですが、ディジタル放送に切り替わると、編集したり保存したりするのがあれこれ面倒くさくなると思われるので。
</p>

<br />

<p lang="ja">
それはさておき、WOWOW での四大大会放送ですが、現時点ではおおよそ以下のような感じで放送されています。
</p>

<ul lang="ja">
<li>1回戦〜準々決勝：BS 191ch, 192ch, 193ch で適宜 SD 放送
<li>準決勝、決勝：BS 191ch で HD 放送
</ul>


<br />
<hr width="80%" />
<br />


<h3 lang="ja">WOWOW SD 16:9 放送って、なんか変?</h3>

<p lang="ja">
この SD 放送のときがくせものです。例えば、
</p>

<br />

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
  Program 193 
    Stream #0.0[0x280]: Video: mpeg2video, yuv420p, 720x480
            [PAR 32:27 DAR 16:9], 15000 kb/s, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x281]: Audio: aac, 48000 Hz, stereo, s16, 185 kb/s
</pre>

<br />

<p lang="ja">
となっているので、720x480 アスペクト比 16:9 で普通に放送されているのかと思いきや、実は上下額縁なのです。例えばこの映像を vlc などで再生しようとすると、720x480 アスペクト比 4:3 で表示して、上下をクロッピングすると、やっと本来意図された表示になります。WOWOW が、どうしてこのような方式で SD 16:9 放送をしているのかはよくわかりません。
</p>

<br />

<p lang="ja">
不思議なのは、テレビでこのチャンネルを普通に視聴している分には、アスペクト比やクロッピングを特に微調整しなくとも、上下の額縁はなく 16:9 で表示されています。どうやら、BS 191/192/193ch の SD 放送で 16:9 と指定されているストリームは、テレビのチューナ側でクロッピングし、上下に引き伸ばして表示しているように思えます（確かに 720x480 16:9 にしては荒い）。
</p>

<p lang="ja">
事実、PT2 で録画した TS ファイルを DLNA 経由で REGZA で再生した場合、普通 (?) に 720x480 16:9 で表示されています（実際にはクロッピングして引き伸ばしているので、620x480 16:9 といった辺りでしょう）が、例えば <a href="http://tmpgenc.pegasys-inc.com/ja/product/tme3.html" target="_blank">TMPGEnc MPEG Editor 3</a> などでカット編集して出力した TS ファイルを DLNA 経由で REGZA で再生した場合、vlc で再生した時と同様に上下額縁状態で（横にアスペクトが引き伸ばされた様な見栄えで）表示されます。果たして、その TS は、チャンネル番号（正確には PID?）が変更されています。
</p>

<br />

<p lang="ja">
なので、クロッピングしてアスペクト比をいじって再エンコードしたりしない限り、元の PID を保ったまま不要なチャンネルのストリームを削除した TS が欲しいわけです。もちろん、PC なり PS3 なりを HDMI 経由でテレビに接続して観るのであれば、こういったことを考えずに済むのでしょうし、最終的に保存するフォーマットの自由度も高まるのでしょうが、いまの我が家の環境で、PT2 で録画した映像を REGZA 32R1 で観るには、DLNA サーバ上に置いた TS をネットワーク越しに再生するしかないので、このような（やや不毛な？）ことを考えているのです。
</p>


<br />
<hr width="80%" />
<br />


<h3 lang="ja">tssplitter_lite が WOWOW SD 放送をうまく分割できない</h3>

<p lang="ja">
そこでもうひとつの問題。<code lang="en">tssplitter_lite</code> 内包の <code lang="en">recpt1</code> では、WOWOW の SD 放送時に <code lang="en">--sid</code> オプションで残したいチャンネルを指定しても、意図した通りの動作をしてくれないのです。従来の、単体バージョンの <code lang="en">tssplitter_lite</code> でも同じ。
</p>

<br />

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
  # 191 を指定しても、そもそも「Available sid」に現れておらず、
  # 実際に生成された TS も再生不能 
  $ ./recpt1 --b25 --sid 191 191 5 /tmp/191.ts
  using B25...
  pid = 8910
  C/N = 15.383486dB
  Recording...
  Available sid = 192 193 791 792 0 
  Chosen sid    = 192 193 791 792 0
  Recorded 5sec

  $ ffmpeg -i /tmp/191.ts
  (...中略...)
    /tmp/191.ts: could not find codec parameters
</pre>

<br />

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
  # 192 を指定して、一見うまくいっているように見えるが、
  # 実際に生成された TS の PAT から 191 が削除されておらず、
  # よって REGZA などからは不正な TS と見なされ、再生できない
  $ ./recpt1 --b25 --sid 192 192 5 /tmp/192.ts
  using B25...
  pid = 9097
  C/N = 15.008206dB
  Recording...
  Available sid = 192 193 791 792 0 
  Chosen sid    = 192
  Recorded 5sec

  $ ffmpeg -i /tmp/192.ts
  (...中略...)
    Program 191 
    Program 192 
      Stream #0.0[0x240]: Video: mpeg2video, yuv420p, 720x480
              [PAR 32:27 DAR 16:9], 15000 kb/s, 29.97 tbr, 90k tbn, 59.94 tbc
      Stream #0.1[0x241]: Audio: aac, 48000 Hz, stereo, s16, 185 kb/s
</pre>

<br />

<p lang="ja">
もちろん、<code lang="en">--sid</code> オプションなしで録画した TS を、<a href="http://www.winehq.org/" target="_blank"><span lang="en">wine</span></a> 経由で <code lang="en">Tssplitter.exe</code> に食わせれば、意図した通りの TS が生成されます。が、それはちょっと。
</p>

<p lang="ja">
「<code lang="en">tsselect from.ts to.ts 0x0000 0x0240 0x0241 0x0201 0x0211</code>」とかで吐き出した TS を REGZA が認識してくれればそれでもよかったのですが、残念ながら PAT が無修正なため、だめでした。
</p>

<br />

<p lang="ja">
WOWOW 以外、例えば NHK BS1/BS2 などでは、意図した通りに動作しているようにみえます。<code lang="en">--sid</code> 指定で、101ch あるいは 102ch のいずれかだけが残り、PAT がそれにあわせて書き換えられた TS が生成されています。もちろん REGZA でも DLNA 経由で再生可能でした。
</p>

<br />

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
  $ ./recpt1 --b25 --sid 101 101 5 /tmp/101.ts 
  using B25...
  pid = 10439
  C/N = 14.838169dB
  Recording...
  Available sid = 101 102 910 929 
  Chosen sid    = 101
  Recorded 6sec

  $ ffmpeg -i /tmp/101.ts
  (...中略...)
    Program 101 
    Stream #0.0[0x100]: Video: mpeg2video, yuv420p, 720x480
            [PAR 32:27 DAR 16:9], 10500 kb/s, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x101]: Video: mpeg2video, yuv420p, 352x240
            [PAR 40:33 DAR 16:9], 300 kb/s, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.2[0x110]: Audio: aac, 48000 Hz, stereo, s16, 131 kb/s
    Stream #0.3[0x112]: Audio: aac, 48000 Hz, mono, s16, 63 kb/s
    Stream #0.4[0x111]: Audio: aac, 48000 Hz, stereo, s16, 162 kb/s
    # 降雨対応モードの低画質映像 (0x0101) と音声 (0x0112) が残ったままですが、
    # この際いいことにしておきます
</pre>

<br />

<p lang="ja">
先程上に書いたこととも重なりますが、現在私がやりたいのはこういうことです。
</p>

<ul lang="ja">
<li>WOWOW SD 放送 (BS 191/192/193ch) の望むチャンネルだけが残され、
<li>PAT 情報がそれにあわせて適切に書き換えられていて、
<li>ストリーム PID は書き換えられていない、
<li>TS ファイルを、
<li>Linux 上で生成したい。
</ul>

<p lang="ja">
で、本来これを行ってくれるはずの、<code lang="en">tssplitter_lite</code> 内包の <code lang="en">recpt1</code> が、どういうわけか WOWOW SD 放送に関してはうまく <code lang="en">--sid</code> 指定で意図した通りに動いてくれない、と。
</p>


<br />
<hr width="80%" />
<br />


<h3 lang="ja">仕方がないので</h3>

<p lang="ja">
web 上に転がっている情報、例えば
</p>

<ul lang="ja">
<li>「<a href="http://allegro.dtiblog.com/blog-entry-185.html" target="_blank">Allegro Moderatoな日常：PATの解析</a>」
<li>「<a href="http://nomanganolife.blogspot.com/2009/12/mpeg2-ts.html" target="_blank">自堕落に生きる人間？：MPEG2 TSの仕様について調べた（１）</a>」
<li>「<a href="http://yassblog.blog.so-net.ne.jp/2009-01-22" target="_blank">脈絡もとりとめもない独り言：WOWOW2のTS</a>」
<li>「<a href="http://homepage1.nifty.com/borlander/etc/tv_doc/dgtv1.html" target="_blank">デジタルTV入門</a>」
</ul>

<p lang="ja">
や、それらからたどることのできる
</p>

<ul lang="ja">
<li>「<a href="http://www.arib.or.jp/english/html/overview/doc/2-STD-B10v4_7.pdf" target="_blank">デジタル放送に使用する番組配列情報 標準規格 ARIB STD-B10 4.7版</a> (PDF)」
</ul>

<p lang="ja">
などをありがたく拝読しながら、実際に録画した WOWOW SD 3チャンネル同時放送中の TS ストリームの16進ダンプと比較しつつ、現時点での最新版 <a href="http://hg.honeyplanet.jp/pt1/rev/38a793ac3d9d" target="_blank">38a793ac3d9d</a> の <code lang="en">recpt1/tssplitter_lite.c</code> のコードを眺めることに。
</p>

<br />

<p lang="ja">
<code lang="en">0x47</code> で始まる188バイトごとの TS パケットのうち、PAT の (先頭を0バイト目として) 13バイト目から4バイトごとに PMT 情報が格納されています。この PMT 情報4バイトの下位13ビットが PID となります。そして一連の PMT 情報の直後に CRC 4バイトが入ります。
</p>

<p lang="ja">
以下、いくつかのチャンネルにおける、PAT のペイロード部分における PMT 情報を抜き出したものです。
</p>

<br />

<p lang="ja">
NHK デジタル総合 (1ch) の PAT パケットに含まれる PMT PID はこんな感じ。
</p>

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
00 00 e0 10        # PMT PID 0x0010 - Network
04 00 e1 f0        # PMT PID 0x01f0 - Program 1024 (NHK デジタル総合1)
04 01 e3 f0        # PMT PID 0x03f0 - Program 1025 (NHK デジタル総合2)
05 80 ff c8        # PMT PID 0x1fc8 - Program 1408 (NHK デジタル総合ワンセグ)
ff f0 fc f0        # PMT PID 0x1cf0 - Program 65520 (?)
</pre>

<br />

<p lang="ja">
NHK BS 放送 (BS 101/102) の PAT パケットに含まれる PMT PID はこんな感じ。
</p>

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
00 00 e0 10        # PMT PID 0x0010 - Network
00 65 e1 f0        # PMT PID 0x01f0 - Program 101 (NHK BS1 SD)
00 66 e2 f0        # PMT PID 0x02f0 - Program 102 (NHK BS2 SD)
03 8e f9 01        # PMT PID 0x1901 - Program 910 (BSウェザーニュース)
03 a1 e7 01        # PMT PID 0x0701 - Program 929 (Dpa エンジアリングストリーム)
</pre>

<br />

<p lang="ja">
BS 日テレ (BS 141) の PAT パケットに含まれる PMT PID はこんな感じ。
</p>

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
00 00 e0 10        # PMT PID 0x0010 - Network
00 8d e1 01        # PMT PID 0x0101 - Program 141 (BS 日テレ)
00 8e e2 01        # PMT PID 0x0201 - Program 142 (BS 日テレ)
00 8f e2 03        # PMT PID 0x0203 - Program 143 (BS 日テレ)
02 e8 e4 05        # PMT PID 0x0405 - Program 744 (データ放送)
02 e9 e4 06        # PMT PID 0x0406 - Program 745 (データ放送)
02 ea e4 07        # PMT PID 0x0407 - Program 746 (データ放送)
</pre>

<br />

<p lang="ja">
WOWOW HD 放送 (BS 191) の PAT パケットに含まれる PMT PID はこんな感じ。
</p>

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
00 bf e1 01        # PMT PID 0x0101 - Program 191 (WOWOW HD)
00 c0 e2 01        # PMT PID 0x0201 - Program 192 (WOWOW HD)
00 c1 e2 03        # PMT PID 0x0203 - Program 193 (WOWOW HD)
03 17 e4 02        # PMT PID 0x0402 - Program 791 (データ放送)
03 18 e4 03        # PMT PID 0x0403 - Program 792 (データ放送)
00 00 e0 10        # PMT PID 0x0010 - Network
</pre>

<br />

<p lang="ja">
で、WOWOW SD 放送 (BS 191/192/193) の場合も上と同じ。
</p>

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
00 bf e1 01        # PMT PID 0x0101 - Program 191 (WOWOW1 SD)
00 c0 e2 01        # PMT PID 0x0201 - Program 192 (WOWOW2 SD)
00 c1 e2 03        # PMT PID 0x0203 - Program 193 (WOWOW3 SD)
03 17 e4 02        # PMT PID 0x0402 - Program 791 (データ放送)
03 18 e4 03        # PMT PID 0x0403 - Program 792 (データ放送)
00 00 e0 10        # PMT PID 0x0010 - Network
</pre>

<br />

<p lang="ja">
で、<code lang="en">recpt1/tssplitter_lite.c</code> を眺めてみると、以下のようなコードがありました。PAT 解析を行う関数 <code lang="en">AnalyzePat()</code> 内で、SID/PMT をプリスキャンする箇所です。
</p>

<pre lang="en" style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
                /* prescan SID/PMT */
                for(i = 17, j = 0; i < (size + 8) - 4; i = i + 4, j++) {
                        avail_sids[j] = (buf[i] << 8) + buf[i+1];
                        sp->avail_pmts[j] = GetPid(&buf[i+2]);
                }
</pre>

<br />

<p lang="ja">
ん、なんで <strong><code>17</code></strong> から始まってるんだ? <strong><code>13</code></strong> ちゃうの?
</p>

<br />

<p lang="ja">
恐らくこういうことでしょう。<code lang="en">tssplitter_lite</code> の作者さん（あるいはその元となった <code lang="en">tss.py</code> の作者さん）が、13バイト目〜16バイト目は「<code lang="en">00 00 e0 10</code>」、すなわちここに現れる PMT PID は必ず <code lang="en">0x0010</code> (NIT: Network Information Table) なので、それは無視して 17バイト目からみるようにした、と。
</p>

<p lang="ja">
ところが先程上に載せた通り、WOWOW の TS では、最初に現れる PMT 情報内の PID は <code lang="en">0x0010</code> ではないのです。逆に CRC 4バイトの直前、最後に現れる PMT 情報がそれにあたります。一連の PMT 情報のうち、必ずしも先頭4バイトが「<code lang="en">00 00 e0 10</code>」とは限らない、ということのようです。
</p>

<p lang="ja">
なので、<code lang="en">recpt1</code> 実行中に「<code lang="en">Available sid = 192 193 791 792 0</code>」と出てしまっていたわけですね。先頭の 191 が欠けて、無視していたはずの（先頭にあると期待されていた）0 が出てきてしまった、と。
</p>


<br />
<hr width="80%" />
<br />


<h3 lang="ja">というわけで修正してみました</h3>

<p lang="ja">
これで <code lang="en">recpt1</code> を使った WOWOW SD 放送録画時に <code lang="en">--sid 191</code> といった指定をすることで、正しく 191チャンネル分のみ切り出され、かつ PAT もそれにあわせて適切に修正された TS が生成されるようになりました（もちろん 192, 193 も同様に切り出せます）。
</p>

<p lang="ja">
ただし、<strong>かなりアドホックです</strong>。
</p>

<br />

<p lang="ja">
具体的には、以下のような修正になります。
</p>

<ul lang="ja">
<li>SID/PMT プリスキャン時に 17バイト目からではなく13バイト目から読み出す
<ul>
<li>その際、NIT が現れたら SID としては無視
</ul>
<li>PAT再構成の時、13バイト目〜16バイト目の4バイトを強制的に「<code lang="en">00 00 e0 10</code>」に書き換える
</ul>


<br />
<hr width="80%" />
<br />


<h3 lang="ja">いちおう</h3>

<p lang="ja">
<strong style="color: #ff6666;">どちらも当方の環境・当方の利用目的でのみ動作確認したものです。<br />くれぐれもご注意ください。</strong>
</p>

<br />

<ul lang="ja">
<li><code lang="en">recpt1</code> の現時点での最新版 <a href="http://hg.honeyplanet.jp/pt1/rev/38a793ac3d9d" target="_blank"><code lang="en">38a793ac3d9d</code></a> への <a href="http://microgroove.jp/tmp/recpt1.diff">パッチ</a>。
<li>単体版 <a href="http://hp.vector.co.jp/authors/VA038175/" target="_blank"><code lang="en">tssplitter_lite</code></a> (あるいは <a href="http://d.hatena.ne.jp/querulous/20090730" target="_blank">ここ</a>) への <a href="http://microgroove.jp/tmp/tssplitter_lite.diff">パッチ</a>。
</ul>

<br />

<p lang="ja">
<strong>間違い、勘違いなどあればご指摘ください。</strong>
</p>

<br />
]]>
    </content>
</entry>

<entry>
    <title>iScrob - a perfect replacement for iPod app</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2010/08/iscrob_a_perfect_replacement_for_ipod_app.html" />
    <id>tag:microgroove.jp,2010:/shaolin//3.1006</id>

    <published>2010-08-10T10:45:00Z</published>
    <updated>2011-02-12T01:20:06Z</updated>

    <summary> 相変わらず、古式懐しく円盤回転メディア（CD、LP、EP、シングル盤、そしてSP盤）から直接音楽を聴く機会の多い私。 カセットのウォークマンやCDウォークマンを携帯してヘッドフォンで聴きながら外出していたのも遠い昔の思い出。もうここ10年程は、外出中にヘッドフォンなどを使って音楽を聴くこともなくなりました。 外出中は、世界中の生音を聞いてる方がよっぽど楽しいですからね。 静寂、喧騒、機械や車両の動作音、世間話、客寄せサウンド、虫や鳥や犬や猫のたてる音、赤ん坊の鳴き声、子供たちの元気な会話、殺伐とした空気感、耳なり、風の音、自分の鼓動、その他もろもろ。...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="MAC" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="くるま" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="iphone" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ipod" label="iPod" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iscrob" label="iScrob" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lastfm" label="Last.fm" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="scrobble" label="scrobble" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="scrobblepod" label="Scrobblepod" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
相変わらず、古式懐しく円盤回転メディア（CD、LP、EP、シングル盤、そしてSP盤）から直接音楽を聴く機会の多い私。
</p>

<p lang="ja">
カセットのウォークマンやCDウォークマンを携帯してヘッドフォンで聴きながら外出していたのも遠い昔の思い出。もうここ10年程は、外出中にヘッドフォンなどを使って音楽を聴くこともなくなりました。
</p>

<p lang="ja">
外出中は、世界中の生音を聞いてる方がよっぽど楽しいですからね。
</p>

<p lang="ja">
静寂、喧騒、機械や車両の動作音、世間話、客寄せサウンド、虫や鳥や犬や猫のたてる音、赤ん坊の鳴き声、子供たちの元気な会話、殺伐とした空気感、耳なり、風の音、自分の鼓動、その他もろもろ。
</p>]]>
        <![CDATA[<p lang="ja">
それはさておき、先月、生まれて初めていわゆる <a href="http://www.apple.com/jp/iphone/" target="_blank">スマートフォンの類</a> を購入しました。携帯音楽プレーヤでもあるわけで、ちょうど <a href="http://microgroove.jp/shaolin/2010/04/replacing_car_audio_for_renault_clio2_rs.html">USB入力を備えたiPod操作可能なカーオーディオユニット</a> に交換したところですし、くるまでお出かけする際には便利に利用しています。
</p>

<p lang="ja">
PCや携帯音楽プレーヤでまともに音楽を聴くことがほとんどなかった私にとっては、
<a href="http://www.lastfm.jp/download" target="_blank">Last.fm Scrobbler</a> なるものはほとんど意味をなさなかったわけですが、まあこれで自家用車運転中に聴いた音楽を scrobble することはできるようになりました。scrobble すること自体が（自分にとって）どれだけ意味があるのかは分かりませんが (笑)
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
で、問題の Last.fm Scrobbler for Mac。iPod scrobble がまったくといっていいほどまともに動いてくれない。
</p>

<p lang="ja">
先日バグ修正バージョンとして <a href="http://cdn.last.fm/client/ChangeLog.txt" target="_blank">1.5.4.26864</a> なるものがリリースされましたが、これもまだおかしい。iPhone でたくさん再生したとして、そのうち最後の数曲分しか scrobble されません。
</p>

<p lang="ja">
<a href="svn://svn.audioscrobbler.net/clientside/Last.fm">ソース</a> 見て直したろか、という程、Last.fm Scrobbler がないと困ってるわけでもなし。
</p>

<p lang="ja">
というか、せっかく 3G 回線や WiFi 回線で接続されてるんやから、iPhone 本体から直接 scrobble できたらそれでええんちゃうんかなあ。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
と思ったのが今朝の運転中。帰宅後、なんとなく App Store をぱらぱら見てたら、なんか素敵っぽいものを発見。<a href="http://itunes.apple.com/app/iscrob/id381910892?mt=8" target="_blank"><strong lang="en">iScrob</strong></a> ですと。<strong>無料</strong>。
</p>

<br />

<div style="text-align: center;">
<a href="http://iscrob.com/" target="_blank"><img class="link" title="[iScrob]" alt="[iScrob]" width="160" height="180" src="http://microgroove.jp/shaolin/img/iScrob.jpg" /></a>
</div>

<br />

<p lang="ja">
使い勝手は基本的に iPod アプリと同じです。ふつーに聴く分にはなんも変わらんといっていい。
</p>


<br />

<div style="text-align: center;">
<img class="link" title="[iScrob]" alt="[iScrob]" width="320" height="480" src="http://microgroove.jp/shaolin/img/iScrob_AlbumList.jpg" />
</div>

<br />

<p lang="ja">
違うのは、これで再生中にオンラインで Last.fm に scrobble してくれるということ。ネットワークがつながらないときは、つながるようになった時にまとめて scrobble してくれます。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[iScrob]" alt="[iScrob]" width="320" height="480" src="http://microgroove.jp/shaolin/img/iScrob_NowPlaying.jpg" />
</div>

<br />

<p lang="ja">
そして、バックグラウンド状態で操作する際（ホームボタンをダブルクリックして右にスライドしたら出てくる画面）でも、通常の iPod アプリを奪って iScrob が居座っているのが更にナイス。完全に iPod アプリの代替として機能してくれています。
</p>


<br />

<div style="text-align: center;">
<img class="link" title="[iScrob]" alt="[iScrob]" width="320" height="480" src="http://microgroove.jp/shaolin/img/iScrob_Background.jpg" />
</div>

<br />

<p lang="en">
Thanks <a href="http://iscrob.com/" target="_blank">David Patierno</a>-san for such a nifty iPhone app - it's just what I have been looking for! Definitely a perfect replacement for the in-stock iPod application!
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
<strong style="color: #ff6666;">後日談（2010/08/12）：</strong>
<br />
今のところ唯一の大きな不満。iPod app を完全に override しているわけではないので、iScrob で再生時、ドックコネクタ経由での再生トラック情報は正しく出力されていません。よって、iPhone/iPod をドックコネクタ経由で USB 接続などしてコントロールするオーディオセットやカーオーディオユニット側には、再生中の曲のタイトル・アーティスト・アルバム名、および再生ステータスなどは一切表示されません。代わりに、iScrob 動作中には裏で止まっている iPod app のステータス（例えば「STOPPED」など）が表示されます。
</p>

<p lang="ja">
恐らく同様の技術的理由により、iPhoneロック時にも、ロック画面に再生中トラック情報は表示されません。
</p>

<p lang="ja">
これが現時点で実装されていない（やりにくい）のには、いろいろと技術的（もしかしたらSDKの契約的?）な問題があるのかもしれません。JBしたScrobbleでは以前から実装していることのようですが。
</p>

<p lang="ja">
開発者の <a href="http://iscrob.com/" target="_blank">David Patierno</a> さんに聞いてみたところ、「ドックコネクタ経由で楽曲情報が出ていない件は、技術的には、ロック画面に曲の情報やアルバムアートが表示できないことと関係していそうだと感じる。現時点での制約上では難しそう。iOS 4.1 になってそれが可能になっていれば嬉しいし、可能になり次第 iScrob に実装するつもりだ。」とのことでした。
</p>

<br />

<p lang="ja">
<strong style="color: #ff6666;">後日談（2011/02/12）：</strong>
<br />
もうひとつ、致命的な不満を見つけてしまい、
結局、iScrob の使用をやめてしまいました。残念。
</p>

<p lang="ja">
iScrob で再生しても、再生履歴情報（再生回数、最終再生日時など）がライブラリには一切反映されない、というものです。これは、iScrob が iPod app とは別個のアプリケーションであることや、実装の方向性からくる制約といえるのかもしれません。
</p>

<p lang="ja">
やはり、再生そのものは iPod app にまかせて、再生情報だけうまいことバックグラウンドでひろったり Last.fm に scrobble したりしてくれるものがあれば、それに越したことはないのですが。そのためだけに JB するというのも。。。
</p>

<p lang="ja">
結局いまは、再生は普通の iPod app で、scrobble 自体は Mac 上の <a href="http://code.google.com/p/scrobblepod/" target="_blank"><strong>scrobblepod</strong></a> にお任せすることに。これで、iPod app の使用感そのままに、再生情報はきちんと保ったまま、Last.fm オフィシャルプラグインで頻発していた iTunes での sync 時のイライラ (考えられない程遅い、ちゃんと scrobble してくれない) からも解放されることになりました。
</p>]]>
    </content>
</entry>

<entry>
    <title>OSX から Samba 共有がマウントできない</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2010/07/cant_mount_samba_public_from_osx.html" />
    <id>tag:microgroove.jp,2010:/shaolin//3.1004</id>

    <published>2010-07-29T07:37:00Z</published>
    <updated>2010-07-29T07:41:54Z</updated>

    <summary> 自宅サーバ上で動作させている Samba、今まで特に問題なく自宅の他のマシン (Linux、Mac OSX、Windows) からマウントして使っていました。 それが昨日、突然ある1台のマシンからのみ、マウントできなくなってしまいました。 結局解決はできたのですが、なぜこうなったのかは未だに疑問です。 というわけで、以下、解決への流れを。...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="LINUX" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="MAC" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="finder" label="Finder" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="osx" label="OSX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="samba" label="Samba" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
自宅サーバ上で動作させている Samba、今まで特に問題なく自宅の他のマシン (Linux、Mac OSX、Windows) からマウントして使っていました。
</p>

<p lang="ja">
それが昨日、突然ある1台のマシンからのみ、マウントできなくなってしまいました。
</p>

<p lang="ja">
結局解決はできたのですが、なぜこうなったのかは未だに疑問です。
</p>

<p lang="ja">
というわけで、以下、解決への流れを。
</p>]]>
        <![CDATA[<p lang="ja">
自宅サーバ (Vine Linux 5.1/x86_64) 上で動かしている samba-3.3.10。
</p>

<p lang="ja">
その共有にアクセスしているクライアントマシンは以下の通り。
</p>

<ul lang="ja">
<li>VineSeed/ix86
<li>VineSeed/ppc
<li>Mac OS X 10.5.8 Intel
<li>Mac OS X 10.5.8 PowerPC
<li>Windows Vista Home Basic
<li>Windows Vista Home Premium
</ul>

<p lang="ja">
このうち、なぜか OSX Leopard PowerPC のみ、昨日の朝からマウント不可能になってしまいました。マウントできない時のメッセージは以下の通り。
</p>

<br />

<div style="text-align: center;">
<img alt="[OSX Finder - Mounting SMB Public]" src="http://microgroove.jp/shaolin/img/OSX_Finder_Smb_Mount_1.jpg" />
<br />
<br />
<img alt="[OSX Finder - Mounting SMB Public]" src="http://microgroove.jp/shaolin/img/OSX_Finder_Smb_Mount_2.jpg" />
<br />
<br />
<img alt="[OSX Finder - Mounting SMB Public]" src="http://microgroove.jp/shaolin/img/OSX_Finder_Smb_Mount_3.jpg" />
<br />
<br />
<img alt="[OSX Finder - Mounting SMB Public]" src="http://microgroove.jp/shaolin/img/OSX_Finder_Smb_Mount_4.jpg" />
</div>

<br />

<p lang="ja">
<strong>エラーコード -6602</strong> ってなんですか。。。
</p>

<p lang="ja">
マウントに失敗した時の Samba 側のエラーログはこんな感じ。
</p>

<br />

<pre style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
[2010/07/29 15:54:27,  0] lib/util_sock.c:matchname(1749)
  matchname: host name/address mismatch: ::ffff:192.168.0.251 != elmo
[2010/07/29 15:54:27,  0] lib/util_sock.c:get_peer_name(1870)
  Matchname failed on elmo ::ffff:192.168.0.251
[2010/07/29 15:54:27,  1] librpc/ndr/ndr.c:ndr_pull_error(467)
  ndr_pull_error(11): ndr_pull_advance by 536870910 failed
[2010/07/29 15:54:27,  1] librpc/ndr/ndr.c:ndr_pull_error(467)
  ndr_pull_error(11): Pull bytes 2
[2010/07/29 15:54:27,  0] rpc_server/srv_pipe.c:api_rpcTNP(2381)
  api_rpcTNP: srvsvc: SRVSVC_NETSHAREENUMALL failed.
</pre>

<br />

<p lang="ja">
はっきりいって、ようわからん。。。
</p>

<br />

<p lang="ja">
手動でマウントできるかどうかをターミナルから確認。
</p>

<br />

<pre style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
elmo:~ shaolin$ mkdir /tmp/hoge
elmo:~ shaolin$ mount_smbfs //homeuser:(パスワード)@oscar/Public /tmp/hoge
</pre>

<br />

<p lang="ja">
なんの問題もなくマウントされます。Finder にもフツーに登場。
</p>

<p lang="ja">
マウントに成功した時の Samba 側のエラーログはこんな感じ。
</p>

<br />

<pre style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
[2010/07/29 16:19:11,  0] lib/util_sock.c:matchname(1749)
  matchname: host name/address mismatch: ::ffff:192.168.0.251 != elmo
[2010/07/29 16:19:11,  0] lib/util_sock.c:get_peer_name(1870)
  Matchname failed on elmo ::ffff:192.168.0.251
[2010/07/29 16:19:11,  0] lib/util_sock.c:matchname(1749)
  matchname: host name/address mismatch: ::ffff:192.168.0.251 != elmo
[2010/07/29 16:19:11,  0] lib/util_sock.c:get_peer_name(1870)
  Matchname failed on elmo ::ffff:192.168.0.251
[2010/07/29 16:19:11,  1] smbd/service.c:make_connection_snum(1119)
  __ffff_192.168.0.251 (::ffff:192.168.0.251) connect to service public initiall
y as user homeuser (uid=570, gid=570) (pid 24231)
</pre>

<br />

<p lang="ja">
さて、何が違うのやら。
</p>

<br />

<p lang="ja">
そういえば、Finder からマウントした場合、普通は <code><strong>/Volumes/Public</strong></code> といった風に、<code>/Volumes</code> 以下にマウントポイントが作られるんやったよなぁ、と、以下を試す。
</p>

<br />

<pre style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
$ mkdir /Volumes/Public
mkdir: /Volumes/Public: Permission denied
</pre>

<br />

<p lang="ja">
ん? <code>/Volumes</code> のパーミッションがおかしいのか?
</p>

<br />

<pre style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
elmo:~ shaolin$ ls -lad /Volumes
drwxr-xr-x@ 5 root  admin  170 Jul 29 16:24 /Volumes
</pre>

<br />

<p lang="ja">
そらあかんわ。。。マウントしたくてもマウントポイントが作られなくてエラーになっていた、というところでしょうか。
</p>

<p lang="ja">
というか、なんでこうなってもうたんやろう。謎。ちなみにこの OSX Leopard PowerPC マシンは、ずっと立ち上げっぱなしでした。
</p>

<p lang="ja">
ちなみに、フツーの OSX ではこんな感じ (のはず)。
</p>

<br />

<pre style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
bart:~ shaolin$ ls -lad /Volumes
drwxrwxrwt@  3 root  admin   102  7 29 15:27 /Volumes
</pre>

<br />

<p lang="ja">
というわけでパーミッションを修正。
</p>

<br />

<pre style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
elmo:~ shaolin$ sudo chmod 1777 /Volumes 
Password:
elmo:~ shaolin$ ls -lad /Volumes 
drwxrwxrwt@ 5 root  admin  170 Jul 29 16:24 /Volumes
</pre>

<br />

<p lang="ja">
ついでに、なぜか Finder 上で <code>/Volumes</code> フォルダが見えるようになってたので、こちらも修正。
</p>

<br />

<pre style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
elmo:~ shaolin$ sudo SetFile -a V /Volumes
</pre>

<br />

<p lang="ja">
なんでパーミッションやら EA (拡張属性) やらが変わってしまってたのかは謎やけど、とりあえず意図する動作に戻ったということで、よしとしましょう。
</p>]]>
    </content>
</entry>

<entry>
    <title>Phoenix Slides</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2010/07/phoenix_slides.html" />
    <id>tag:microgroove.jp,2010:/shaolin//3.1003</id>

    <published>2010-07-19T02:28:00Z</published>
    <updated>2010-07-19T02:28:06Z</updated>

    <summary> てっとりばやく JPEG ロスレス回転させるのにはよさげ。 Phoenix Slides is a fast full-screen slideshow program/image browser, for flipping through folders or disks full of images. Phoenix Slides also does lossless JPEG transformations and can display EXIF data. It requires Mac OS X 10.3...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="MAC" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
てっとりばやく JPEG ロスレス回転させるのにはよさげ。
</p>

<blockquote lang="en">
<a href="http://blyt.net/phxslides/" target="_blank"><strong>Phoenix Slides</strong></a> is a fast full-screen slideshow program/image browser, for flipping through folders or disks full of images. Phoenix Slides also does lossless JPEG transformations and can display EXIF data. It requires Mac OS X 10.3 or later.
<br />
Version 1.2.6 released 2009 August 31 
</blockquote>]]>
        
    </content>
</entry>

<entry>
    <title>写真取り込み＆EXIF情報にあわせてファイル名を変更</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2010/07/osx_automator_script_for_renaming_files_using_exif_datetime.html" />
    <id>tag:microgroove.jp,2010:/shaolin//3.1002</id>

    <published>2010-07-12T12:17:00Z</published>
    <updated>2010-07-12T15:02:50Z</updated>

    <summary> デジタルカメラやメモリカード、iPhoneなどから、まったりと「イメージキャプチャ」で OSX 上に画像を取り込み、Exif.Photo.DateTimeOriginal の値に従ってファイル名を変更するための Automator 用シェルスクリプト。まったりと手抜きで書いてみたところ。...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="MAC" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="automator" label="Automator" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="bash" label="bash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="exiftool" label="exiftool" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="exiv2" label="exiv2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mac" label="Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="osx" label="OSX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="イメージキャプチャ" label="イメージキャプチャ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
デジタルカメラやメモリカード、iPhoneなどから、まったりと「イメージキャプチャ」で OSX 上に画像を取り込み、<code>Exif.Photo.DateTimeOriginal</code> の値に従ってファイル名を変更するための Automator 用シェルスクリプト。まったりと<strong>手抜き</strong>で書いてみたところ。
</p>]]>
        <![CDATA[<p lang="ja">
2010年7月10日14時20分40秒に撮影された <code>DSC_0035.JPG</code> を <code>20100710_142040_DSC_0035.JPG</code> にするイメージで。
</p>

<p lang="ja">
最初は <a href="http://www.sno.phy.queensu.ca/~phil/exiftool/" target="_blank">exiftool</a> を叩いていたんやけど、数百枚の画像取り込みとかだとリネームが卒倒しそうなくらい遅すぎるので、<a href="http://www.macports.org/">MacPorts</a> 使って <a href="http://www.exiv2.org/" target="_blank">exiv2</a> を入れることに。シェルスクリプトから叩く程度の安直さであれば、まあこの辺りが手をかける限界かなと。
</p>

<p lang="ja">
手元のマシンが G4 MDD Dual なので Leopard どまり。ということで Xcode 3.1.4 をとってきて入れたのちに <code>sudo port install exiv2</code> で準備完了。
</p>

<br />

<div style="text-align: center;">
<a href="http://microgroove.jp/shaolin/img/automator-L.jpg" onclick="window.open('http://microgroove.jp/shaolin/img/automator-L.jpg', 'popup', 'width=663,height=695,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img class="link" title="[Automator bash script]" alt="[Automator bash script]" width="350" height="368" src="http://microgroove.jp/shaolin/img/automator.jpg" /></a>
</div>

<br />

<pre style="padding: 5px; overflow: auto; border: solid 1px #CDE;">
# exiv2 は MacPorts で入れてるので path を追加
export PATH=${PATH}:/opt/local/bin

# exiv2 が見つからなければ終了
if ! which exiv2 2>&1 > /dev/null ; then
        exit 1
fi

for f in "$@"; do
        # EXIF にキー Exif.Photo.DateTimeOriginal が含まれている場合のみ
        if exiv2 -Pk "${f}" | grep -q Exif.Photo.DateTimeOriginal ; then
                DIR=$(dirname "${f}")
                ORIG_FILE=$(basename "${f}")
                # 既に日付がファイル名に含まれている場合はいったん削除
                NEW_FILE=$(echo "${ORIG_FILE}" | sed "s/\([0-9]\{8\}_\)\([0-9]\{6\}_\)*//")
                if [ "${ORIG_FILE}" != "${NEW_FILE}" ] ; then
                        if [ -f "${DIR}/${NEW_FILE}" ]; then
                                mv -f "${DIR}/${NEW_FILE}" "${DIR}/backup_${NEW_FILE}"
                        fi
                        mv -f "${DIR}/${ORIG_FILE}" "${DIR}/${NEW_FILE}"
                fi
                # EXIF データに基づいてファイル名を変更
                exiv2 -r'%Y%m%d_%H%M%S_:basename:' rename "${DIR}/${NEW_FILE}"
        fi
done
</pre>

<p lang="ja">
Automator ワークフロー上で「写真をダウンロード」の代わりに「選択された Finder 項目を取得」にすれば、既にディスク上に取り込んでいる画像ファイルのリネームにも使えます (が、肝心の「選択された Finder 項目を取得」自体が激遅なので、素直に Terminal からスクリプトを実行するのがいいかと)。
</p>

<p lang="ja">
いまどきはファイル名なんかは気にせずに、Picasa などで閲覧・管理というのが主流なんでしょうが、まあなんとなく。適当に手抜きで。
</p>]]>
    </content>
</entry>

<entry>
    <title>ルーテシア2 ダッシュボード脱着</title>
    <link rel="alternate" type="text/html" href="http://microgroove.jp/shaolin/2010/04/removing_dashboard_on_renault_clio2_ph1.html" />
    <id>tag:microgroove.jp,2010:/shaolin//3.993</id>

    <published>2010-04-29T13:30:00Z</published>
    <updated>2010-04-29T13:49:03Z</updated>

    <summary> 訳あって(笑)、再びダッシュボードを取り外すことになりました。 前回は、杉並サンクの古田さんに作業をお願いしましたが、その時に作業をじっくり見学させてもらったおかげで、今回は自力でさくっとできました。...</summary>
    <author>
        <name>Shaolin</name>
        <uri>http://microgroove.jp/</uri>
    </author>
    
        <category term="くるま" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="clio" label="Clio" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lutecia" label="Lutecia" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="renault" label="Renault" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ダッシュボード" label="ダッシュボード" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ルーテシア" label="ルーテシア" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://microgroove.jp/shaolin/">
        <![CDATA[<p lang="ja">
訳あって(笑)、再びダッシュボードを取り外すことになりました。
</p>

<p lang="ja">
<a href="http://microgroove.jp/shaolin/2010/04/replacing_car_audio_for_renault_clio2_rs.html">前回</a>は、杉並サンクの古田さんに作業をお願いしましたが、その時に作業をじっくり見学させてもらったおかげで、今回は自力でさくっとできました。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[Removing/refitting Clio2 ph1's dashboard]" alt="[Removing/refitting Clio2 ph1's dashboard]" width="400" height="300" src="http://microgroove.jp/shaolin/img/20100429_DSCF6675.jpg" />
</div>]]>
        <![CDATA[<p lang="ja">
取り外すべきネジは全部で9つです。
</p>

<br />

<ul lang="ja">
<li>ステアリングコラムカバー下部のネジ：2つ
<li>メーターパネル下部のネジ：2つ
<li>フロントガラス手前、デフロスター吹き出し口：3つ
<li>ダッシュボード左右の端：2つ
</ul>

<br />

<p lang="ja">
これに加え、Aピラーの内張りを外すだけです。
</p>

<p lang="ja">
以下、順番にみていきます。
</p>

<br />
<hr width="80%" />
<br />

<div style="text-align: center;">
<img class="link" title="[Removing/refitting Clio2 ph1's dashboard]" alt="[Removing/refitting Clio2 ph1's dashboard]" width="400" height="300" src="http://microgroove.jp/shaolin/img/20100429_DSCF6661.jpg" />
</div>

<br />

<p lang="ja">
ステアリングのチルトを一番上にあげ、ステアリングコラムカバー下の手前にある長い長いトルクスネジ2つを外します。サイズはT20です。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[Removing/refitting Clio2 ph1's dashboard]" alt="[Removing/refitting Clio2 ph1's dashboard]" width="400" height="300" src="http://microgroove.jp/shaolin/img/20100429_DSCF6664.jpg" />
</div>

<br />

<p lang="ja">
辛抱強く回していると、トルクスネジの頭が現れます。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
外し終わったら、ステアリングのチルトを一番下におろし、ステアリングコラムカバー上部をゆっくり外します。奥の方が爪の形状になっているので、折ったり割ったりしないように注意します。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[Removing/refitting Clio2 ph1's dashboard]" alt="[Removing/refitting Clio2 ph1's dashboard]" width="400" height="300" src="http://microgroove.jp/shaolin/img/20100429_DSCF6665.jpg" />
</div>

<br />

<p lang="ja">
ステアリングコラムカバーを外すと、上のようになります。
スピードメーター下部に、再びトルクスネジ2つ (T20) が現れますので、外します。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
続いて、Aピラーの内張り外しにかかります。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[Removing/refitting Clio2 ph1's dashboard]" alt="[Removing/refitting Clio2 ph1's dashboard]" width="300" height="400" src="http://microgroove.jp/shaolin/img/20100429_DSCF6666.jpg" />
</div>

<br />

<p lang="ja">
ウェザーストリップゴムが、Aピラーの内張りの上に被さっている格好となりますので、まず、Aピラー周りのウェザーストリップゴムを外しておきます。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[Removing/refitting Clio2 ph1's dashboard]" alt="[Removing/refitting Clio2 ph1's dashboard]" width="300" height="400" src="http://microgroove.jp/shaolin/img/20100429_DSCF6667.jpg" />
</div>

<br />

<p lang="ja">
一箇所を除いてスナップでとまっているだけですので、軽く引っ張りながらぱちぱちと内張りを浮かせていきます。上の方で一箇所、爪でとまっている箇所がありますので、浮いた隙間から指を入れて爪を外します。その後、ゆっくりと上に引っ張りあげると、Aピラー内張りを外すことができます。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[Removing/refitting Clio2 ph1's dashboard]" alt="[Removing/refitting Clio2 ph1's dashboard]" width="400" height="300" src="http://microgroove.jp/shaolin/img/20100429_DSCF6669.jpg" />
</div>

<br />

<p lang="ja">
反対側のAピラー内張りも同様に外します。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
次に、ダッシュボード両脇 (Aピラーの下、左側はヒューズボックスの上) にあるトルクスネジを外します。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[Removing/refitting Clio2 ph1's dashboard]" alt="[Removing/refitting Clio2 ph1's dashboard]" width="400" height="300" src="http://microgroove.jp/shaolin/img/20100429_DSCF6673.jpg" />
</div>

<br />

<p lang="ja">
<a href="http://www.yowdow.com/car/d-board-1.htm" target="_blank">ワッキーさんのサイト</a> で解説されているフェーズ2 RXT では、T30 サイズとのことですが、わたしのフェーズ1 RS では T20 サイズでした。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
最後に、フロントガラス手前、ダッシュボード最前面のデフロスター吹き出し口の中に隠れているネジ3つ (T20) を外します。左端、真ん中、右端に1つづつあります。
</p>

<p lang="ja">
外し終わったら、デフロスターに指をかけ、ゆっくりと手前に引っ張ります。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[Removing/refitting Clio2 ph1's dashboard]" alt="[Removing/refitting Clio2 ph1's dashboard]" width="400" height="300" src="http://microgroove.jp/shaolin/img/20100429_DSCF6675.jpg" />
</div>

<br />

<p lang="ja">
すると、ダッシュボード全体が外れてきます。
</p>

<p lang="ja">
なんとたったこれだけの作業。あっけない程簡単でした。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
で、今回ダッシュボードを再び脱着するハメになった理由。
</p>

<p lang="ja">
<a href="http://microgroove.jp/shaolin/2010/04/replacing_car_audio_for_renault_clio2_rs.html">前回</a> サンクで作業して頂いた際、ついでにダッシュボード上のツイーターの配線を外したのでした。どうもツイーターからの高音域が強すぎて、全体的にシャリシャリと聴こえてしまうような気がしたもので。
</p>

<p lang="ja">
ところが、いざツイーターを無効にした状態で聴いてみると、今度は締まりのない腰砕けの音しか出てこなくなりました。フロントドアに取り付けられている純正スピーカー (13cm) は、大した音は出ないとはいえ、いちおうセパレート (同軸フルレンジなどではない) ですから、高音域を失った状態では、とても聴けたものではなくなってしまったという訳です。
</p>

<p lang="ja">
これを機に、フロントスピーカーを同軸フルレンジのものに交換してもよかったのですが、余計なことをしたばっかりに次々支出を増やしてしまうのも考えものです。
</p>

<p lang="ja">
とりあえず今回は、再びツイーターを戻して様子をみた方がよかろう、というわけで、ダッシュボード再脱着に至ったのでありました。。。キツめの高音域は、ユニットのイコライジングで微調整してしのぐことに。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
ところで13cm同軸フルレンジ、例によって海外では激安ものからお高いものまで豊富にラインアップされているようですが、日本国内ではやや選択肢が少ないような気がします。
</p>

<p lang="ja">
今の純正スピーカに寿命がきたあとで、テキトーにヤフオクなどで買えばいいかな、と思っているところです。とはいえ、クリオ/ルーテシア2のフロントスピーカの取付スペースもいろいろ制限がある (特に奥行き) ようですので、やっぱり海外から入れた方が無難なのかな。。。
</p>

<p lang="ja">
ま、今すぐ必要になるものではないので、いいんですけど。
</p>

<br />
<hr width="80%" />
<br />

<p lang="ja">
おまけ。
</p>

<p lang="ja">
<a href="http://microgroove.jp/shaolin/2010/04/replacing_car_audio_for_renault_clio2_rs.html">前回</a> 書いた通り、アンサーバック付きキーレスエントリ取り付けを杉並サンクで行ってもらったところ、アンサーバック用のダイオードが不良品のため、ウィンカレバーを操作するとハザード点滅になってしまっていました。クレーム扱いで部品を取り寄せて下さり、本日再びダイオード取付となったのでした。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[my Clio/Lutecia2 in maintainance]" alt="[my Clio/Lutecia2 in maintainance]" width="400" height="300" src="http://microgroove.jp/shaolin/img/20100429_DSCF6678.jpg" />
<br />
<em>(再び作業してもらっている最中のるーちゃん)</em>
</div>

<br />

<p lang="ja">
というわけで、今度は不良品ではなく、きちんとウィンカも作動し、同時に施錠・解錠時のハザードアンサーバックも動作するようになりました。ちゃんちゃん。
</p>

<br />

<div style="text-align: center;">
<img class="link" title="[Renault Twingo Easy Soft Top Convertible]" alt="[Renault Twingo Easy Soft Top Convertible]" width="400" height="300" src="http://microgroove.jp/shaolin/img/20100429_DSCF6676.jpg" />
<br />
<em>(サンクのお客さんのトゥインゴ・イージー・キャンパストップ)</em>
</div>
]]>
    </content>
</entry>

</feed>

