2013-12-28

IPv6の特殊なアドレスについて

RFC6890をちゃんと見たら色々あったので。

IPv4互換アドレス/IPv4-Compatible IPv6 address(廃止済み)
かつてあったんですがIPv6自動トンネリングが廃止になったので一緒に亡くなりました。無意味に使うのやめましょう。

  • ::/96

Loopback Address(RFC4291)

  • ::1/128
Unspecified Address(RFC4291)

  • ::/128
IPv4-IPv6 Translat/IPv4-Embedded IPv6 Address(RFC6052)

  • 64:ff9b::/96
IPv4射影アドレス/IPv4-Mapped IPv6 Address(RFC4291)

  • ::ffff:0:0/96
Discard-Only Address Block(RFC6666)

  • 100::/64
IETF Protocol Assignments(RFC2928)

  • 2001::/23
TEREDO(RFC4380)

  • 2001::/32
Benchmarking(RFC5180)

  • 2001:2::/48
Documentation(RFC3849)

  • 2001:db8::/32
ORCHID(RFC4843)

  • 2001:10::/28
6to4(RFC3056)

  • 2002::/16
Unique-Local(RFC4193)

  • fc00::/7
Linked-Scoped Unicast(RFC4291)

  • fe80::/10


2013-12-10

apt-X、君に決めた!

煽りタイトルですがお気になさらず。

元々オーディオは好きで、ピュアオーディオにはのめり込んでいないもののイヤホンにはそれなりのこだわりを持っていると自負する程度には嗜んでいました。

電源(バッテリー)、ネットワークが有線接続から無線接続に移り変わっていき、当然オーディオの接続もワイヤレスになっていった・・・かな?*1
段々とオーディオでもヘッドフォンがワイヤレスになっていって。でも、ワイヤレスヘッドホンは送信側と受信側で各メーカー縛りがあるのが当たり前、標準化されている方法としてBluetooth(SBC)は存在するけどもいつまで経っても音質には目を向けてくれそうにない。

そんな悶々とした状況が続いている中、ベンダー実装でありながらも高音質/低遅延にフォーカスした技術が段々と広まりつつあります。やっと。その名はapt-X(aptXでもいいみたい)

ずっと高音質のBluetoothオーディオを待っていたので、2011年の終わりくらいに存在を知ってからは「早く普及しないかな~」と思っていたのだけど、ここ最近になってようやく一般的に名前の知られているメーカーもapt-X対応のイヤホンをリリースし始めた。でもハイエンドモデルのみ。

ハイエンドモデルということはまず最初に値段が高いということも意味していて、日本円にすると2万円とか3万円とか。その値付けだとリスクテイクできないし、むしろイヤホンは自前のモノを使いたい。*2 Bluetooth受信機。そんな製品はあるのか→Bluetoothレシーバー(マスな市場ではカテゴリとして確立してない)。でもって今回ようやくBTオーディオデビューしてみました。買ったのはAVANTALK(Avantree)のBTTC-200X *3。


ここからが本題
BTTC-200X使うとこんなことが出来るよ。

  • 廉価でaptX受信(3.5mmプラグ)
  • 廉価でaptX送信(3.5mmプラグをLine out等から引っ張ってくる)
  • 充電しながら使用(これができるのが結構少ない。使う前に充電を始めておく必要はある。)

一方で、こんなことが出来ないよ。

  • この製品は受信専用モードか送信専用モードでしか動かないので、ヘッドセットを繋いで通話するとか無理。
  • 送信機として使う場合の評判(特に音質)はそれほど芳しくない。まぁアナログ入力ですし。
  • クリップとか付いてないので、持ち運ぶときはポケット必要(本体は軽いので、服に挟めたりすると便利だなーという)。裏は滑り止め素材が貼られているので、置いて使う分にはたぶん便利
  • ペアリング先は一つだけなので、再生機器が複数の場合、ペアリングし直す必要あり


で、今回はスマホ(HTL22)をBluetooth送信側(apt-X対応)、BTTC-200Xを受信側、そこから接続する受信イヤホンはbeyerdynamicのDTX 100という構成で使います。

軽くレビュー
良いよ。超いい。ライブものの動画とかを聴くと特にいい。どう考えても今年のベストバイです。本当にありがとうございました。
俺程度の耳なら有線で繋いでるのと変わらなく聞こえる。少なくとも、使うイヤホンの違いは完全に分かる(無線で繋いでいることがボトルネックになっていない)

短所は、伝送距離。スペック上は10mになってるけど、壁挟むと危うい。特に外で使ってる時とか途切れることもある。こればっかりは環境依存なので一概には言えないし、Bluetoothみたいな小さい電力で動いてる機器なのである程度は仕方ないと割り切るしかという実感。

今知ったのですが
サンワサプライで同じものを売っている *4 ようです。故障時のサポートとか考えるとこっちのほうが安全は安全かなと。

*1 ラジオとかかなり昔から電波に乗ってたし、ワイヤレスマイクは普及していたので
*2 自分好みの音にあわせやすい
*3 http://www.avantree.com/Product-Bluetooth-transmitter-and-receiver-Avantree-Saturn_632.html
*4 http://direct.sanwa.co.jp/ItemPage/400-BTAD002

2013-11-09

ネスレ日本株式会社からNexus7とGoogle Play500円プレゼントが届く!

薄れつつも留めていた記憶の中で
ここ最近、少し浮ついていました。それは何故か。去る9月、Android4.4 コードネーム"KitKat”発表から程なくして発表された「ネスレによるNexus7プレゼントキャンペーン」[1]に応募していたのです。[2]

このキャンペーンの概要を見た時に、今まで懸賞に縁がなかった自分でももしかしたら当たるかもと思わせていた要素はいくつかあって、

  • 応募締め切りが分割されている(2013/10/25、2013/12/10、2014/2/28)
  • 初回の締め切りが年末ではない
  • 当選口数が多い(各1000名)
  • どう考えても普段キットカットを買う層とプレゼントがほしい層が分離している[3]
まぁ言っても「当選は商品の発送をもって発表と変えさせていただきます」パターンなのだけども、コツコツ買って応募するタイプの人は初回締め切りまでに5枚買わない可能性があるので、初回の締め切りに頑張ればかなり倍率低いんじゃないかと踏んでいたことも有り。発表の翌日くらいに徐にキットカットを5個買って1口だけ応募したのでありますよ。

