21:27:11 # Life chrootしないでchrootの中のバイナリを強引に実行。 開発用の android 環境にSDカード経由で Debian の chroot を展開してみた。 chroot しようと思ったが、chroot コマンドが無い。 chroot するためだけに static link の busybox とかを用意して chroot を実行するのは面倒。 とりあえず、ld.so は共有ライブラリを必要とするバイナリをロードしてくれる static linkな実行ファイルみたいなもののようなので、 libc.so の場所を教えてあげて、バイナリを実行できるようにしてあげると動くようだ。 これでchroot環境に用意した chroot コマンドを chroot 外部から実行できた。
# LD_LIBRARY_PATH=./lib:./usr/lib ./lib/ld-2.9.so ./usr/sbin/chroot . LD_LIBRARY_PATH=./lib:./usr/lib ./lib/ld-2.9.so ./usr/sbin/chroot . sh-3.2# export PATH=/bin:/usr/bin:/sbin:/usr/sbin
qemubuilder が用意した環境だったので、 ネットワーク環境の設定が qemu用になっていた。 resolv.conf と sources.list を修正して、apt-get が動作。とりあえず今日はここらへんで満足。
しかし、apt-get upgrade して最新の sid にしたら、 apt-get update が bus error に。 このカーネルは bus error をreportするという設定にしてあるような気がする。 Android ではそういう方針で設計してあるようだ。 apt-get が sigbus の状態ではどうしようもないので、とりあえず2、もしくは3に変更して、回避。
sh-3.2# cat /proc/cpu/alignment cat /proc/cpu/alignment User: 10 System: 78 Skipped: 0 Half: 19 Word: 59 DWord: 0 Multi: 0 User faults: 4 (signal) sh-3.2# echo 2 > /proc/cpu/alignment sh-3.2# cat /proc/cpu/alignment cat /proc/cpu/alignment User: 10 System: 78 Skipped: 0 Half: 19 Word: 59 DWord: 0 Multi: 0 User faults: 2 (fixup) sh-3.2#
$Id: dancer-diary.el,v 1.93 2009/01/04 03:42:29 dancer Exp $