a. Ångström + Debian/armel on Zaurus SL-C760

last modified 13/II/2010


Zaurus (SL-C760) で Ångström の助け(kernel, kexecboot, X11,...)を借りて、Debian/armel を動かす方法の(2009的)メモ。わかってる方には当たり前な内容かもしれないですが、知らないとハマる話が多いので…こんなサイトつくってみました。いまさら需要あるかどうか...。けど、知ってて損は無い話だとおもいます。予備機になっちゃった Zaurus 爺と、もうちょっと遊ぶのも一興?


Contents:



Overview : Zaurus で Debian 動かす方法は、古くからいろいろ有。ここに書くのは、Ångström の kexecboot kernel を使った Ångström と Debian/armel の dual(multi)-boot 環境構築法。
Ångström を先にインストールして、その Ångström 上で debootstrap 走らして Debian の rootfs を別の partition に作る。」(いまや、「常套」といっていいやり方でしょうか。)
 kexecboot kernel を活用して、両方とも SD(HC) にいれて kexecboot kernel 経由でデュアルブートできるようにする。沢山 partition つくってマルチブート環境を構築することも簡単。NAND からのブートはしなくて済むようになる。
 Debian 内での X の立ち上げ方も少々;ちとアレゲなやり方なんですが Ångström の X の一部を強引に Debian に放り込んゃえば、まともに動いてくれる。




Acknowledgements
多くの方々の本や web 上の document を
参考にしました。このメモに関連する idea を公表してくださった皆様、ありがとうございました。以下のサイトには、特にお世話になりました。ありがとうございました。
[1] Altair☆'s 三日坊主 blog, Altair☆ 氏.
[2] SL-C3000 debian 化(etch)59414d41氏.
[4] FC10 ZaurusにQt/E 4.5 を載せる,  Oh!Super164(blog) 鶏助電算研究所 -Diddly Technology Reserch Center-氏.
以下のメモの内容は、上記リンクを張らせていただいたものも含め、既知のアイデアの寄せ集めでしかありません。priority を主張するというような気は全くありません。特に、ある意味で Altair☆さんの blog [1] の内容の「二番煎じ」でしかありません。[1] を読んで、Ångström と Debian/armel のデュアルブートの方法を学びました。内容を self-contained にせんがため、重複している部分もあります。氏の blog は、とても丁寧に書かれているすばらしいものです。先ず、このメモを読まれる前にそちらに、あたって見られることをお勧めします。 しかし、2009 年に入って [1] で紹介されている altboot の 後釜である kexecboot が登場したわけですが、その導入法を書いてある日本語のサイトがあってもいいかもしれない? さらに、debootstrap での Debian の rootfs 構築後 から X の立ち上げまでを書いてある日本語のサイト(このメモのやり方はある意味ズルなやり方なんですが ^^;)もあっていいかもしれない?と思いこのメモを公表しました。

なお、このページ「解説」なんていうものからは程遠く、「私的メモ(俗に言うチラシの裏)程度のものでしかありません。読み易い解説、的なものを期待しないでくださいね。白状しますが、うちは Debian をどっぷり習熟している人間ではありませんし、あれこれやっているうちに X も動くようになっちゃって、なんか安定して動いているようなので、公表しても毒はないかなと、そんなもんでしかありません。てなわけで、怪しい推測まじりなもの(濃い色の部分の文)も混じってまして、そういった箇所は信用しないで眉に唾つけて読んでくださいね。 文中の command line なんかもたしかこれでうまくいってたはず、とおもいますが、メモと記憶をもとに再構成したものでしかなく、その全てを逐一実機で確認はとっているわけでもありません;ところによっては、以下の通りやってうまくいかない場合もあるかもしれません;ハマっちゃったら...自己解決ってことで…笑ってゆるしてやってください…;><。


Step 1. Prerequisites

1.1 NAND flash back up をとっておく。NAND flash recovery できるか確かめとく。
1.2 SD(HC)カード一枚。ext3 (ext2) の partition を2つ以上と swap partition(必須。うちは128MBでやってる。)を作っとく。もちろん partition の切り方は各自の自由なんですが、説明の都合上、以下のメモはその SD(HC) カードに3つ partition きって各々:
1st partition  Debian/armel をインストール
2nd partition
 Ångström を インストール
3rd partition  swap
という構成を想定。
参考までに Transcend, A-DATA, Silicon-Power ここ一年以内に買った SDHC (class6) の 4GB、8GB はどれもうまくいっている。ただ、相性、品質のばらつき等でうまくいかない可能性も、ひょっとするとあるかもしれません。


Step 2. Ångström, Kexecboot

2.1 Ångström Rootfs (via "narcissus" Online Builder)
このステップ、とくに未完成。今後加筆修正予定。
手軽に遊べるように
Ångström の cross build--bitbake--はしないで済むやり方。

2.1.1 Obtaining the Angstrom Rootfs via the "narcissus online builder"
"narcissus online builder" : 
に web browser でアクセスして Ångström の Machine=c7x0 の rootfs の tar 玉をゲット。
(narcissus online builder の使い方は... ともかく web browser でアクセスしてみればわかるはず。)

参考:online builder のオプション:2009 の 9月の頭頃、以下の choice
Machine: c7x0
Release: 
unstable (stable でも OK だった) 下記注意参照
Base system: 
regular (task-base)
/dev manager: udev
type of image: 
tar.bz2 (SD(HC) 上で動かすならこれか。28/XI/2009 追加)
Environment: X11Matchbox
Developement packages: NONE
Additional console packages: 
All kernel modules
Network related packages: Dropbear SSH severNTPdate
Additional X11 packages: NONE
で作った rootfs の tar 玉はうまく動作した。(ただし、下記 step 2.1.2 の修正は必要だった。)
注意:2010年2月現在 c7x0, unstable で X11 の入った image を online builder で作ることが出来なくなっています。(unstable でも console (つまり X11 無し)なら OK) なお、Step 5.1 の 3/II/2010 の追記 (feed に unstable 用の xserver-kdrive-imageon が無い)とも関連するとおもわれます。
c7x0 の X11 入りの image を online builder で作りたい場合は、stable でやるしかないようです。


その tar 玉を step 1.2 にて用意した SD(HC)カード の 2nd partition に untar。
Ångström のインストールは、ある意味これで完了。
こうして出来た SDHC 上の Ångström の kexecboot kernel による起動方法は、以下の step 2.2, 2.3 で。
ただ、初回ブート前に、ここで untar したばかりの SDHC 上の Ångström の rootfs の設定の微調整作業が必要。
特に step 2.1.2 は必須。 