10月末に締め切りがあったのはなんとなく覚えていたので、今月に入ってから「やっぱり当たらなかったかー」と思っていましたが。
そうしたら昨日夜、クロネコメンバーズからメールがあり、ネスレ日本株式会社から荷物と。無事受け取って今に至ります。

開封の儀
なんかやたら軽かったので「あれ?副賞にドロイドくん人形かなんかあったかな?」と思ったのは内緒。
軽いのもあるけど、小さいのにもびっくり。
ネスレ日本から。
500円ぶんのプロモーションコードは隠させていただきましたがご当選おめでとうございます!
Nexus7。
16GB Wi-Fi版。

というわけで、7吋タブレットはHUAWEI MediaPad(S7-301u)があるのですが、フルHD、Qi、NFCとそれはそれでとても魅力的ではあるので、じっくり使いたいと思います。

[1] http://www.nestle.jp/brand/kit/40thcampaign/present.html
[2] 普段チョコレートは食べないのだけど、応募するためだけにキットカットを買ったという
[3] そのギャップを埋めるためのキャンペーンだとは思う

2013-10-30

sudoを使わない理由

概要
弊ブログを見て戴いている方には
「なんでこの人はLinux使っているのにsudo使ってないんだろう」
という疑問を持つ方がいるかもしれない。
このエントリは、そんな疑問を持った人に対する私なりの回答である。

sudoとは
sudoというのは、最近のLinuxディストリビューションではかなりデフォルト導入率の高い[1]、「他のユーザとしてコマンドを実行する」ためのコマンドである。
また、他のユーザとしてコマンドを実行する時に【自ユーザのパスワードをcredentialとして使用する】のも大きな特徴。

古くからUNIXでは、su(substitute user)というコマンドで、ターミナル上での実行ユーザの切り替えを行ってきたが、最近ではAndroidでroot権限が必要な場合にsuをインストールする手順があるので、こっち経由で知っている人も多いかもしれない。
sudoを使うと、sudo以降にタイプしたコマンドを、(suでユーザ変更することなく)自分以外のユーザで実行できるということである。

sudoが嫌いな理由
ここからは自分がsudoを使わずにsuを使う理由を並べていく。
  • 毎回sudoって打つのが面倒
使い勝手の面ではこれが最大の嫌いな理由である。例えば「あーaptで更新したいなー」と思った時に
$ sudo apt-get update
[sudo] password for hogehoge:
$ sudo apt-get upgrade
必要なステップは3つ。ただし事前に認証済みで、認証が残っていればパスワードは聞かれないので2つ。この2つだったり3つだったり感。
一方で、普通にsuして同じコマンドを実行する場合は
$ su -
パスワード:
# apt-get update
# apt-get upgrade
必要なステップは常に3つ(パスワード入力を1とするなら4つ)だが、コマンド打ってる途中にパスワードを入れるという混乱が起こらないのでこっちのがいいなぁ。

  • 一般ユーザのパスワードに他ユーザの履歴が混じって記録される
いまどきのインタラクティブシェルは大概コマンドの履歴を保持する機能を持っていて、すぼらなユーザが「あの時どんな引数使ったかなぁ」なんて時にhistoryコマンドで実行履歴を参照されるので、最近実行したコマンドは引数含めて確認が簡単にできる。
のはいいのだが、sudo使うとsudoコマンドの履歴も一般ユーザのhistoryに残るので、root権限の必要なコマンドが一般ユーザの履歴に残る。更に、【sudoは認証に自ユーザのパスワードを使うので、どんなに重要なコマンドであってもそのユーザが実行できてしまう】状態になる。個人的にはセキュリティ考えると一般ユーザでログインされた時点で全部クラックされたも同然なのでなんで問題にならないんだろうと前から思っているのだが。

sudoを使うメリット
では、sudoを使うメリットとは何なんだろうか。
  • 実行履歴をロギングできる
sudo自体は2通りのロギングの仕組みを持っている。syslogのファシリティを設定することでsyslogに渡す事もできるし、sudo自体のログ機構も使うことができる。特に大事な設定を変更する場合は監査目的で保持したほうが良い場合があるので、そういった場面ではコマンド履歴をロギングできるというのは非常に有用であると思う。[2]

なので、企業内でsudoを使うというのは妥当な理由があると思う。そもそもsudoを使わないとできない操作はchrootとか使えばいくらでも代替できるので、クリティカルなサーバでは存在しないのではないかとも思うが。

sudoを使うメリット?
sudoの使い方と合わせて合理的っぽい理由として書かれている利点に

  • ssh/telnetでrootログインされる心配がない
というのがあるが、これ本当だろうか。心配がないというのは本当なんだが、(インターネット経由での)telnet自体はもう使われないとしてsshログインに話を限定すると、

  • 大抵の場合、sshdはデフォルトでrootログインを許可していない(PermitRootLoginの設定)
  • 外部公開する場合、sshdは公開鍵認証にするのが普通なので、それが破れている時点でrootを破られてもsudoersされてる一般ユーザを破られても大して変わらないのではないか
  • sshdの脆弱性を突かれる可能性はあるが、opensshとsudoだとsudoの方がセキュリティパッチ当たる頻度が高いのでsudo使うほうが危なくないか

というのが個人的な意見である。

sudoじゃなくてsuでrootユーザになれるようにする
最近のLinuxディストリビューションでは、インストール時にも一般ユーザの設定しかしないし、実際にインストール後にsu -しようとしてもパスワードが一致しない。これは設定されていないrootのパスワードに合わせる方法が存在しないからである。ということで、rootのパスワードを設定することでsuからrootになれるようにするのが、インストール後最近一番最初にやることになっている。
でもどうやって?sudoを使って。

rootユーザのパスワードを設定するのはroot権限が必要。でもrootユーザのパスワードが設定されていないのでsu - rootができない。ならばsudoを使うしかない。
$ sudo passwd root
New UNIX password:
Retype new UNIX password:
んで、sudoグループに入っているとsudoが使えてしまう(sudoersの設定による)ので、sudoグループから抜ける。
まずはどのグループに入ってるか確認
$ id -a
uid=1000(hogehoge) gid=1000(hogehoge) groups=1000(hogehoge),27(sudo),111(fuse),122(kvm),123(libvirt)
rootになってusermod。
$ su - root
# usermod -G hogehoge,fuse,kvm,libvirt hogehoge
C-dで戻って
$ id -a
uid=1000(hogehoge) gid=1000(hogehoge) groups=1000(hogehoge),111(fuse),122(kvm),123(libvirt)
sudoできなくなったことを確認
$ sudo apt-get update
[sudo] password for hogehoge: 
hogehoge は sudoers ファイル内にありません。この事象は記録・報告されます。
以上。


