2009/03/30

高橋洋一さんの書類送検された件について

「さらば財務省!」の著者である高橋洋一さんが窃盗容疑で書類送検されたとニュースでみて、残念な気持ちになりました。

報道以外で事実を確認する事はできていませんが、人間観察のために窃盗行為に及んだという事で、どうしてこういう事になるんでしょうね。

2009/03/28

twitter始めました & 記事の洗い直し

友だちがtwitterに登録したっていうのを聞いて、 RSSリーダー代りにもいいかなと思っていまさらIDを作ってみました。
まだGoogle AppEngineやTechCrunchをフォローしているぐらいだけれど。

このブログもCSSを少し修正して、過去の投稿を一度洗い直して自分を知っている人も、まぁたぶんきっとなんとか読めるかな、ぐらいのレベルに変更しました。

ああ、でも見落としがあるかも。
言葉の足らない投稿で不愉快な思いをさせるのは本意ではないので、 その点はご理解下さい。

2009/03/27

電子立国のDVDが発売されていた

たまたま偶然インプレスのAV WatchのDVD発売日一覧をみて、今日が電子立国 日本の自叙伝のDVD発売日だと知りました。

値段は一応みたけれど気にせずアマゾンで購入。
ビデオからDVDにダビングする事もできないわけではないけれど、いろいろコストやら信頼性なんかを考慮して決めた、という事にしておきます。

なつかしいですね。本当に。ちょっと涙が出てくるくらいに。
まとめて発売してくれてうれしいです。そりゃ買いますよ。

2009/03/26

okwaveを始めてみた

いまのプロバイダーはNetNewsのサーバーを提供していないのですが、時々fjを懐しく思う時があります。
Google Groupsでは今でもfj.*なグループを一覧にする事もできて、使えない事はないけれど、 スパムに埋没しているグループもあったりで時代の変化を感じます。

そんな話しとは直接関係ないですが、商業的にQAサービスを提供しているokwaveに登録してみました。
観察がメインですが、回答できそうな質問には答える方針で参加しています。

受け手にかなりの読解力を要求する前後を省いた要点だけの回答や、スルーできずにつっこむ人がいたり、関係ないところで淡々と答えている人がいたり、fjと似ているところもあるけれど、匿名性のためか全体の雰囲気は2ch.netと昔の掲示板システムのフレーバーがまざっている感じです。
個人的にはfjの実名主義は責任も伴なう側面があって好きですが、 今も昔も匿名性に頼って言いたい放題な方は全体の品質を下げる方向に貢献しているように見受けられます。(例外は今も昔もいらっしゃいます…)

そんな方への対処の方法は昔からいろいろありますが、回答の作り方や処世術も含めて「fjの歩き方」なんかは一般向けに編集されていて読み易いと思います。
ネチケットはまだ現役だと思いますが、 あまり読まれる機会もないのかなぁとか思うと寂しいですね。

いまある2ch.netやいろいろな投稿サイトをみて、その文化に染まる事が流行りに乗る事だと勘違いせず、あるべき方向を利用者が考えて便利に使っていけると良いなぁと思います。

気になった事

使っていると、一言だけ御礼やコメントを追加したいタイミングがありますが、システムと規約の制約から質問者が簡単な御礼を伝える事だけしかできません。
無用な論争を避けるために、これはこれで有りだと思いますが、回答していると「〜なつもりでした」ぐらい書き加えたい時があります。

回答とは切り離してblogなど一方的にかきなぐる場所があれば、回答だけをみて不信感を感じた人も+αの情報を確認できるかもしれません。 その反面、非難中傷、罵倒が書かれていれば、さらに憎悪が増す事になるでしょう。
管理できないものを増やしても利益がないという事なのか、 ここをみていると商業的に事業者が管理できる範囲をよく表していると思います。

多様性は重要とはいえ、ここら辺のバランスは匿名性を薄めていかないとどうしようもないかなぁ。
日本の文化だと全面的な実名主義は一般向けのサービスでは難しいと思いますけどね。