補足:online builder の rootfs の使い方:Angstrom-distro-users, Angstrom-distro-devel から拾う。
蛇足:[18/I/2009 追記] narcissus online builder の 「jffs2」オプションで作った rootfs イメージは当然 NAND に焼きこんで使うものと予期されるわけっすが、その「NANDへの焼きこみ方」の Andrea Adami 氏による解説が
Fwd: [RFC] Zaurus: make updater.sh obsolete for poodle, clamshells and tosa) "
にあるのを発見。有難し。このリンクとそれに続くthread も必読。なんと旧来の updater.sh は使わず(多分 SD(HC) 等 NAND 以外でブートして、その)console 上から flash-eraseall,  nandwrite 等の mtd-utils のコマンド使って焼きこむことになるらしい。mtd3 に rootfs 焼きこんで kexecboot からの起動も可能らしい。すばらしい。(やる気はおきないっすけど)
備忘録的補足 その 1:updater.sh の内容の詳しい解析結果は 59414d41氏による古典的力作: Sharp PDA SLシリーズのページ/updater.sh代替ROMユーザーの誰もがおそらくお世話になったはずのページっすよね。なんと上記リンクでもその解析結果が引用されていました。)
(備忘録的補足 その 2:nandwrite 等の mtd-utils の一群のコマンドの解説は "Building Embedded Linux Systems (2nd Edition)" (O REILLY 2008)和訳]の Chapter 7 と 8。本家のドキュメントは http://www.linux-mtd.infradead.org/doc/general.html。勉強>自分)
(備忘録的補足 その 3:Ångström の mtd-utils のパッケージは、これ:mtd-utils かな? 本家のサイトは http://www.linux-mtd.infradead.org

2.1.2(重要)どはまりぽいんと。どうやら、online builder で作った roofts はそのままではうまく起動しない。初回ブート前に 地雷除去作業[Angstrom-distro-users/2009-August/002709] が必要。この mailing-list に書いてある通り:
「/etc/rcS.d/S10checkroot を S03checkroot に rename する」
とうまく起動するようになる(次善策?)
どうやら、udev の version (=141) があがったことによる不都合らしい。
2.1.3 /etc/udev.d/mount.blacklist〔行 /dev/mmcblk0 を追記。
補足:/etc/udev/rules.d/local.conf と /etc/udev/scripts/mount.sh みるとわかるが、/dev/mmcblk0pN が /media/mmcblk0pN に automount されるような udev rule が仕込んである。(CF slot も同様の処理がなされる。) 
 上記のごとく mount.blacklist に /dev/mmcblk0 を追記しておくと SD(HC) 上の 全ての partition の udev 経由の automount が止められる。うちはこうしちゃってる。
 その代わり、Ångström 以外の SD(HC) 上の partition の mount point は、/etc/fstab で指定している。
2.1.4 /etc/fstab 〔/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0 の "sync" option を削除。
"noatime" option を追加。〕
補足:sync option 付だと SD(HC) への書込みのパフォーマンスが恐ろしいくらい悪くなる。このメモの状況だとSD(HC)
 上に / があるわけで起動中に SD(HC) card を抜くことはありえない。ので、 sync option は外したほうが吉でしょか。noatime は、周知の通り、書込回数上限対策。
蛇足:この fstab は NAND に / がある状況を想定したものになっている。
もともと、Ångström/c7x0 は NAND の /dev/mtdblock2 に / があるのが標準だったわけで、確かにそのような状況だと、いつ SD カードが抜かれてもいいように、sync option を付けておくのは自然っすかね。
2.1.5 /etc/fstab 〔行 /dev/mmcblk0p3 swap swap defaults 0 0 を追加。




2.2 Kexecboot

2.2.0  kexec をうまく使ってマルチブート環境をつくるというのは、各所で使われているテクニック。この kexecboot は、Ångström 発のもの。initramfs と kexec を巧妙に使った擬似ブートローダ+ブートセレクタ(という解釈であっている?)。2008 年の暮れごろから 実用段階に入ったみたい。
 このメモでは、この kexecboot を使って SDHC 上の Ångström と Debian/armel をブートさせる。この step 2.2 では、kexecboot kernel のインストールと rootfs の設定を遂行。

参考ページ:
   - Improve Kexecboot (in elinux.org) 

[11/II/2010 追記]
Andra Adami 氏の
アナウンス (6/II/2010):
にあるとおり、"Zaurus PDA development project" 
 page:
に、最新?版 (git-20091220) の kexecboot kernel のコンパイル済みのバイナリがアップされています。(spitz, akita版も有)
「2.6.26ベースの安定版」と 「2.6.32+2.6.33rc6(?)ベースの人柱?版」の2種類があり、SL-C760 で使ってみましたがどちらもうまく動作しました。そのときの作業メモを 煩悩あるいは有言不実行 ページの [11/II/2010; SL-C760] に書いておきました。後日、このページにも反映できたらする予定っす。 反映しました。(書き直し...大変そうで躊躇してるす。あるいは、kexecboot の新しいページを新設っすか...

2.2.1 Kexecboot: INSTALL
現時点 (II/2010) で、c7x0 用のコンパイル済みの kexecboot kernel は新旧二種類あり。どちらも、きちんと動作するのは確認した。古い方のインストール法は下記 (OLD)、新しい方のインストール法は下記 (NEW) で。

(OLD) http://www.angstrom-distribution.org/demo/kexecboot/ にある demo 版?の kexecboot kernel の c7x0 版:zImage-kexecboot-2.6.26-r12-c7x0.bin を通常のカーネルのアップデートと同じやり方(下記参考)でNANDに焼きこむ。
参考:間違えると、恐竜 brick 出来上がりかもしれないとこっす。ここは、自己責任で。
ダウンロードした kexecboot kernel:zImage-kexecboot-2.6.26-r12-c7x0.bin を zImage.bin に rename して、updater.sh (こことかこことかの …installkit.tgz に同梱されてる updater.sh で OK だった) と一緒に SDカード(確か FAT16 のみだったっけ)のトップディレクトリに置いとく(注意:SD カードに置くのは、それら二つのファイルだけ)。電池ぶた、電池、ACプラグ外して数秒おく。電池、電池カバーまた取り付ける。先の SDカードを SD スロットに挿す。ACプラグ挿す。「OK」押しながら ON/OFF ボタン押して起動。「メンテナンス」画面の「4. アップデート」ー>「アップデート経路」画面でるので 「3. SD」を選択。てな感じでよかったはず。(CFでもできるはず?やったことないからわからないっす)

にある c7x0.tar.gz をダウンロード。その中にある 
zImage-kexecboot-2.6.26-r18-c7x0.bin (安定?版)
または 
zImage-kexecboot-2.6.32+2.6.33-rc6-r18-c7x0.bin(人柱?版) 
のどちらか好きなほうを、やはり c7x0.tar.gz 内の updater.sh.c7x0 で NAND に焼きこむ。(zImage-kexecboot-*.bin は zImage.bin にリネーム。updater.sh.c7x0 は updater.sh にリネームして SD (FAT16) のトップディレクトリに置く。(SDカードに置くファイルはその二つだけ。)で、その SD カードを使って、上記参考の方法で NAND mtd1 の kernel 部分に焼きこむ。)

以上で、kexecboot kernel のインストールは、完了。
kexecboot kernel によってキックされる「本番の」kernel は、起動させたい partition の /boot に置く;次の Step 2.2.2 Kexecboot USAGE 参照。
Step 2.1 で用意した SDHC 上の Ångström はこの時点で kexecboot から起動可能になっている。
今すぐ起動したい場合は Step 2.2.2 を飛ばして Step 2.3 へ。

[3/II/2010 追記] 備忘録的補足:Ångström の updater.sh の source code は:
SHARP オリジナルの updater.sh の解析については:
"SL-C3000 Updater Script" in OESF Wiki. (highly commented walkthrough... すばらしい):

2.2.2  Kexecboot: USAGE
kexecboot で起動させたいパーティション (NAND, SDHC (CFは試したこと無いのでわからないっす)) の /boot に
(1)カーネルイメージ zImage (と対応する kernel modules も /lib/modules/...に)
(2:OLD ) カーネルパラメタを書き込んだ設定ファイル kernel-cmdline
(2:NEW )設定ファイル boot.cfg
を置いておく。(2:OLD)、(2:NEW) はそれぞれ step 2.2.1 の (OLD)、(NEW) に対応。
 ちなみに、step 2.1 で online builder でゲットした Ångström の rootfs の /boot には上記 zImage と kernel-cmdline または boot.cfg は、仕込んであるのでstep 2.1.1 で untar した時点で既に「kexecboot で起動可能」になっている。
 以下述べる様に、SD(HC) 上に debootstrap で作る Debian/armel の rootfs も Ångström の kernel と kernel modules を使って kexecboot からブート可能。そのための /boot/... と/lib/modules/... の設定の実際は step 4.1 で。
 kexecboot kernel を NAND にインストールしてある状態で起動(=cold boot)すると(Ångström のブートスプラッシュの裏で一旦 initramfs 上で起動して)上記の(1)と(2)を仕込んである partition(s) を起動時に (多分 initramfs 上で) 探し出してブート可能な partition(s) をメニューにしてリストアップしてくれる(上の写真参照)。ブートしたい奴を選んで ENTER 押すと裏で (多分 initranfs 上で) kexec 実行して (1)の zImage をメモリにロードして (2)の kernel-cmdline に書いた kernel parameter で起動(=warm reboot)してくれる。

以下、蛇足。急ぎたい方は、 goto next step 2.3。
[8/I/2010 追記] kexecboot kermel の動作の開発者自身による説明が:
にあるのを見つけました。上記の想像半分の中途半端な説明でおおよそあっているようですが、kexecboot の動作のきちんとした解説はここで引用したリンクの開発者自身の書かれたもの参照願いますです。

補足:NAND の rootfs の kexecboot 方法。
kexecboot 時代以前の 古め (2007.12-stable とか) の Ångström を NAND に焼いちゃってる場合、
 - /boot に zImage と kernel-cmdline あるいは boot.cfg を置き、
  (なんと kernel-cmdline も boot.cfg も /boot に「無い」状態でもきちんと起動できた)
 - /lib/modules/... に /boot/zImage に対応する kernel modules を置いておく
ことで、NAND の Ångström (stable 2007-12; kernel, kernel-module は 2.6.26-r9) の kexecboot からのブートできた。
参考:/boot/boot.cfg の中身:
LABEL=angstrom stable-2007.12
KERNEL=/boot/zImage
で NAND の Ångström は起動できた。(boot.cfg の APPEND=... は無しでOKだった)
 その作業をせず kexecboot kernel だけいきなり焼き込んじゃった場合 NAND からブート出来なくなってしまうが、online builder で作った rootfs を SDHC にインストール(=untar) して、kexecboot で SDHC からブートして、その SDHC 上の Ångström に /dev/mtdblock2 を mount して、上述の kexecboot を可能にする設定作業をすればよい。
 /boot に置くカーネルイメージ (/boot/zImage) は kexecboot が当たり前になった時期以降の、最近のやつの方が無難かもしれない。kexecboot での起動を手っ取り早く試すには、ちょっと前までここに置いてあった 2.6.26-r9 のカーネル・カーネルモジュール一式だと Angstrom も Debian/armel も kexecboot からブート出来てたんだけど今は無くなっている。残念;なので、現状 "online-builder" で オプション "all-kernel-modules" 付で rootfs 作って、その tar ball のなかの /boot/zImage と /lib/modules/… を使うのがもっとも手っ取り早そう(もちろん、bitbake してもいいっすけど。そういう方は、ここの読まなくてももうやってる筈っすか...ね。あと、自前で kexecboot kernel を buildしたかったら、どーやら、ここによると  "bitbake zaurus-installer" するといいみたい試してないので不明っす。試してみたいんすが、暇なさそうっす。涙。sharp ROM (の kernel) を kexecboot で起動させられるかどうかは試したこと無いので不明っす。
 [ 19/I/2009 追記 ] narcissus online builder で jffs2 の rootfs イメージを作って、それを step 2.1.1 の蛇足 [18/I/2010 追記] に挙げたリンク:[openembedded-devel/2010-January/016372] に書いてあるやり方で NAND に焼いてそれを kexecboot でブートできるらしい。どうやらこれが「最新」の Ångström の 「NAND への」最も手軽なインストール方法っぽい。

蛇足:いや、 kexecboot、サイコー。世界が、かわる。なんといっても /boot に kernel image 置いとけるから、カーネルの入れ替えが手軽、気楽。カーネルのサイズ制限も無。ひとたび kexecboot-kernel  焼きこんじゃえば、もう二度と NAND いじくらなくて済むようになる(書込回数制限心配)。いやむしろ NAND からブートしなくて済むし、めったにしなくなる。SD(HC) 上のマルチブート環境の構築がたやすくできる。SDHC 安くなったし、安心して使い潰せるし。こりゃ幸せ。が、困ったことに kexecboot の公式のドキュメントは(多分)未だない。 →上記[8/I/2010追記]参照;開発者のひとが、mailing list の議論のなかで、kexecboot-kernel の動作の読み易い説明をしてくださってます。必読。kexecboot の使い方を「丁寧に」書いている方もほとんどおられないんすよね。わかってしまうと、たいしたことないからなぁ。いや、いないというのは嘘なんですが、探しても見つけにくい。今年(2009年)の春ごろだったか...使えるまではまりまくったのは、誰にもいえない秘密っすよ。わはは。やっとみつけた [3] Bernad Schmmer さんのページには、ばっちりかいてある、しかし…ドイツ語なんすよね…がんばってよみました。そんなこともあって、日本語のものがあっても…と、こんなメモ公表しようと思ったわけでして…。

2.3 (Kexec)booting Ångström from SD(HC) この節も、未完成。今後加筆修正予定。
SD(HC) 上の Ångström を kexecboot kernel 経由で起動、最低限の初期設定。
step 2.2.1 の kexecboot kernel のインストールが終わったら、step 2.1で作った Ångström 入りの SD(HC) カードをスロットに挿して起動すれば、ブートスプラッシュのあとにくるメニューに Ångström 入れた SD(HC)カードのパーティションが step 2.2 の頭の写真みたく表示されてるはず。カーソルキーでそれを選択して ENTER 押せば Ångström がブートするはず。(反応は鈍いゆっくり落ち着いて操作)

初回ブート直後の初期設定
するÅngström Manual
(debootstrap が走らせられる必要最低限のみ書く予定)
 
- timezone 設定(はまり易し、上記 [1] によい解説有です。)
 - ネットワーク設定 Ångström Manual に従う(Debian そっくりっす:http://www.debian.org/doc/manuals/debian-reference/ch05.ja.html も参考になりそう。)
 - uid=gid=1000 の user の作成。省略可、でも Debian の home と共有可になって後々便利。
(tiny login の adduser ぺけ。「手で /etc/passwd、/etc/groups を加工、手で /home/USERNAME を掘る」式で強引につくる。)
 - &c. あと、必要なもの...


Step 3. Debootstrap: Creating Debian Rootfs

Step 2 から引き続き Ångström 上での作業。
Ångström(SD(HC) の/dev/mmcblk0p2 にあると仮定)上で debootstrap 走らして、Debian の rootfs を (SD(HC) の /dev/mmcblk0p1に) 作成。
3.1 debootstrap の実行に必要(そう)な Ångström の パッケージ達をインストール:
 # opkg install tar grep gzip bzip2 wget perl binutils-symlinks coreutils gnupg
busybox のだとちょいと不安なので入れ替えている。入れ替えないで busybox のままでも debootstrap 上手くいくかどうかは、試したこと無いので知らない。coreutils はいらないかも、これも心配だから入れてあるだけ。
3.2
次に、debootstrap を debian/pool から wget してインストール。
 # wget http://ftp.jp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.10lenny_all.deb
 # opkg install
debootstrap_1.0.10lenny_all.deb
opkg install で入っちゃうんすが…(インストール後、debootstrap うまく動作もした)心配な場合、本家のインストールドキュメント:
にあるとおり「通常」の 「ar -x で deb を解凍」 -> 「data.tar.gz を / にて untar 」で「インストール」。
squeeze/sid の人は 1.0.20 (2009年12月2日現在) で。
3.3 debootstrap 実行:
 # echo $PATH
 /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
〔$PATH まとも?、確認〕
 # cat /proc/meminfo 〔swap 有効になってる? swap off だと debootstrap うまくいかないかもしれない〕
 # date
〔時刻OK? 確認〕
〔老婆心:debootstrap 実行前に /dev/mmcblk0p1 がどこかに (auto)mount されてないか、チェック。step 2.1.3 の 作業:/etc/udev/mount.blacklist の追記を端折った場合、起動時に udev が /dev/mmcblk0p1 を /media/mmcblk0p1 に automount しちゃってて「sync option ついちゃってるはず」これが大問題。「おう、automount されてんなら、それ使っちゃえ」と debootstrap の rootfs 作成先をその /media/mmcblk0p1 にしちゃうと…罠になってる…。というのも、デフォルトのままだと sync option 付のはずなので、次の debootstrap 物凄い時間かかってしまう。ほんとに「物凄い」ので...要注意。〕
 # mount -t ext3 -o rw,noatime /dev/mmcblk0p1 /media/card 〔既に automount されてる筈(cf. step 2.1.4)だけれどそうでない人は、ここで mount。〕
 # /usr/sbin/debootstrap --arch armel --include=udev,apmd,pcmciautils,console-tools,ntpdate lenny /media/card http://ftp.jp.debian.org/debian
実際は一行。/dev/mmcblk0p1 を /media/card にマウントしてるのを前提。〕
補足:
- debootstrap 完了まで、うちの場合(B-flets マンションタイプ)で 40-50 分ぐらい。メモリ確保のため X は落として、console 上で debootstrap 実行しているっす。X の落とし方は以下の通り:
    1. rxvt 上で「su --> chvt 1」で console に降りれる
    2. root で login
    3. /etc/init.d/gpe-dm stop で X 落ちる
ちなみに、/etc/rc5.d/S99gpe-dm を _S99gpe-dm に rename (あるいは chmod a-x、またあるいは remove)してやれば、ブート時に X が起動しないように出来て、console からログイン出来る。(たしか、OpenZaurus-ja のどこかに書いてあった話っす)console から X を立ち上げたければ、su して /etc/init.d/gpe-dm start すれば、OK。 
- SD(HC) の書込みが速い環境を持っている方は debootstrap を cross 実行したほうが速いかも。上記リンクの [1], [7] にdebootstrap の cross 実行の読み易い解説有です。
- Debain の鯖の様子が変な場合は Debian mirror checker でチェック。
- option の --include=...にいれる package(s) は、任意なんですが、以下のメモは上に書いてあるのを前提にして書いてあるっす;経験上、上記の package 達は、ここで入れといちゃうのが楽チンかと。(あるいは、後の方の step 4.7 で Ångström から Debian に chroot するけど、そこで apt-get update, apt-get upgrade, apt-get install ... しても OK
 特に console-tools(または kbd)は重要、これ無しで Debian を kexecboot でブートさせると、keymap が目茶目茶でとんでもないことになるっす(see step 4.4)。


Step 4. Debian: pre-1st-boot initial configurations

前ステップの debootstrap 終了後、引き続き Ångström 上で作業続行。上で debootstrap にて構築した Debian の roofts に初回ブート前に仕込んどくべきもの、および最低限の Debian の初期設定を実行。
老婆心ながら Debian の rootfs のある /dev/mmcblk0p1 は引き続き /media/card にmountしてあるものとして話は進行。
4.1 Kernel, Kernel Modules
Ångström のカーネル、モジュールを Debian 内(/dev/mmcblk0p1 mounted on /media/card)にコピーで放り込む。
 # cd /media/card/boot
 # cp -a /boot/zImage ./zImage-2.6.26-r11.3
 # ln -s zImage-2.6.26-r11.3 zImage

 # cp -a /usr/lib/modules/2.6.26/ /media/card/usr/lib/modules

 # cp /etc/modules /media/card/etc
 # vi /media/card/etc/modules 〔必要ない module をコメントアウト。全部コメントアウトしても使えてる。〕
depmod -a は後のほう(step 4.7)で chroot したときに施す。
蛇足:zImage を rename して link 張りなおしているのは、後で取り替えたくなったときわかんなくなるから。深い意味は無いっす。ちなみに "r11.3" はこれ書いている時点--IX/2009 の頭ごろ--online builder で作った rootfs にはいってたやつのもの)
4.1~ /boot/kernel-cmdline, /boot/boot.cfg (省略可?)
続いて、kexecboot 用の 設定ファイルの用意。kexecboot の version の新旧で二通りあり: 
(OLD) kexecboot demo版 (zImage-kexecboot-2.6.26-r12-c7x0.bin) を使っている場合は、下記 kernel-cmdline を /boot に置く。
(NEW) kexecboot-git-20091220版(zImage-kexecboot-2.6.26-r18-c7x0.bin または zImage-kexecboot-2.6.32+2.6.33-rc6-r18-c7x0.bin)を使っている場合は、下記 boot.cfg を /boot に置く。
なお /boot に kernel-cmdline と boot.cfg の両方が置いてあっても OK。
 # cp -a /boot/kernel-cmdline . 〔中身はそのままでOK〕
 # cp -a /boot/boot.cfg .
 # vi boot.cfg 〔一寸、加工。下記参考〕
 参考、boot.cfg の内容(DEFAULT=angstrom の行は削除した):
 LABEL=Debian/armel 5.0.4 (この行無しでもOK)
 KERNEL=/boot/zImage
 APPEND=console=ttyS0,115200n8 console=tty1 noinitrd debug (この行無しでもOK)
以上の作業で、Debian を kexecboot から boot 可能になっているはず。ただ、はやる気持ちを抑えて Debian の初回 boot 前に以下の設定作業っす。特に Step 4.4 の keymap の設定はここでやっとかないと、Debain boot しても「/」 が入力できなかったりで「はまり」なので注意っす。
蛇足:実は、/boot/kernel-cmdline (OLD) あるいは /boot/boot.cfg (NEW) が「無い」状態でも、kexecboot からきちんと起動できた。なあんだ、そうだったのか。
4.2 Network Configuration
 # vi /media/card/etc/hostname〔適宜〕
 # vi /media/card/etc/hosts〔適宜〕
 # vi /media/card/etc/host.conf〔適宜〕
 # vi /media/card/etc/resolv.conf〔適宜〕
 # vi /media/card/etc/network/interfaces〔適宜〕
 # vi /media/card/etc/modprobe.d/alias
  ipv6オフにする:17行目 alias net-pf-10 ipv6  --書換-->  alias net-pf-10 off
参考:http://www.debian.org/doc/manuals/debian-reference/ch05.ja.html
4.3 fstab, inittab
 # vi /media/card/fstab 〔適宜〕
 # vi /media/card/inittab 〔空きメモリ確保 のため tty(2),3,4,5,6 はコメントアウトとか〕
4.4 keymap (IMPORTANT!!!)
Ångström の boot 時に keymap 設定をする rc-script 達を Debian にコピー。
ちなみに、step 3.3 の補足に書いたとおり、Debian 内に console-tools か kbd が install されている必要あり(その意味でstep 3.3 の debootstrap の --include=...に console-tools が入れてある。)
Debian 内の /etc/rcS.d と /etc/init.d は壊さないように慎重に作業しませう。作業前に backup をとっておくと吉かも。
 # cp /etc/keymap2.6-map /media/card/etc
 # cp /etc/init.d/keymap /media/card/etc/init.d/keymap-angstrom
 # cd /media/card/etc/rcS.d

 # ln -sf ../init.d/keymap-angstrom S01keymap-angstrom
(too redundant?)
 
# ln -sf ../init.d/keymap-angstrom S49keymap-angstrom
蛇足:/etc/console/boottime.kmap.gz か、あるいは /etc/console-tools/remap あたりで処理するのが本来の Debian mannerま、上のやり方で、うまく動いてるので…放置。「S48-console-screen」の直後がよさげと思い「S49」。「S01」は駄目押し。
なお、Calender, Addless, Mail, Home, Menu ボタン等に Ctrl, Alt,..., &c. を充てたかったら、showkey コマンド使って keycode 調べて /etc/keymap-2.6.map をいじる。参考までに誰もがいじりたくなるであろうキーの keycode (10進)
 key keycode
   key keycode
 カナひら 29
   OK 87
 全/半 56
   Cancell 62
 fn 61
   OK(背面) 63
 Calender 59
   Cancell(背面) 64
 Address 60
   , /
51
 Mail 68
   - 12
 Home 99
     
 Menu 88
     
ちなみに Debian の showkey の出力は、16進なので読みにくい… Ångström の showkey は10進で出力してくれるのでそっちでやったほうが楽。…Debian の showkey を 10進で出力させるには、どうしたらいいかわかんないんす…orz
4.5 /etc/apt/...
 # vi /media/card/etc/apt/sources.list適宜
 # vi /media/card/etc/apt/apt.conf〔適宜〕
4.6 udev rules (省略可 --> cf step 5.4 の蛇足)
/etc/udev/local.conf  を新設。タッチスクリーンの device node への symlink:/dev/input/touchscreen0 -> /dev/input/event1 が自動生成されるようにする rule を追加: 
 # vi /media/card/udev/rules.d/local.conf
 内容:
 SUBSYSYTEM=="input", KERNEL=="event[0-9]*", SYSFS{modalias}=="input:*-e0*,3,a0,1,*18,*", SYNLINK+="input/touchscreen0"
 SUBSYSYTEM=="input", KERNEL=="event[0-9]*", SYSFS{modalias}=="ads7846", SYNLINK+="input/touchscreen0"
(補足:上の2行は Ångström の /etc/udev/rules.d/local.conf のケツ2行:
http://cgit.openembedded.org/cgit.cgi/openembedded/tree/recipes/udev/udev-141/local.rules
 それをこぴぺする。)
蛇足:Ångström の /etc/udev/rules.d/… をどこまで Debian に移すか?カーネル Ångström のカーネルを使っている以上、ほんとは、両者徹底的に比べて、 Ångström specific  のものを Debian に持ってくるのが本来? しかし、そこまでしなくても、使っている範囲内で問題は起こってない模様っす。udev rules むずいし...放置っす.
4.x Timestamp...(面倒なら省略可)
PXA25x 内臓の rtc は、ぺけ? reboot するたび、A Happy New Year 1970 ! orz(多分 Ångström のカーネルが ill なわけじゃなさそ?) Ångström の rc-scripts にある remedy を Debian にもってくる。「shutdown 時 / を umount する直前に時刻をファイルに書き込んどいて、次の boot 時にそれをつかって暫定的に時刻設定(最悪、時刻 -∞ は避けられる。)そんで、login してから date command で正確な時刻設定し直す。」つーのは、rtc が無かった頃からある古典的 bad know-how みたい?以下の作業、Debian 内の元々の /etc/init.d と /etc/rcS.d を壊さないよう注意が必要。
 # cp -a /etc/init.d/bootmisc.sh /media/card/init.d/timestamp-angstrom.sh
〔Warninig:Debian 内の /etc/init.d/bootmisc.sh を overwrite しないように。〕
 # vi /media/card/init.d/timestamp-angstrom.sh
 内容:
 #!/bin/sh
 test -x /etc/init.d/hwclock
-angstrom
.sh && /etc/init.d/hwclock-angstrom.sh start
 if test -e /etc/timestamp
 then
 
    SYSTEMDATE=`date "%Y%m%d"`
     TIMESTAMP=`cat /etc/timestamp | awk '{ print substr($0,9,4) substr($0,1,4);}'`
     NEEDUPDATE=`expr \( $TIMESTAMP \> $SYSTEMDATE \)`

 
    if [ $NEEDUPDATE -eq 1 ]; then
 
        date `cat /etc/timestamp`
 
        /etc/init.d/hwclock-angstrom.sh stop
 
    fi
 fi

補足:Ångström の /etc/init.d/bootmisc.sh のケツ数行に上の内容の部分がある:
http://cgit.openembedded.org/cgit.cgi/openembedded/tree/recipes/initscripts/initscripts-1.0/bootmisc.sh
その部分をコピーして流用している。そのなかで、実行している hwclock.sh も Ångström の /etc/init.d からコピーするが、同名のスクリプトが Debian の /etc/init.d にあるので 「-angstom」をつけたしてコピーすることにした (下記参照);なのでそれに相当する修正 hwclock.sh -> hwclock-angstrom.sh (3箇所) も加えている。
続けて:
 # cp -a /etc/init.d/hwclock.sh /media/card/init.d/hwclock-angstrom.sh
〔Warninig:Debian の /etc/init.d/hwclock.sh を overwrite しないように。〕
 # cp -a /etc/init.d/save-rtc.sh /media/card/init.d/save-rtc-angstrom.sh
 # cd /media/card/etc/rcS.d
 # ln -sf ../init.d/timestamp-angstrom.sh S38timestamp-angstrom.sh
 # cd /media/card/etc/rc0.d
 # ln -sf ../init.d/save-rtc-angstrom.sh S39save-rtc-angstrom.sh
 # cd /media/card/etc/rc6.d
 # ln -sf ../init.d/save-rtc-angstrom.sh
S39save-rtc-angstrom.sh
保存
S39ifupdown の直前がよかろうかと思い、"S38"timestamp.sh にしてみた。
蛇足:勿論、ntpdate をインストールしてあって、boot 時に nic が挿してあれば、ntpdate が boot 時点で走るので問題は無い。しかし、network に接続できない状況で (re)boot するときに「時刻=-∞」問題が発生。 以上の作業をしておけば、上記のごとく、off line 時に cold-boot or reboot した時の時刻は、前回 shutdown したときに / を unmonut したしたときの時刻に設定される(時刻=-∞は防げる。)
4.7 Chroot, Final Touch and Booting Debian
詰。Debianに chroot にて侵入、設定。(このタイミングで、apt-get update して、初回 boot 前に入れておきたい package(s) を apt-get install して設定してもOK。)
 Å # /usr/sbin/chroot /media/card /bin/bash
 D # mount -t proc proc /proc
 D # mount -t devpts devpts /dev/pts
 D # su -

 D # passwd root の password 設定〕
 D # adduser USERNAME 〔USERNAME は適宜。〕
 D # dpkg-reconfigure tzdata
 D # exit
 D # umount /dev/pts
 D # umount /proc
 D # exit

 
Å # shutdown -r now
で、kexecboot -> Debian 起動できるようになっているはず。
 X はいらない場合、これでおしまい。状況は、普通の最小構成 Debian インストール直後と同じとおもっていいっすかね。あと locale のインストールと設定とか(apt-get install locales --> dpkg-reconfigure locales)が必要っすか。これ以降は、各自のおこのみの設定を適宜進めてくだけ。

蛇足:このタイミングで、必要なら apt-cache clean したりして、出来上がった Debian rootfs の tar ball を作っとくと吉。次回クリーン インストールしたくなったとき debootstrap しなくて済む。楽。)

蛇足ながら:
- jfbterm(C7x0 なら rotation patch いらず)も  fbterm も楽勝で使える;apt-get install+設定だけ。fbterm は、設定ファイル ~/.fbtermrc 内で回転角度指定可能。あ、fbterm は apt-get install 出来るのは squeeze 以降、lenny で野良 build したメモのページ:g. fbterm on Ångström + Debian/armel 作りました。)動作速度も、まあ「そこそこ」だとおもいます。
- (uim-fep +) Anthy もインストールに時間かかるけど(最短記録3時間ぐらい… swap しまくり…わはは…、mkworddic は main memory 64MB じゃ少なすぎみたい?) 、実際の動作はそれなりに軽快。
- 残念なのは、zsh (bash-completion) 重杉。prime 重杉。
(いや、こうなっちゃうと…何をやるにも Debian の方が破格に楽なわけで…うちは、Ångström には、もうもどれなくなった。bitbake system は勉強になること多いし、魅力なんだけどなー…)


Appendix 5. X window system (initial setup)

5.0 Basic Strategy 単に以下の5つの Ångström の package:
xserver-kdrive-imageon,
xserver-security-policy, libts-1.0-0, tslib-conf, pointercal
を Debian 内に強引に放り込む。そんだけなんすが、ほんのちょいトリッキー。ちなみに、依存ライブラリは Ångström とDebian のとでちょいと食い違うはずなんですが、何故か見た目まともに動いてしまう。うまく動かないパケジもあるかもしれない、が、自分が使ってる範囲内で目立った困難は一切生じていないっす。ほんとは、xserver-kdrive-imageon も libts も Debian の userland で build し直すのが本筋なのでしょうが...使っている範囲内で問題生じてないのでめんどくさいので放置したままっす。
5.1 前もって Ångströmfeed から wget:
[3/II/2010追記] 注意!以下の packages の version は、2009年9月頃の unstable ものです。Ångström の feed は変化激しいので、version, revision の部分は適宜 download する時点のものに変えて読んでください。(step 5.0 のリンクから)feed browser に行けば、現在 feed に存在するものは確認できます。
 $ wget http://angstrom-distribution.org/unstable/feed/armv5te/base/xserver-kdrive-imageon_1.2.0-r7.3_armv5te.ipk
 $ wget
http://angstrom-distribution.org/unstable/feed/armv5te/base/xserver-security-policy_1.4.2-r3.2_armv5te.ipk
 $ wget http://angstrom-distribution.org/unstable/feed/armv5te/base/libts-1.0-0_1.0-r22.3.3_armv5te.ipk
 $ wget http://angstrom-distribution.org/unstable/feed/armv5te/base/tslib-conf_1.0-r22.3.3_armv5te.ipk
 $ wget http://www.angstrom-distribution.org/unstable/feed/armv5te/machine/c7x0/pointercal_0.0-r15.3_c7x0.ipk
補足:3/II/2010 現在 xserver-kdirve-imageon_1.2.0  の unstable 版は、何故か?feed に存在せず... OE build stats:
で xserver-kdrive-imageon を検索すると1.2.0-r8 は Succeeded になってるんすが...。2008.6 か 2007.12 のものでもうまくいくと思われます。自分の過去の経験で言えば、2007.12stable のものは Debian/armel lenny 上でうまく動作していた覚えはあります。今現在 feed にある 2008.6, 2007.12 のものが Debian/armel 上でうまく動作するかは「やってみて、うまくいったらラッキー」てなかんじでしょか... そもそも、うまくいっちゃってるのが不思議な話なんで... たとえば、上記の "unstable" の packages の替わりに ”2008.6" (=stable/2009?) のもの (version, revision は 3/II/2010 現在) を wget:
 $ wget http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base/xserver-kdrive-imageon_1.2.0-r6.1_armv5te.ipk
 $ wget http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base/xserver-security-policy_1.4.0.90-r5.1_armv5te.ipk
 $ wget http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base/libts-1.0-0_1.0-r20.1_armv5te.ipk
 $ wget http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base/tslib-conf_1.0-r20.1_armv5te.ipk
 $ wget http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/machine/c7x0/pointercal_0.0-r12.1_c7x0.ipk
して、これら5つで、以下の工程の作業をすれば(試してはいませんが)うまくいくのでは、と思われます。
5.2 X.org Core Part
先ず、Debianの X.org の基本部分をインストール:
 $ sudo apt-get install x-window-system
余計なお世話的蛇足その1:これじゃあ、がばーーっといらないもんまでイモズルで入っちゃうから、やだ…って場合は、apt-get install xserver-xorg xinit xauth &c. ...... と必要な物のみしこしことうちはそうしてるっす;たとえば、4GB の SDHC の場合でも、ぼけっと apt-get install 繰り返していると、あっという間に空きが少なくなってきちゃうんすよね…)いや、そういう方には説明不要かと…。一応誰が読んでも、という想定でかいてます。
余計なお世話的蛇足その2:あと、equivs を使って、中身が空っぽの xserver-xorg-video-all の dummy package を作って xserver-xorg の前にインストールしとくと、全く使わない xserver-video-* 達がイモズルにインストールされる(かなりムカつく...んすよね^^;;;)のを防げる。
(xserver-xorg-input-all とそれでイモズルに入る奴らも不要かも?これは試して無いからわからないっす。)
/usr/bin/Xorg 退避:
 $ sudo dpkg-divert --add --rename /usr/bin/Xorg
続いて、Ångströmxserver-kdirve-imageon と xserver-security-policy をインストール:
 $ ar -x xserver-kdrive-imageon_1.2.0-r7.3_armv5te.ipk ; sudo tar zxvf data.tar.gz -C /
 $ ar -x xserver-security-policy_1.4.2-r3.2_armv5te.ipk ; sudo tar zxvf data.tar.gz -C /
蛇足:dpkg -i --force-all (or --force-architecture ?) でもインストール可。(--force-all はいらない?) 実は、うちはそうしているんすけど、--force-xxx の意味きちんと把握できているわけじゃなくて…自信ないので無難な「ar -x --> data.tar.gz を / で untar 式」のを書いといたっす。ま、上の二つは、Debian にバッティングする package ないから dpkg でインストールしても、後々困ることはなさそっすか?
で、symlink 張る:

 $ cd /usr/bin
 $ sudo ln -sf Ximageon Xorg
蛇足:/usr/bin/X を Ximageon で「置き換え」て SUID bit たてるのでもうまくいくはず。どっちが正解? わからないでやっているっす^^;)。ただ、むやみに SUID bit いじくりたくない。Ångström では /usr/bin/Ximageon にSUID bit はたててない。なので /usr/bin/X じやなくて、/usr/bin/Xorg のほうを置き換えるのが better てな解釈が妥当?
5.3 Installing "libts"
 