[1] Ubuntuがデフォルトで使っていたからという理由が一番大きそうだが
[2] ちゃんと活用できれば、の話だが

2013-10-20

ibusではなくfcitxを使う

(2014/06/21更新)
このエントリの内容ですが今やると一部思い通りにならないので、新しくエントリ書きました。参考になれば幸いです。
LMDE UP8(MATE)での日本語入力にfcitxを使う

概要
ここ最近ではデスクトップLinux上の日本語入力にibusとmozc(Google日本語入力のオープンソースプロダクト)を組み合わせて使っていましたが、ibusの1.5に伴う仕様変更がどうもインパクトが超大きい[1]みたいなので、とりあえずibusの代替としてfcitxを使ってみます。環境はDebian GNU/Linuxのtesting(かつLMDE)。

手順
# apt-get install fcitx fcitx-mozc
(20140222更新  im-configがインストールされていない場合はim-configパッケージをインストールしておく。)
# im-config -c
20140222追加 # apt-get install  fcitx-config-gtk fcitx-config-gtk2 fcitx-frontend-gtk2 fcitx-frontend-gtk3 mozc-utils-gui

Xを抜けてログインし直す。
設定→Fcitx設定を選ぶ。
mozcがあるはず。
オンオフのキーに最初Ctrl+SpaceのUNIXでおなじみの組み合わせが指定されていますが、私の場合Eclipseの補完とかぶるので全角半角にしました(結果的に2つ全角半角を指定していることになっていますが)
mozcの設定はGNOMEタスクトレイのキーボードアイコンを右クリック→Mozcツール→設定ツールから。
元々設定した値がそのまま設定されていました。手順は以上。

参考サイト
Fcitxのテストのお願い - いくやの斬鉄日記 http://blog.goo.ne.jp/ikunya/e/a5c2a00e25564c61d322c4c73b7a81da
Debian -- sid の fcitx パッケージに関する詳細 http://packages.debian.org/ja/sid/fcitx

追記(2013/11/06)
Fcitxを使い始めて1週間ほど経つものの、万全ではない感は感じている。
というのは、一旦Fcitxが起動してMozcに切り替われば何の問題もないのだけど、結構な頻度で「Mozcって表示されるけど日本語入力ができない」状態に陥っていて、手元で試す限りでは原因も(確実な)回避策も見つかっていない。設定が関係している可能性もあるし。

このエントリの前半で記載したように、Fcitxへの切り替えに「半角/全角」キーを使っているのだけど、その時に「Mozc」と表示されるけど英字入力のままになってしまうけど、何回か試すとMozcで処理できるようになっている時があるので、そうなるまで「半角/全角」キーを何回も押して試すという残念な回避方法でしのいでいる。
一旦Mozcに移れば基本的には問題ないので、できるだけこれを保てるように、Mozcで英字を打っておいてF10キーで半角英数に変換するというこちらも残念なワークアラウンド。

追記(2013/11/17)
どうもターミナルから起動したアプリでFcitxが起動できなくて若干困り中。
気休めにQtでの設定をしてみる。
# apt-get install qt4-qtconfig
qtconfigで起動したQt設定ツールの「インターフェース」タブからデフォルトのインプットメソッドを「fcitx」に設定する。これでQtのアプリでもFcitxが使える・・・ようになるのかなぁ。

そいでもって、GTK側のアプリは環境変数GTK_IM_MODULEの値を見ているようで、自分とこの環境だと~/.bashrcに書いてあったので、他とまとめて

export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx

と変更。

[1] キーボードの配列とIMが紐付けられてしまって変更できなくなった。英語配列のキーボードだとmozc使えないらしい。

2013-07-18

そういう人達である、と認識することと、受け流すこと

いくつかの国の人と触れ合ったので
先日、ガイアの夜明け[1]で、外国人観光客を受け入れるという趣の放送をしていた。
ものすごく大雑把にまとめると、

  • 大阪に外国人観光客を誘致する活動の一環として、シンガポールのTV局に番組を作ってもらったり、マレーシアに売り込みに行ったり。古い町並みが残る地域を台湾の女性が旅したり。
  • 富士山の御殿場口が人気ないので、砂駆け下りとかで何とかしよう。
  • 鳥取の境港を大きな客船が寄港できるように整備したので売り込もう。

くらいの内容だった。
我々日本人は、悲しいかな外国人慣れしていない民族であることは間違いないので、普段触れ合う人達はみな日本で生まれ育ち、日本語で会話をする。これが日常。異文化と接することが少ない。
ただ、外貨を得る為の手段として、観光は非常に有効な手段であり、そう思う理由もたくさんある。

  • アジアのライジング・サンと呼ばれ、短期間で経済発展を遂げた
  • 国土が南北に長く、四季がある
  • 独自文化がまだ色濃く残っている

ライジング・サンはフィリピンに行った時に本当によく言われた。個人的にはライジングはもう終わって日没に入っていると思うので意外だったのだが。
北海道は北欧並の雪質でスノーリゾートが楽しめる(オーストラリア人に人気のニセコがいい例)し、沖縄は温暖。林檎が美味しい。桜も咲く。
茶道や芸者など、日本固有の文化もある。音楽とかのポップカルチャーは日本以外では成立し得ないのではないか。

仕事で海外から来る人を除けば、わざわざ物価の高い日本に来てまで旅行者が期待するのは「日本でないと体験できないこと(日本らしさ)」なので、このあたりを自覚してビジネスに繋げられれば観光立国も夢ではないのかもしれないと思う。

ただ、それを武器にするにはこれらのストロングポイントを知ってもらうことがまず第一。そのあたりの経験の無さが普段日本人としか接しない我々の弱点だと思う。基本的に相手は日本の場所すら知らないくらいの認識で行かないとビジネスにはならないし相手の満足にも程遠い。おもてなしゼロ。

ここからが本題