参考までに1995年にオーム社開発局から出版された「fjの歩き方」には、参加者の心得として次のような事が書かれています。

  1. fjのネットのむこうには、人間がいることを忘れるな
  2. fjという郷に入りては郷に従え。でも盲従することなかれ
  3. fjでは、肩書きで物を言うなかれ
  4. 困った時のfj頼み
  5. fjを、賢く使って、いいくらし
(fjの歩き方 P.53より)
これにみんな従っていたわけではありませんが、全体的にこういう考え方で支持されていたコミュニティもあったという事は忘れたくないものです。

2009/03/25

ブレッドボード上にAVR-USBを実装してみる

PICでブレッドボード上でライターに接続して失敗しましたが、 あれからAVRにも手を出していろいろ試行錯誤していました。
PICはライターの重みで接触があやしかったので、共立エレショップでQIコネクタのハウジングとコンタクトピンを購入して接続用の短いケーブルを自作しました。
QIコネクタはPCケースの電源ボタンやLEDから出ている線を、マザーボードに接続するために使われているものですが、 受け側だけではなくてピンが出ている方を使うとブレッドボードに差せるので本当に便利です。

AVRにも使って3x2列のハウジングから1ピン毎にバラしたケーブルを使って、ブレッドボードとAVRISP mkIIを接続しています。
かなり便利なのですが「QIコネクタ」という名前にたどりつくまでが長くて、マルツでも千石のWebショップでも扱いはないんですよね。 他の方々はどうしているんでしょう。他に適当なケーブルあるのかなぁ…。

と、ここまで書いていろいろ検索してみると、千石電商には「信号伝達コネクタ」の名前で取り扱いがあり、呼び名はいろいろですがメジャーなようですね。
ブレッドボードとピンヘッダを接続したりするのにも便利なので、また追加で注文しないと…。

2009/03/24

なぜ西松建設が開発した献金システムの利用者全員が逮捕されないのか

いろいろ西松建設側からの情報はリークしていて献金システムについては詳細な情報がありますが、 検察は野党の秘書一人が積極的に献金システムを利用したのだと主張しようとしているようです。
しかし、まだそれを裏づける情報は伝わってきていません。

なぜ同じく恩恵を被っていた与党議員の関係者は逮捕されないのでしょうか。
当事者の与野党議員がそろって「詳細は知り得る事ではなかった」といっていて、現時点では「利益は受けたが、利用はしていなかった」という主張を崩す事ができるか微妙そうです。

西松建設の献金システムは確かに運用されてお金が渡っていたはずですが、西松建設側の主張のみが存在していて、現時点で与野党のどの議員も辞職していないところから、将来的に特捜部の信頼が揺らぐ事にならないか心配です。

m4で作るシーザー暗号 on Ubuntu 8.10

なんとなくm4のドキュメントを復習していて、思いついた事。
m4マクロでシーザー暗号を作ってみた。