タッチスクリーンのライブラリ libts 周りのインストール。
ぷちはまりぽいんと:
Debian (lenny) の libts-0.0-0 と Ångström libts-1.0-0 は、中身を較べてみるとわかるんすが、モロにバッティング。結構ありきたりな package が libts-0.0-0 に(何故か?)イモズルで依存している模様?;知っている限りで rxvt-unicode とか awesome とか。
インストールの順序が重要:つまり、Ångström の libts-1.0-0, tslib-conf に先んじて、Debian の libts-0.0-0 を入れとかないと、あとでハマる。
てなわけで、
先に Debian のをいんすこ:
 $ sudo apt-get install (tsconf) libts-0.0-0
その後に Ångström のを「いんすこ」:
 $ ar -x pointercal_0.0-r15.3_c7x0.ipk ; sudo tar zxvf data.tar.gz -C /
 $ ar -x tslib-conf_1.0-r22.3.3_armv5te.ipk ; sudo tar zxvf data.tar.gz -C /
〔強制上書。わはは(汗〕
 $ ar -x libts-1.0-0_1.0-r22.3.3_armv5te.ipk ; sudo tar zxvf data.tar.gz -C /
〔強制上書。わはは(汗〕
 $ cd /usr/lib
 $ sudo ln -sf libts-1.0.so.0.0.0 libts-1.0.so.0  〔不要?ldconfig で symlink 自動生成される?よく理解してねーっす。わはは(汗。後でチェックしてほんとに不要だったら、この行削除予定っす。〕
 $ sudo ldconfig
蛇足:…どのみちここに書いたやり方、なんとも ugly。個人的には不満全開バリバリ。dpkg -i --force-all あるいは dpkg -i --force-architecture でできるんじゃーねーの?…ってやってみても、バッティングするので、うまくいかないんすわ。それ避けたいので、無難な「ar -x xxx.deb+ tar zxvf data.tar.gz -C / 」のやりかたを書いたっす。なんか、頭使ってもっとクリーンなズルできねぇっすかねぇ。うーん、当然 libts も Ximageon (Xfbdev+Ångström's w100(imageon) specific patch) も Debian の userland で、Ångström の patch あてて build 出来れば理想なんだろうけど...
 なお、lenny の libts-0.0-0 と squeeze 以降の libts-0.0-0 (+ tsconf) は微妙に違う、注意。squeeze 以降の libts は、もうちょい Ångström の libts とバッティングしにくくなっている。
5.4 環境変数 TSLIB_TSDEVICE の設定(重要)
/usr/bin/Ximageon は、環境変数 TSLIB_TSDEVICE でタッチスクリーンの device node を判別している。その設定。
 $ sudo vi /etc/profile
 内容:export TSLIB_TSDEVICE=/dev/input/touchscreen0 を追記
蛇足:step 4.6 の /etc/udev/rules.d/local.conf は、実は省略可。省略した場合は、上のかわりに TSLIB_TSDEVICE=/dev/input/event1 を追記。
5.5 /etc/X11/xinit/xserverrc
 $ sudo vi /etc/X11/xinit/xserverrc
 内容:exec /usr/bin/X11/X -nolisten tcp 〔適宜オプション追記;下記参照〕
Ångström の場合のオプションの一部を追記する。cf. Ångström の /etc/X11/Xserver を解読するか、Ångström で X 起動している際に ps axw | grep Ximageon で、オプション調べられる。その結果は:
      " Ximageon -br -pn -mouse tslib -dpi 200 -rgba rgb :0 -noreset "
てな、ことになっている。どうやら、これの全部をまじめに追記しなくてもいいみたい?。うちは、-br だけ追記している。それでも、見た目は問題なく動いているみたい。
 蛇足:-dpi 200 と -rgba rgb は、Xft2 のそれ? ~/.Xresources 内に Xft.dpi: 200 と Xft.rgba: rgb を置くのと同値? (ガセだったらごめんなさい)
Ångström の -dpi 200 の「200」は、デカすぎると思う(いや、深い理由があるのかもしれない?);GTK+ だの Qt だの Xft2 経由のアプリケーションの truetype フォントがちょー巨大になったりしてくれやがって、すげー困るんすわ。~/.Xresources で Xft.dpi: 75 (あるいは 96) とかにするのがよさそ? (後述)
5.6 ~/.Xresources

大抵の人は、GNOME, KDE &c. は使わないだろうから
    Xft.dpi: 96 (or 75)    
    Xft.rgba: rgb
    Xft.ほかのやつら...hinting のとか...あと…えと、わすれたっす…必要な人は各自調べてください;><。
は ~/.Xresources に入れとかないと上に書いたとおり package によっては truetype font デカ杉で困ったことになる。(これは、Zaurus specific じゃない
周知のはなしすかね。)
この他の .Xresources の中身に関しては、各自おこのみの話っすかね。適宜。
うーーん、書いててなんか自信なくなってきたです、そのうちキチンと調べてみよう…

5.7 ~/.xsession

ここら辺も各自おこのみのとこっすが、注意点を少々。以下のは、テスト用;c.f. 5.8
 $ vi ~/.xsession
 $ chmod 755 ~/.xsession
 #!/bin/sh
 if [ -e /usr/share/fonts/X11/misc ]; then
 xset fp+ /usr/share/fonts/X11/misc
 fi
 if [ -e /usr/share/fonts/X11/75dpi ]; then
 xset fp+ /usr/share/fonts/X11/75dpi
 fi
 if [ -e /usr/share/fonts/X11/100dpi ]; then
 xset fp+ /usr/share/fonts/X11/100dpi
 fi
 if [ -e /usr/share/fonts/X11/Type1 ]; then
 xset fp+ /usr/share/fonts/X11/Type1
 fi
 xset fp rehash 〔必要?〕
 xterm & 〔たとえばのはなし〕
 exec twm 〔たとえばのはなし〕
bitmap font は ~/.xsession で上のみたく load するのがよさそう。あるいは、/etc/X11/xinit/xinitrc でもいいんだっけ。 また、あるいは、/etc/X11/Xsession.d/ にスクリプト作ってそこでやる? またまた、あるいは、/etc/X11/xinit/xserverrc で -fp option でやってもできる?試してないのでわからないっす。/etc/X11/xorg.conf うまく作って、そこでやることもできるのかどうか?トライしてみる価値はあるかな?(/etc/X11/xorg.conf(中身はそれらしい感じの適当なもの)作ってみたけど、/usr/bin/Ximageon はそれを読みにいかない模様(きちんと調べてないので自信無))  …うーん、上ので動いちゃっているから、めんどくさいので放置っす。
5.8 Test
 $ TSLIB_TSDEVICE=/dev/input/touchscreen0 startx
上にかいたとおりにやっていれば、twm に xterm が立ち上がってくるはず。
 touchscreen うまく動いてれば成功。上の通りに作業していれば、touchscreen うまく動くはず。なお、環境変数 TSLIB_TSDEVICE の指定は、次回起動時からは不要 (cf. step 5.4)。なお、step 4.6 を省略した場合は、TSLIB_TSDEVICE=/dev/input/event1 でうまく touchscreen が動作するはず。なお、/etc/ts.conf は、Ångström の方のを使わないと touchscreen はうまく動作しない模様。Debian と Ångström の /etc/ts.conf の内容は異なるので要注意。
 keymap は、console 用の /etc/keymap-2.6.map (c.f. 4.4) の設定が、X にも遺伝している筈。
蛇足:xorg.conf は無し。
ちなみに Ångström も「無し」。無しで困ること無いので、無しのまま放置。あと Ångström の /etc/X11/ の中身は、特に X の起動スクリプトとか、Debian のとかなり違う。差分をとって、Debian にもってくるべきものは、あるかどうか調査必要? 今のとこ、上に書いた設定で自分が使っている範囲内で問題なく使えているので、放置。

以上で、X の土台は整ってるはず。後は、各自のおこのみの window manager なり (light weight) desktop environment なりを apt-get install すれば...ってとこまできているはず

おしまい


[12/X/2009]  未完成ですが、公開。この手のもの書くの、大変ですね。
ある程度できたので、暫定版だけど、公開することにしました。
なかなか、まとめて時間が取れないっす…ゆっくり加筆、削除、修正してく予定です。
[22/XI/2009]  だらだらだら、と書き足してたんですが、徐々に motivation 低下中。暇も精神的余裕も...。 squeeze の udev が 146 に上がって、Ångström の kernel 2.6.26 だとうまく boot できなくなったりして(udev version 141 に強引に downgrade すればきちんと boot して問題なさそうなのは確認。)ここのやり方がいつまで通用するかどうか、不安的中... release announcement 見てても upstart だとか、kernel 2.6.32 だとか...不安... うう、さらに motivaton が...
ホントがウソかわかんないけど、OpenPandora もうすぐ shipping 開始大量生産中らしい。「予約組」なんですわ... 待ち遠しいが手元に届くのは、いつになることやら(ほんとに自分ん家まで届くのかな...とかも。)あるいは、見切りで NetWalker に乗換えっすか... 辞書付新発売でどのくらい値がおちるかな... あ"ー、いろんな意味で、motivation が...
あと、このページだけ、なかなか、google index に登録されなくて、なんとも、かなしーので、URL かえてみたです。階層上の方に上げれば、登録されるかな?、てな魂胆っす。再訪された方、もし居られたら、申し訳ありません m(_|_)m(今後もころころ変わるかも、しれません(^^;

last modified 13/II/2010
恐竜日和/Z.Rex