先に挙げた台湾女性客は大阪のレトロな町並みを楽しんで、女性向け雑貨屋で化粧筆?か何かを買って満足していった。一方で、境港に客船で寄港した韓国人観光客は、セルフでどんぶり飯の上に具材を盛り付けて食べる海鮮丼を日本語の説明しか受けなかったからわからなかったと帰国後にクレームを付けた。
ここに国民性が出ている。韓国人は常に自分たちが良いサービスを受けられると思っているし、そうされなかったら何しても問題ないと思っている。簡単に言うと、常に「何か不都合があったらとりあえず自分たち以外が悪い」マインドなんである。評価する機会があったら必ず最低の評価を付ける。
確かに、ご飯の上に自分たちで盛り付けるところの写真も無いし、もちろん韓国語メニューもあるはずがない。
このお店では、クレーム(英語のclaimではなくてcomplainだったんだと思う)を受けたことで、盛り付ける写真と韓国語の説明を準備するようになった(ようだ)。これは失敗を繰り返さないという意味で大事なこと。[2]
日本軍がひどい植民地支配をしていたにも関わらず東南アジアの国から尊敬される理由の一つが「改良を継続すること」。不都合があったら修正するのは当たり前。だけどもそれを絶えず続ける事は難しい。だけど我々日本人はそれを常日頃から習慣にしていて苦手な事ではない。このレストランの対応は日本人にできるやり方を表していて、大事なことだと感じた。

また、大事なことは、外国人の国民性を理解して、真に受けないように受け流すこと。地球上の全ての人が日本人と同じ教育を受けて、育ってきた訳ではない事を覚えておくこと。

ちなみに、知り合いの韓国人は(議会が総理大臣を指名する)総理大臣制を知らなかった(大統領制しか知らなかった)。戦後すぐの日本が食べるものもなく、社会が不安定な時代があった事も知らなかった。もちろん全員が隣国の事をそこまで知らない事はないけど、現実としてそれも国民性。そういう人達なんだという事を理解して、深く考えないことがビジネスをしていく上で一番大事。

[1] http://www.tv-tokyo.co.jp/gaia/backnumber3/preview_20130716.html
[2] 歴史を勉強するのは失敗を繰り返さない為。だから間違った歴史を教えないことが重要。間違った歴史を教えると、そこから生まれる歪を誤魔化すために不整合が止まらなくなる。

2013-07-08

IPv4の色々なアドレスについて(覚書)

もうグローバルアドレスとしては在庫がなくなっているIPv4ですが、いくつかある特殊なアドレスが今どうなっているか確認したので覚書。

IPv4のPrivate Address
RFC1918 Address Allocation for Private Internets[1]
  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
IPv4のISP Shared Address(LSN用)
RFC6598 ISP Shared Address[2]
  •  100.64.0.0/10
IPv4のLink Local Address
RFC6890 Special-Purpose IP Address Registries[3]
  • 169.254.0.0/16

他にも色々な定義がRFC6890にある。

[1] http://tools.ietf.org/html/rfc1918
[2] http://tools.ietf.org/html/rfc6598
[3] http://tools.ietf.org/html/rfc6890

2013-06-06

myPhone A818g Duoを買った

端末使用目的

長いこと使い続けているHTC Desire(UK)がもうそろそろお役御免でもいいかなと思って、以下の点を気にしながら値段が安かったので買ってみることに。主に海外でのモバルーとちょっとした用途。

  • 画面が小さい、重くない
  • そんなに遅くない
  • OSは新しめ
  • SDが付く
  • できれば2SIM

というわけで、実際のmyPhone A818g Duoのスペックを。

  • 3.5インチ画面(非IPS) 320x480(HVGA)
  • 3.2Mpxカメラ、リアカメラ・フロントカメラ
  • MT6577 (Cortex-A9 2Core 1GHz)
  • RAM 474MB(たぶん512MBのうちいくばくか共有)
  • ストレージ 0.98GB+1.55GB MicroSDHCで拡張可能
  • デュアルSIMスロット(SIM1:UMTS/GSM、SIM2:GSM)
  • Android OS 4.1.1 JRO03C
  • Google Playストア あり
  • Dual Band 3G(900/2100?)
  • ボタンは音量上下、電源と画面下に左からメニュー、ホーム、戻るの電子ボタン

ということで、今の煌びやかなフラッグシップ端末と比べると申し訳ないくらい貧弱感はありますがこれでいいんです。お値段はPHP3990(日本円でいくらかはアベノミクス中なので各自計算していただきたいのですが買ったときレートは10000円弱(9000円強))です。
ちょっと手間だったのは日本語ロケールを選べなかったのでMore Locale2を入れて無事に日本語化。毎度お世話になります。ちなみにモトヤが入ってたので日本語ロケールの場合は中華フォントにはなりません(4.1ですし)。

ちなみに、A818シリーズは同じ筐体を使っているようで、A818iというもっと廉価(PHP1000安い)なモデルもありますがこちらはCPUが1コアでOSがGingerbreadなので購入するつもりであればよくご確認を。

というわけでざっと使用感とか。

さすがに触ってない端末を買うのは怖かったので、購入前に「Can I touch this?」と聞いたら快くおねぇさんが実物を出してくれました。海外で端末を買ったのは初めてですがこれが一般的みたいで良かったです。
購入前にチェックしたのは、ホームボタンで一覧を出した後のスクロールの速さとかいくつかのアプリの起動速度とか。普通に使う分にはなんら困らなさそうだったのですんなり購入へ(まぁ解像度もちっちゃいし有利かもしれませんが)。

スクリーンショットの取得は音量下と電源同時押し2秒くらいキープ。
あとは3G電波をDesire並みにつかんでくれるかと、壊れるかどうか(やたら日本人のmyPhone評が壊れるばっかりなので)。できるだけ長く使えることを期待しています。


2013-03-18

MediaPad(S7-301u)にカスタムROMを入れる

古い方のMediaPad

HUAWEIの7インチタブレットMediaPadは2011年に発売されて、当時の7インチタブレットとしては多分初めての1280x800解像度とAndroid3.2を搭載して発売されました。

結局日本の認証機関を通っているものの国内で発売はされずという悲しい結末を迎えることがほぼ間違いありません。

発売後ほどなくしてS7-301uを購入(輸入)したのですが、月日が流れ、その後提供されたICSをもってしても最新ではないので徐々に何とかしたい欲が生まれてくるものです。(外にも持ち歩いているのですが出番はあまりないイメージ。図書館で動画見る時に使ったりはしましたが)