$ cat caesar.macro 
define(`TEXT', `This is a sample text.')
translit(TEXT, `a-z', `n-za-m')
$ m4 caesar.macro 

Tvwg wg o goadzs hslh.
で、これでうまくいったかというとそうでもないらしい。

確認のためにabc..xyzまでを変換してみる。

$ cat caesar.macro 
define(`TEXT2',`abcdefghijklmnopqrstuvwxyz.')
translit(TEXT2, 'a-z', `n-za-m')
$ m4 caesar.macro 

opqrstuvwxyzabcdefghijklm.
どうやら一文字'n'が足りない。消えてしまっているようだ。

info m4で確認すると対応する文字が少ない場合には文字が消えるとあるけれど、何でかなぁ。
まぁ長い分には単純に無視されるとあるが、やっぱりおかしいのでいろいろチェック。

回答編

ああ、わかった。quoteでちゃんと囲めていなかったんだ。バッククォート"`"とクォート"'"でちゃんと囲む。

$ cat caesar_v2.macro 
define(`TEXT2',`abcdefghijklmnopqrstuvwxyz.')
translit(TEXT2,`a-z', `n-za-m')
$ m4 caesar_v2.macro 

nopqrstuvwxyzabcdefghijklm.
なんとか、うまくいったらしい。よしよし。
わかってたのに、なんで打ち間違ってしまったんだろう。 ま、こんな日もあるってことなのかな。

2009/03/22

ATmega88pでavr-usbのhid-dataサンプルを動かしてみる

秋月からATtiny2313, ATmega88p、ITプラザからATmega168などを購入して遊んでいたのですが、USB経由で接続してみようとしてみました。
結論からいうとATMega88pについては、AVR StudioでDeviceタイプを”ATmega88” (Pなし)に設定した上でコンパイル、Hexファイル書き込みをして動かしています。

今回使用した機器はこんな感じです。

  • 開発機: Windows Vista (Inspiron 640m)
    • 開発環境:AVR Studio 4.16
    • コンパイラ:WinAVR 20090313
    • AVRライター:AVRISP mkII
    • avrusbライブラリ:avrusb-20081126
  • HIDホスト: Ubuntu 8.04 x86_64版

作成した基板はAVR-USBに付属するイメージ(circuits/with-zener.png)の通りで、AVRISP mkIIに接続するために6ピン端子を付け、ATmega88p用にAVccの接続を加えて、クロックは16MHzの水晶発振子を使っています。(後で20MHzに変更し無事に動きました)

AVR Studio側では適当なプロジェクトを作成して、ダウンロードしたavrusb-20081126の中にあるusbdrvフォルダの中からドキュメントを除いたファイルとexamples/hid-data/firmware/usbconfig.hをコピーしています。
examples/hid-data/firmware/main.cは作成したプロジェクトの.cファイルに内容をそっくりコピーしてコンパイルしました。

AVR Studio側での変更はusbconfig.hの中で、D-,D+にするポートの指定部分だけです。

#define USB_CFG_IOPORTNAME      D
#define USB_CFG_DMINUS_BIT      3
#define USB_CFG_DPLUS_BIT       2

ほぼ同じコードで、ATmega168もATtiny2313も動いたのですが、ATmega88pはATmega168と差し替えてもなぜか動かず、試行錯誤していました。
ふと試したATmega88のDeviceタイプでコンパイル、書き込みをしたところホストのUbuntu側で認識されてhidtoolでの読み書きも成功しています。でもこれでいいのかなぁ…。

$ dmesg | tail -3
[325427.701138] usb 3-2.2: new low speed USB device using ehci_hcd and address 111
[325427.800787] usb 3-2.2: configuration #1 chosen from 1 choice
[325427.809613] hiddev96hidraw3: USB HID v1.01 Device [obdev.at DataStore] on usb-0000:00:02.2-2.2

$ sudo ./hidtool read | head -2
0x03 0x33 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
$ sudo ./hidtool write 0xa4 0x20
$ sudo ./hidtool read | head -2
0xa4 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

hidtoolはlibusbを導入したUbuntu側ではmakeしただけで導入できました。
さてこれから解析していかないと。
ATmega88のデバイスタイプにしている事で消費電力に変化があるかわからないけれど、他に何か不具合は起こらないのかな…。

2009/03/20

知らない間にメールアドレスを公開している…

とあるサイトへの投稿で、「結果のファイルはここから送ってください」とあり、クリックし進んでみるとシンプルなFormが表われました。
「ファイルをアップロードするサービスが無料で使えるんだぁ」と思い、ファイルの実体はどこに保存されるのかと興味が湧いたのでHTMLを直接みてみました。

しかし残念ながら、というか想定どおり、action部分には明らかにmail送信用と思われるCGIスクリプトが指定され、hiddenと指定されているinputタグの中には送信先と思われるメールアドレスが書かれていました。

メーリングリストへの投稿なんかは公開されているものも多いので、メールアドレスは秘密にできるものではありません。
ただ、そのフォームを無料で提供しているサイトの説明文を読んでも特に記述はなく、このフォームを公開した人は知らないんじゃないかなと思いました。

さらにそのサイトのFAQの中には『うちが原因でスパムが届くっていうけど、送信元はうちのドメインからじゃないでしょ。関係ないから!』という趣旨の記述があります。

まぁここにしかメールアドレスを書いていない人がおかしいなぁと思って問い合わせたとしたら、まぁ「ビンゴ!」ってところでしょうか。

技術の中身がわからないと使いこなせない内は、その技術は大したものではないと思います。
利用者は気がつかなくて当然、でもなぁ、こんなの作ってよく公開できるよなぁ…。 作り手のプライドというかモラルが感じられない。

あやしいものには近づかない方が良いのですが、そのサイトも利用者にはいくらかのインセンティブになりそうな特典を用意していたので、おいしい話しはないという事でしょうか。
便利に使いこなしていると思っていたのに、想定外のリスクを取らされていた、というのは避けたいものです。

2009/03/17

Shadeのバージョンアップについて案内メールが頻繁にくる

最近頻繁に届くShadeのメールを読むと、どうやら直近の2バージョンまでがアップグレード版の対象になるらしい。

こういうクローズドなビジネスモデルを推進する理由は、ユーザーが旧製品に満足しているとかで、 なかなか進まない更新のスピードを上げる事にあるのでしょう。

更新してもらわないとお金が入ってこないのはわかるけれど、販売元が期待するほどユーザーがアップグレードしないのであれば、Shadeのバージョンの上がるスピードが平均的なユーザーの更新タイミングと合っていないだけのような気もします。

無理にユーザーを動かそうとするよりも、持っているShadeのバージョンが古ければ古いほど特別なディスカウントプライスを適用するとかっていうビジネスモデルの方が良いと思うけどなぁ。
古いユーザーを大事にしてそうなフリをしつつ、各ユーザーは折り合いのつくところで新バージョンに乗りかえるだろうから無理にお尻を叩くような印象は与えずに済むし。

Shadeのバージョンアップのスピードは、僕のPCの更新スピードからするとずっと早いから、取り残されるんだろうなぁ…。
まぁ同じところからShadeを高い値段で買うなら、次はCINEMA 4DかCarraraにでもしてみよう。

2009/03/13

AE-UM232RとAVRでシリアル通信

AVR ATmega88Pと秋月から買ってきたFTDI製のチップが載っているUSBシリアル変換器、AE-UM232Rを繋げてみました。

データシートではUSARTの項で解説されていて、C言語でのサンプルコードも載っていて、痒いところまで手が届いていそうで、うまく動かない…。
データシートが悪いわけがないので自分のコードをいろいろ変更してみたりして、ブレッドボード上の回路もいろいろ変更してみたり。

結局20MHzのセラロックを使ったところ問題なく接続できたのですが、うーん8MHzの内部RC発振じゃ無理なのかぁ…。9600bpsで接続するなら無理じゃないと思ったんだけどなぁ…。

CKDIV8はオフにしているし、クロックが8MHzで動かない理由がわからない、明日横浜にいく途中で秋葉原によって8MHzの水晶発振子でもかってきて試してみるか。東京週末フリーキップは駅でゲット済みだから準備は万端。
でもその前に、この週末に仕組みのところから解説しているWebサイトをいろいろみて勉強してみます…。

さてさてプログラムの書き込みはAVR Studioが便利なのでWindows VistaなInspiron 640m上で行ないますが、シリアルケーブルの先はLinuxです。
まずはUSBケーブルを接続した後で、dmesgを実行して最近認識されたデバイスの名前を確認します。

$ dmesg | tail -3
[1682131.118019] ftdi_sio 1-2.3:1.0: FTDI USB Serial Device converter detected
[1682131.118056] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: Detected FT232RL
[1682131.118161] usb 1-2.3: FTDI USB Serial Device converter now attached to ttyUSB0

$ kermit
C-Kermit> set port /dev/ttyUSB0
C-Kermit> set speed 9600
C-Kermit> set carrier-watch off
C-Kermit> connect
あとはキーを打つとエコーバックするサンプルプログラムが動いて、確認完了。 けれどちゃんとAE-UM232RとAVRが接続できていない時も、AE-UM232Rがエコーバックしてしまったので、LEDをPB0に接続して打鍵毎に点滅"PORTB ^= (1<<PORTB0);"するようにしないと、ちょっと不安です。

どうでも良いですが、TeraTermでLinuxに接続してkermitを実行した時に、SKKIME 1.5を使っていると、Kermitを抜ける時に打つ"C-\c"(Control+\ c)が取られてしまい、TeraTermがKermitに伝えてくれませんでした。
MS IME 2007に切り替えて正常に終われましたが、まぁこんな使い方は僕もめったにしないから大丈夫か…。とりあえず勉強しないとだなぁ。

海賊対策に現状のままで大丈夫なのか

海上保安庁が海上自衛隊を率いてソマリア沖に来月上旬から向う事が決まりました。

法整備が終ってからの方が良いと思うのは、

  • 正当防衛と緊急避難のみが反撃の要件とされている点
があり、与党内でまとまりつつある新法の要件が合理的に思えるからです。

もし海賊が正面から向かってきた場合にギリギリまで引き付けて、相手の出方を見極めてからでないと対応できないとしたら、接近戦になった場合に相当な被害が双方に出るでしょう。

海賊とあからさまに分かるでしょうから早めに攻撃+救助(→逮捕)といった流れでないと、それなりの被害を覚悟する必要があるのではないでしょうか。
与党議員の言動をみていると「まさか自衛隊に向かってこないだろう」ぐらいに考えていそうで、ちょっと怖いです。

野党のいう事もなんだかなぁな感じで、まさかの国民新党と意見が近くみえるなんて、私的には世も末な気分です…。

2009/03/12

正のスパイラルを如何に作り出すのか

NHKの19路あらの夜のニュースの後の「クローズアップ現代」で、親の低所得などを背景として子供たちが医療機関にかかる事が難しくなっているという特集をやっていました。
子供たちが、たまたま自分の親の都合で、医療を受けられないなどの理不尽な状況に置かれている事に心が痛みます。
「勉強して偉くなる」という価値観ではもはやないのかもしれませんが、子供たちの可能性を周りの環境が抑えつけるべきではないし、親の所得なんかに関係なく教育も医療も十分受けられなければいけないと強く思います。

県レベルで中学生までの医療費を無料にした事例が紹介されていましたが、先行実施した前橋市の事例では重篤化する前に医療を施す事によって、トータルの医療費負担を下げる事ができるだろうという関係者のインタビューが紹介されています。

この番組でも強調されていましたが、これまで個人負担を引き上げる事で医療費の抑制を図ってきた事に対する反証として、積極的な医療によって医療費を抑制可能だとする例が紹介されていました。

これまでの日本が横並びの護送船団方式だったとして、その転換点が今だとすれば、社会的な弱者である子供たちや低所得層に対する手厚い保護を行なう事でバランスを取るべきでしょう。

その一方で保護を受ける事を当然の権利とは考えずに、それに頼らずにやっていけるところを目指そうとするモラル意識の高さも求められるのだろうと思います。
でもこういった保護を将来は受けずに自立するべきだという、誰もが反論しがたい理屈を背景にして、生活保護の受給を切ったりする役所、役場の窓口担当者は生活保護を受ける立場になって欲しい。あ、でも担当者と顔見知りだから、別に困らずちゃんと生活保護が受けとれるか…。
何にしても「目指そう」という意識と「目指さなければいけない」という意識は、後者が鬱屈した心持ちが背景にみえるところから、かなりの違いがあると思います。 立場が弱くなり折れてしまった心は時間をかけて癒す必要がありますが、わざわざ心を折るような施策や周囲の環境は排除しなければいけません。

保険料の自己負担が高くなる以前には、安易に医療を受ける事などが報道されていました。
いま救急車をタクシー代りに使おうとするような、これは本当に想像できないんですけれど、モラルの低さが目立っている点が気になります。
本来なら所得と関係なしにこういった行為を行なう人はいるはずですが、こういった子供たちや低所得者層への施策に対する抵抗力として利用されないか心配です。

今回のクローズアップ現代は、今後の政府の施策として医療費の無料化などを訴えていて、かなり踏み込んだ内容になっているところがみていておもしろかったです。
最近のNHKの番組のいくつかは、なかなか気にいっています。受信料も払っているし、頑張ってもらわないと。

2009/03/05

やたら流暢な英語が聞ける料理番組について

普通に英語をしゃべっているダニエル・カールさんがみれる「Your Japanese Kitchen」は、なかなかおもしろいと気がつき、英語の勉強がてらL37-HR01のHDDに記録してみています。[Your Japanese Kitchen@NHK]

ダニエルさんはWikipediaにも、普通に母国語の英語をしゃべるだけでおどろかれると書かれていますが、その通りですね。。[ダニエル・カール@Wikipedia]

"tbsp"って何の意味だろ、とかって調べたりして…。
会話の流れは自然だし、ちゃんと英語で成立しているし、学校で習わないようなタイプの英語がきけるので、しばらくはまりそうです。

2009/03/02

秋月から購入した"dsPIC33FJ32GP202"を使おうとしてみる

右も左もわからずに始めたPICですが、いまさらだから開き直ってAVRもやろうという事で、今はAVRの環境も準備しています。
まだ仕事との連携は直接ないし、LED光らせる程度ですがいまのうちは楽しいですね。

8bit PICだけなのも寂しいので、秋月の通販でもろもろ購入するついでにdsPIC("dsPIC33FJ32GP202")購入してみました。
とりあえずPICkit2と接続するための基板がないとテストのしようがないので、あいかわらずガラスエポキシ基板にICコネクタと6ピンヘッダ+10kΩ抵抗+データシートで作ってみて困ったことのメモを残します。[dsPIC33FJ32GP202 DataSheet]

  1. 4ピンPGD、5ピンPGCに対応するピンが分からないところ。
  2. PICkit2ソフトウェアから認識されないところ。

PGD, PGCピンがわからない

dsPICのデータシートをみていて、微妙にというか、体裁以外は8bit PICと違うところが多くて困ってしまいました。ざっと眺めると"5.0 Flash Program Memory"で、PGEDx、PGECxのいずれかの組み合せと(Vdd,Vss,MCLR)とで使うと書かれていて、PGC,PGDとして{PGED1,PGEC1}を使う事にしました。

PICkit2から認識されない

ここまで順調にハンダ付けも終って、dsPICをソケットに挿してPICkit2を起動したけれど、どうしても電源周りの接続を確認するようにメッセージが表示されてしまいました。

PIC16F819との違いをみていて、Vssが2つあるのに気がついたので、両方をGNDに接続。
続いて、Vddcoreという端子に気がついてデータシートを調べてみると電源レギュレータの出力を安定させるためにコンデンサを挟んでGNDに接続するとのこと。

データシート曰く、

  • Vddに接続してはいけない
  • 容量は4.7uF~10uF (16V)の範囲
  • 種類はセラミックかタンタル
らしい。

手持ちにはパスコン用の0.01uF、0.1uF(104)ぐらいのものしかないので、中学時代に買ったジャンクのコンデンサ箱を漁って、やたら大きい0.24uFの積層コンデンサをみつけGNDとの間に挟んでみました。

これでうまくPICkit2から認識されましたが、"Flash Program Memory"の項目にはVddcoreの事は触れられてなかったなぁ。レギュレータの端子がGNDに落ちていないくても、コンデンサを直列に入れているから繋がなくても動きそうなもんだけどなぁ…。いろいろ難しい…。
中学の時に2アマに合格したものの、この方面は挫折してソフトウェアな人になったのに、電子回路の勉強しないとだなぁ…。

2009/03/01

Ubuntu 8.04のrinseでCentOS-5のイメージを作成する

rinseでcentosのイメージは簡単にできるだろうと思って、試したところうまく動きませんでした。CentOS-4ではURLの指定間違いなんかが報告されているようです。[Wrong server path for CentOS-4 in rinse.conf]
なにしろUbuntu 8.04で導入されるrinseのバージョンは0.9で最新版が1.5ですから、いろいろ不具合があるという事なのでしょう。[“rinse” source package in Ubuntu]
Vine Linux 4.2を導入する時にだいたい処理の流れはわかったので、動くようにしてみました。

PRMダウンロード先の変更

トラフィックを減らすためにRingサーバーにイメージの取得先を変更しています。 これは必須ではないですが、まぁ日本に住んでいるならRingサーバーにあるものは使いましょう、という事で…。
/etc/rinse/rinse.confを編集しました。

[centos-4]
mirror = http://ftp.iij.ad.jp/pub/linux/centos/4/os/i386/CentOS/RPMS/
mirror.amd64 = http://ftp.iij.ad.jp/pub/linux/centos/4/os/x86_64/CentOS/RPMS/
[centos-5]
mirror = http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/
mirror.amd64 = http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/CentOS/

CentOS5用/etc/xen-tools/xen-tools.confの準備

Vine同様にdistributionにcentos-5を指定したファイル(/etc/xen-tools/xen-tools.centos5.conf)を作成します。

$ sed -e '/^#/d' -e '/^$/d' /etc/xen-tools/xen-tools.centos5.conf
dir = /home/xen
install-method = rinse
size   = 4Gb      # Disk image size.
memory = 128Mb    # Memory size
swap   = 128Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = centos-5     # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.
gateway   = 192.168.1.1
netmask   = 255.255.255.0
broadcast = 192.168.1.255
kernel      = /boot/vmlinuz-`uname -r`
initrd      = /boot/initrd.img-`uname -r`
mirror = http://ftp.jp.debian.org/debian/
ext3_options   = noatime,nodiratime,errors=remount-ro
ext2_options   = noatime,nodiratime,errors=remount-ro
xfs_options    = defaults
reiser_options = defaults
serial_device = xvc0
disk_device = xvda  #default

/etc/rinse/centos-5.packagesの変更

なぜか基本的なライブラリが不足していたので、パッケージを加えました。

e2fsprogs-libs
yum-metadata-parser

この状態で以前のようにxen-create-imageを実行すると、起動はできますが、コンソールからのrootでのログインが行なえないため実質的には使えません。

$ sudo xen-create-image --config /etc/xen-tools/xen-tools.centos5.conf --hostname xen68 --ip 192.168.1.68

これは/etc/shadowでrootのパスワードが設定されていないために発生します。Vineやdebianのイメージではrootはパスワードなしで作成されるため、すぐにパスワードを設定するようにしていました。

解決策1:作業用IDを手作業で作成する

作ってしまったイメージを消すのも、もったいないのでそのまま作業用IDを加えてみます。

ディスクイメージが /home/xen/domains/xen68/disk.imgにあると仮定しています。 まずはこのディスクイメージをマウントします。

$ sudo mount -o loop /home/xen/domains/xen68/disk.img /mnt
$ sudo chroot /mnt

作業用のID"user1"を加えます。実際には自分が普段使っているIDを指定しています。

# /usr/sbin/useradd -m user1
# passwd user1
# /usr/sbin/usermod -G wheel user1

最後に"visudo"を起動して、wheelグループ(%wheel) のユーザーがsudoを実行できるようにします。 次の1行を加えます。

# visudo
%wheel ALL = (ALL) ALL

xenのイメージを起動する前にイメージをアンマウントします。

# exit
$ sudo umount /mnt
これでXenを起動して無事にログインできる事を確認しました。
$ sudo xm create -c /etc/xen/xen68.cfg

解決策(?)2:xen-create-imageのaccountオプション

rinseはXen dom0が稼働しているUbuntu 8.04上のアカウントをコピーする機能自体は一応持っているので、試してみる事にしました。

$ sudo xen-create-image --config /etc/xen-tools/xen-tools.centos5.conf --accounts --hostname xen68 --ip 192.168.1.68

ログファイルは"/var/log/xen-tools/xen68.log"にあって、どうもエラーを大量に掃き出している模様です。関係ないデーモン系のユーザーIDも以降しようとして、何かうまくいっていないようです。
このまま起動してもsudoの設定はされていないので、ログインができるだけで特権ユーザーにはなる術がありませんでした。実際には解決策1と同じ事をする必要がありそうです。
大量のIDを移行したいといった要求がなければ、これを修正してどうにかする必要性はないでしょう。

わざわざrootのパスワードを外すのも嫌なので、手動で自分用のIDを作成する事で回避します。この解決策2は使えないですね…。