ちなみに.、ファームウェアは英語と中国語(簡体字)で提供されています。中身はそれぞれ違うので要注意。
英語(Softwareの中) http://www.huaweidevice.com/worldwide/technicaIndex.do?method=gotoProductSupport&productId=3779
中国語(軟件下載の中) http://www.huaweidevice.com/cn/technicaIndex.do?method=gotoProductSupport&productId=3807

カスタムROMの種類(Android4.2ベース)

このエントリ記載時点の情報として、2つのカスタムROMを記載します。
AOKP for MediaPad Unofficial Nightlies(4.2.2)
http://forum.xda-developers.com/showthread.php?t=2131218

CM10.1 for Huawei Mediapad(4.2.2)
http://forum.xda-developers.com/showthread.php?t=2045808

どちらもBluetoothが動かないという点があります。他にHDMI周りとUSBストレージ(マウントポイントが特殊だから?)とWi-Fiテザリングができないという点もあるようなので導入するつもりの方はご確認を。自己責任です。

CM10.1を入れる

ということでCM10.1の方を入れてみることにします。記載されている主な手順は以下。

  1. HUAWEIのストックROM(4.0.3)を入れておく
  2. TWRPかCWMのインストールが必要。自動インストーラのZIPをPCにダウンロードして、展開。install_recovery.cmdを実行して表示される指示に従う(WindowsのPCが必要ですね・・・)
  3. CyanogenMod 10 for Huawei MediapadとGoogle appsをダウンロードして、内蔵又は外付けSDに配置。
  4. TWRPかCWMを起動して、バックアップに同意します(これでストックROMのフルバックアップが取れます)
  5. もし以前のCM10又はParanoidAndroidをflashしたい場合はこのパートをスキップ、もしストックROMかAOKPから来た場合は、Wipeを選んでFactory Resetを選んで操作に同意。
  6. backを押してインストールを選択、ダウンロードしたROMのzipを見つけたら選んで操作に同意
  7. backを押してインストールを選択、ダウンロードしたGappsのzipを選んで操作に同意
  8. システムを再起動してCM10.1を楽しんでね
注意点
  • TWRP/CWMリカバリーはcm10/pa/aokpと同じように使える。HUAWEIのストックROMの内蔵メモリはデータと共有でマウントされている。でもカスタムROMリカバリはデータとメディアだけでマウントするオプションがある。だからストックROMにはこれらのリカバリーで内蔵ROMでバックアップしてFactory Resetでワイプする。でもそれらはcm10/paみたいなカスタムROMではしないことなんだ。
Gappsはリンクが張られていたものよりも新しいものがあったので、以下からダウンロードして保存。
http://goo.im/gapps/gapps-jb-20130301-signed.zip


Windows用USBドライバーをインストール

http://www.huaweidevice.com/worldwide/downloadCenter.do?method=toDownloadFile&flay=software&softid=Mzk1MzA=


これであってるかわからないけど他に該当するのがなさそうなので・・・
ドライバーと一緒にHiSuiteというユーティリティもインストールされます。使う機会あるかな・・・

自動実行リカバリインストーラを実行
USBドライバ(ユーティリティ)をインストールしたら、自動実行インストーラを実行します。


前々からTWRPの評判がいいみたいなので今回使ってみることに。



キーを押すとMediaPadが再起動します。再起動したら電源を落としてTWRPに入ります。

TWRPで操作(スクショなし)

TWRPを起動する為に電源を落とすんですが、このときに「高速ブート」が有効になっていると何をしてもリカバリーに入れないので、電源を落とす前に設定から高速ブートをOFFにしておきます。

TWRPに入る時は以下の手順。

  1. タブレットの電源を切る(高速ブートは切っておく)
  2. 音量下ボタン(音量ボタンの電源ボタンから遠いほう)を押しながら電源ボタン長押しで電源投入
  3. 「ブルッ」と振動するので、電源ボタンだけ離す(音量下ボタンは押しっぱなし)
  4. 「HUAWEI MediaPad」が表示
  5. 一瞬ブラックアウト
  6. もう一度「HUAWEI MediaPad」が表示
  7. もう一回ブラックアウト
  8. 「TEAMWIN」ロゴが表示されたら音量下ボタンを離す
  9. しばらく待つとTWRP起動
で、バックアップを取得、再起動。もう一回TWRPでフルワイプ、Factory Reset、再起動。
CM10.1とGappsをInstallから選んでインストール(TWRPは2つ同時に入れられますね)、再起動。

ようこそで完了。



2013-03-08

使ってないperlの関連パッケージを削除する

Perlプログラマーの方、お元気でしょうか。
普段プログラマーをしておりますが、新人の時にテストツールをシェルで作ってと言われ、テスト結果のログ解析をする必要があったので急ごしらえでperlでログ解析部分を書いて依頼、まったくPerlとは縁のない日々を過ごして参りました。

そんな前段はさておき、プライベートでもPerlのコードを書くことはないし、これからもないだろうなとは思ったものの、今動いているものから完全にPerlを削除をするのは難しかろう点も事実ですので、ディスクの節約の為にPerlで作られてる部分の必要ないところをじゃんじゃん消し抵抗と思います。Debianです。

現状把握。

それではいったいどの程度のPerlで作られているパッケージがインストールされているのか、面倒なのでlibほにゃららperlというパッケージの数を調べてみましょう。

$ dpkg -l | grep -E  lib.*perl | wc -l
 結果
78
うーん。 多い。実際にはdpkgの結果は1パッケージで2行表示されるので39パッケージがインストールされるという事ですが、それでも多い。perl書かへんのに・・・

削除。

全部いっぺんに削除しようとしたらlinux-imageとか削除されそうになったので1つ1つ消していきます。(apt-get remove --purge libほにゃららperlで)
gnome2は使ってない事が前提。

消せたもの

libalgorithm-diff-perl
libalgorithm-diff-xs-perl
libalgorithm-merge-perl
libanyevent-perl
libapt-pkg-perl
libauthen-ntlm-perl
libcairo-perl
libclass-accessor-perl
libconfig-file-perl
libdigest-hmac-perl
libevent-execflow-perl
libevent-perl
libevent-rpc-perl
libfile-fcntllock-perl
libfont-afm-perl
libglib-perl
libgnome2-canvas-perl
libgnome2-perl
libgnome2-vfs-perl
libgtk2-perl
libhtml-form-perl
libhtml-format-perl
libhtml-template-perl
libhttp-daemon-perl
libintl-perl
libio-socket-inet6-perl
libio-string-perl
liblist-moreutils-perl
libmailtools-perl
libmusicbrainz-discid-perl
libpango-perl

libparse-debianchangelog-perl

libperl5.14
libpod-plainer-perl
libregexp-assemble-perl
libsocket6-perl
libsub-name-perl
libtext-charwidth-perl
libtext-unidecode-perl
libtext-wrapi18n-perl
libtie-ixhash-perl
libwebservice-musicbrainz-perl
libxml-libxml-perl
libxml-namespacesupport-perl
libxml-sax-base-perl
libxml-sax-expat-perl
libxml-sax-perl
libxml-simple-perl

libyaml-tiny-perl

消せなかったもの

libclass-isa-perl
libdpkg-perl
libencode-locale-perl
liberror-perl
libfile-copy-recursive-perl
libfile-listing-perl
libhtml-parser-perl
libhtml-tagset-perl
libhtml-tree-perl
libhttp-cookies-perl
libhttp-date-perl
libhttp-message-perl
libhttp-negotiate-perl
libio-socket-ssl-perl
liblocale-gettext-perl
liblwp-mediatypes-perl
liblwp-protocol-https-perl
libnet-dbus-perl
libnet-http-perl
libnet-ssleay-perl
libswitch-perl
libtext-iconv-perl
libtimedate-perl
liburi-perl
libuuid-perl
libwww-perl
libwww-robotrules-perl
libxml-parser-perl
libxml-twig-perl

2013-02-02

partedでGPTのHDDのパーティションを切る

これも雑記。新しいHDDの増設の仕方も。

(番外編)ノードファイルを作る

普通は必要ないのですが、うちの環境は特殊なので(正規の順序で起動しなくなってしまったので)、起動するたびにノードファイルを手動で作っています。
今回も新しく追加したデバイスのノードファイルも作ります。デバイスファイルの場所はdmesgから、最後の引数は/proc/partitionsから持ってきます。
# mknod /dev/sdd b 8 48
# mknod /dev/sdd1 b 8 49

(番外編)景気付けにgdiskでGPTという事にする

これも本当は必要ないかもしれませんが、partedにいう事を聞かせるためにやりました。
gdisk /dev/sdd
GPT fdisk (gdisk) version 0.8.5
Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present
Creating new GPT entries.
Command (? for help): p
Disk /dev/sdd: 5860533168 sectors, 2.7 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): F37079F4-4B19-4A05-ACC8-124B81FFE2BF
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 5860533134
Partitions will be aligned on 2048-sector boundaries
Total free space is 5860533101 sectors (2.7 TiB)
Number  Start (sector)    End (sector)  Size       Code  Name
Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y
Command (? for help): p
Disk /dev/sdd: 5860533168 sectors, 2.7 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): A6BEDAB2-1243-44DB-8AE0-0F9DB1E0D6AD
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 5860533134
Partitions will be aligned on 2048-sector boundaries
Total free space is 5860533101 sectors (2.7 TiB)
Number  Start (sector)    End (sector)  Size       Code  Name
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdd.
The operation has completed successfully.
partedでパーティションを切る

それで、今回増設するHDDは最近の流れに乗ってGPT対応なので、速度が無駄に遅くならないように、4kB境界で使い始めるように設定していきます。

(parted) unit s                                                           
(parted) mkpart primary 2048s -1s                                      
Warning: You requested a partition from 2048s to 5860533167s.          
The closest location we can manage is 2048s to 5860533134s.
Is this still acceptable to you?
Yes/No? y                                                              
(parted) print                                                          
Model: ATA WDC WD30EFRX-68A (scsi)
Disk /dev/sdd: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number  Start  End          Size         File system  Name     Flags
 1      2048s  5860533134s  5860531087s               primary

作成したパーティションをフォーマット
今回はext4で作ります。
# mkfs.ext4 /dev/sdd1
あとはマウントしやすいように/etc/fstabに書いたりして完了。

2013-02-01

S.M.A.R.T値を確認する

今回は小ネタです。というのも、NASのHDDがいつの間にかread onlyでマウントされていたので覚え書き。 Debianの場合、smartmontools[1]パッケージをインストール(GUIで見る場合はgsmartcontrol[2]パッケージがいいようです。
# /usr/sbin/smartctl --all /dev/sdb1
して・・・ずらずらっと出てきて・・・問題ありそうなの。
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   199   199   051    Pre-fail  Always       -       40
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       261
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       228
200 Multi_Zone_Error_Rate   0x0008   200   199   000    Old_age   Offline      -       262
壊れてるやん・・・ ということで、ちょっくら交換します・・・

[1] http://packages.qa.debian.org/s/smartmontools.html
[2] http://packages.qa.debian.org/g/gsmartcontrol.html

2013-01-18

俺の俺による俺のためのARM Cortexシリーズまとめ(~A57/A53まで)

わからない・・・
ARMといえばアプリケーションプロセッサとしてのCortex-Aシリーズがすっかりガジェット好きの間でプレゼンスを広げていると思いますが、あまりにナンバリングが不規則で(マーケティング上の理由だと思いますが)、特にハイエンド以外で新しいアーキテクチャがよくわからないので、あくまで自分用に纏めようと一念発起してみました。

こうなってるよ!!
このエントリーが公開されて、この項が書かれているということは、自分の中での整理もひと通り済んでいるはずですw
また、発表時期は並んでいますが縦軸はあくまでイメージです。ご了承ください。


ちなみにこれ以降は時系列順(発表順)に記載します。

Cortexシリーズ前夜
ARM6、ARM7(E)、ARM9(E)、ARM11(E)等々。今でもARM9とかは組み込みプロダクトで目にします。消費電力とライセンス代の兼ね合いでしょうか。

Cortex-A8(2005/10/08発表)
http://www.arm.com/ja/products/processors/cortex-a/cortex-a8.php
http://www.arm.com/about/newsroom/10548.php

  • 最初のCortex-Aシリーズ
  • 命令セットはARMv7
  • クロックは600MHz-1GHz
  • スーパースカラー並列処理(2命令)
  • 13段パイプライン/インオーダー実行
  • VFPv3
  • Thumb-2
  • NEON
  • Jazelle RCT
  • 統合L2キャッシュ(0-4MB)
  • 2.0DMIPS/MHz
  • プロセスルール65nm
  • 消費電力300mW以下
  • 「5年にわたって基準になるマイクロプロセッサ」[1]


Cortex-A8の採用プロダクト

  • Allwinner A1X
  • Freescale i.MX51
  • Rockchip RK2918, RK2906
  • Samsung Exynos 3110
  • TI OMAP 3
  • TI Sitara ARM MPU AM3x
  • Conexant CX92755
  • Samsung S5PC100


Cortex-A9(2007/10/03発表)
http://www.arm.com/ja/products/processors/cortex-a/cortex-a9.php
(PDF) http://www.arm.com/files/pdf/ARMCortexA-9Processors.pdf

  • マルチコア構成を取る場合は「Cortex-A9 MPCore」という。MPCoreの場合はコア数1-4。
  • 命令セットはARMv7
  • クロックは特に記載なし。
  • スーパースカラー複数処理
  • 8段パイプライン/アウトオブオーダー実行
  • Thumb-2
  • NEONがオプションに
  • VFPv3浮動小数点演算(オプション、以前のものより高速)
  • TrustZoneセキュリティ拡張
  • JazelleDBXサポート(Javaバイトコード実行用)
  • Jazelle RCT
  • 2.50DMIPS/MHz/core ハイエンドでは1500-3000DMIPS、単機能向けに600-900DMIPS
  • 最適化L1キャッシュ
  • L2キャッシュ(0-4MB)
  • PrimeCell PL310 L2キャッシュコントローラ(-8MB)


Cortex-A9の採用プロダクト

  • Altera Cyclone V
  • Altera Arria V
  • AmLogic AML8726-M
  • Broadcom BCM11311
  • Calxeda EnergyCore ECX-1000
  • Freescale i.MX6
  • HiSilicon K3V2(Hi3620)
  • HiSilicon K3V2E
  • HiSilicon Kirin 910
  • HiSilicon Kirin 910T
  • Leadcore LC1810, LC1811
  • MediaTek MT6575, MT6577, MT6575M, MT6577T, MT6517, MT6517T
  • Nufront Nusmart 2816, 2816M, 115
  • nVidia Tegra2
  • nVidia Tegra3
  • Trident Microsystems 847x/8x/9x SoC family(謎)
  • ルネサスエレクトロニクス EMMA Mobile/EV2
  • Rockchip RK3066, RK292x, RK31xx
  • Samsung Exynos 4210, 4212, 4412
  • Sony PlayStation Vita
  • STMicroelectronics SPEAr1310, SPEAr1340
  • ST-Ericsson Nova A9500, NovaThor U8500, NovaThor U9500
  • TI OMAP4
  • Xilinx Extensible Processing Platform
  • ZiiLABS ZMS-20
  • Apple/Samsung S5L8940, S5L8942
  • Apple/Samsung A5X
以上Wikipedia(en)より。他にもいっぱいありそう



Cortex-A5(2009/10/22発表)

http://www.arm.com/ja/products/processors/cortex-a/cortex-a5.php
  • 低コスト、最高のエネルギー効率
  • ARM9(ARM926EJ-S)、ARM11(ARM1176JZ-2)からの移行
  • ARMv7アプリケーションに対する互換性(Cortex-A8、Cortex-A9、古いARM)
  • 1〜4コア
  • インオーダーパイプライン
  • 1.57DMIPS
  • DMIPSはARM926の1.9倍?、MHzあたりの消費電力はARM926よりも低い、Core面積はARM926よりもほんの少し大きい。またこれら指標は3つすべてARM1176より優れているので置き換え需要がある?
  • Thumb-2
  • DSP&SIMD拡張
  • VFPv4(オプション)
  • NEON(オプション)
  • Jazelle DBX,RCT
  • TrustZone
Cortex-A5の採用プロダクト
  • Qualcomm Snapdragon S1のうち MSM7225A/MSM7625A/MSM7227A/MSM7627A/MSM7225AB
  • Qualcomm Snapdragon S4 Play MSM8225/MSM8625/MSM8225Q/MSM8625Q
  • Qualcomm Snapdragon 200のうち MSM8225Q/MSM8625Q
  • Spectrum SC8810
  • AMD Fusionの将来のモデル(でキュリティコプロセッサとしてTrustZoneを使用)
  • Telechips TCC8923


Cortex-A15(2010/09/09発表)
http://www.arm.com/ja/products/processors/cortex-a/cortex-a15.php

  • マルチコア構成だと「Cortex-A15 MPCore」?コア数1〜4?
  • 命令セットはARMv7
  • クロックは特に記載なし(ただし、想定ではモバイルの1〜1.5GHz 1or2コアからWebサーバ、無線インフラの2.5GHzの4コア)
  • プロセスルールは20nm
  • ハードウェア仮想化
  • 40bit物理アドレス拡張LPAEにより最大1TBのRAMにアクセス可能(スレッド単位では最大32bitアドレス)
  • スーパースカラー並列(3並列)処理
  • 整数15段、浮動小数演算17〜25段パイプライン/アウトオブオーダー実行
  • Thumb-2
  • NEON
  • DSP/NEON per core
  • VFPv4浮動小数演算 per core
  • TrustZoneセキュリティ拡張
  • Jazelle RCT
  • 32kBデータ+32kB命令統合L1キャッシュ
  • 低レイテンシ最大4MBperクラスタ 統合L2キャッシュ
PDFがないっぽくてあまり正確な情報がわからない

Cortex-A15の採用プロダクト
  • Broadcom SoC
  • nVidia Tegra4
  • Samsung Exynos 5250
  • ST-Ericsson Nova A9600
  • TI OMAP5
  • AllWinner A80(Cortex-A15/Cortex-A7)
  • HiSilicon Kirin 920(Cortex-A15/Cortex-A7)
  • HiSilicon Kirin 925(Cortex-A15/Cortex-A7)

Cortex-A7(2011/10/19発表)
http://www.arm.com/ja/products/processors/cortex-a/cortex-a7.php

  • 複数コア構成の場合は「Cortex-A7 MPCore」?
  • Cortex-A15のコンパニオンプロセッサとして、「big.LITTLE」構成を提案
  • ハードウェア仮想化
  • 40bit物理アドレス拡張LPAE
  • 命令セットはARMv7
  • コア数1〜4
  • Thumb-2
  • NEON
  • DSP&SIMD
  • VFPv4
  • Jazelle RCT
  • 最適化L1キャッシュ
  • 統合L2キャッシュ(オプション)
  • 8ステージパイプライン インオーダー
  • 部分的2並列
  • TrustZone
  • 1.9 DMIPS
Cortex-A15と同じ機能を持ちながら、電力効率を優先して性能を抑え目に。

Cortex-A7の採用プロダクト

  • MediaTek MT6589
  • AllWinner A80(Cortex-A15/Cortex-A7)
  • AllWinner A20
  • AllWinner A23
  • AllWinner A31
  • AllWinner A31s
  • AllWinner A33
  • AllWinner A83T
  • AllWinner H3
  • AllWinner H8
  • AllWinner R16
  • AllWinner R58
  • AllWinner T2
  • AllWinner T8
  • AllWinner V3
  • AllWinner V3s
  • AllWinner V10
  • Leadcore LC1813/LC1913/LC1860/LC1860C/LC1960
  • MediaTek MT6572/MT6572M/MT6571/MT6589/MT6589M/MT6589T/MT6582/MT6582M/MT6588/MT6592/MT6592M/MT6591/MT6595(Cortex-A17/Cortex-A7)/MT6595M(Cortex-A17/Cortex-A7)/MT6595Turbo(Cortex-A17/Cortex-A7)
  • Qualcomm Snapdragon 400のうち MSM8026/MSM8226/MSM8228/MSM8626/MSM8628/MSM8926/MSM8928
  • Qualcomm Snapdragon 210 MSM8909
  • Qualcomm Snapdragon 212
  • Qualcomm Snapdragon 208 MSM8208
  • Qualcomm Snapdragon 200のうち MSM8210/MSM8610/MSM8212/MSM8612

Cortex-A57(2012/10/30発表)
http://www.arm.com/ja/products/processors/cortex-a50/cortex-a57-processor.php
  • 命令セットはARMv8
  • 1-4対称コアクラスタ
  • AArch32(ARMv7完全互換)
  • AArch64
  • TrustZone
  • NEON
  • DSP&SIMD
  • VFPv4
  • ハードウェア仮想化
  • ハードウェア暗号化
  • 4GBの物理アドレスへのアクセス
  • 64bitの仮想アドレスへのアクセス(AArch64)
  • 最適化L2キャッシュ
  • 深いアウトオブオーダーパイプライン
  • TBD(まとまった資料と時間が見つかったら更新)

Cortex-A57の採用プロダクト
  • Qualcomm Snapdragon 810 MSM8994(Cortex-A57/Cortex-A53)
  • Qualcomm Snapdragon 808 MSM8992(Cortex-A57/Cortex-A53)

Cortex-A53(2012/10/30発表)
http://www.arm.com/ja/products/processors/cortex-a50/cortex-a53-processor.php
  • 命令セットはARMv8
  • 1-4対称コアクラスタ
  • AArch32(ARMv7完全互換)
  • AArch64
  • TrustZone
  • NEON
  • DSP&SIMD
  • VFPv4
  • ハードウェア仮想化
  • ハードウェア暗号化
  • 4GBの物理アドレスへのアクセス
  • 64bitの仮想アドレスへのアクセス(AArch64)
  • インオーダーパイプライン
  • TBD

Cortex-A53の採用プロダクト

  • Qualcomm Snapdragon 810 MSM8994(Cortex-A57/Cortex-A53)
  • Qualcomm Snapdragon 808 MSM8992(Cortex-A57/Cortex-A53)
  • Qualcomm Snapdragon 620 MSM8976(Cortex-A72/Coretx-A53)
  • Qualcomm Snapdragon 618 MSM8956(Cortex-A72/Coretx-A53)
  • Qualcomm Snapdragon 617 MSM8952
  • Qualcomm Snapdragon 616 MSM8939v2
  • Qualcomm Snapdragon 615 MSM8939
  • Qualcomm Snapdragon 610 MSM8936
  • Qualcomm Snapdragon 430 MSM8937
  • Qualcomm Snapdragon 415 MSM8929
  • Qualcomm Snapdragon 412 MSM8916v2
  • Qualcomm Snapdragon 410 MSM8916
  • AllWinner A53
  • AllWinner H64
  • MediaTek MT6732 MT6732M MT6735 MT6735P MT6735M MT6752 MT6752M  MT6753
  • MediaTek Helio P10; MT6755
  • MediaTek Helio X10; MT6795
  • MediaTek Helio X20; MT6797(Cortex-A72/Cortex-A53)
  • HiSilicon Kirin 620
  • HiSilicon Kirin 930
  • HiSilicon Kirin 935
  • HiSilicon Kirin 950(Cortex-A72/Cortex-A53)
別エントリにて各SoCの製造メーカーについて。

[1] http://www.itmedia.co.jp/news/articles/0510/26/news120.html

2013-01-02

amd64のDebianで32bitのWINEを使う

WINEとは
Wine Is Not Emulatorの略で、端的に説明すると「(i386アーキテクチャで)win32 APIをエミュレートする一連のソフトウェア」です。

昔は
Windowsを使っていたので、その時に使用していたソフトウェアを使いたいという理由から今回使います。というか、wine自体は前から使っているのですが、最近の変更でamd64アーキテクチャでのwineパッケージはデフォルトインストールでは64bit Windowsをエミュレートするようになったので、今回はそんなamd64環境のDebianで32bitのwineを使えるようにする方法を書き残しておきます。(私的メモ)

まだ必要?具体的に何にwine使うの?
個人的に困っているのは、現状のLinux環境ではUDF2.6ファイルシステムのイメージファイルが作れないっぽいので、ImgBurn[1]を使うためにwine使います。
(growisofsでBD-R/BD-REにはイメージを焼くことはできるのですが。)

まずは普通にwineインストール,ImgBurnインストール

# apt-get install wine

ダウンロードしてきたImgBurnのインストーラをwineの引数に指定して実行します。

$ wine SetupImgBurn_2.5.7.0.exe
(インストーラのパスは合わせてください)

これをやると、恐らく32bitのDebian上ではうまいこと行くんですが(最近は確認してないですが)、amd64環境でやると多分次みたいなダイアログが出ます。

i386アーキテクチャを指定してwineをインストール
なので、指示に従ってコマンドをポチポチと。
# dpkg --add-architecture i386
# apt-get update
# apt-get install wine-bin:i386
この状態でインストーラを起動すると(コマンドはさっきと同じ)

起動したよ!やったねたえちゃん!

[1] http://www.imgburn.com/