Kindle2

電子書籍端末としては使ってないのでなんとも言えないけど、たしかにちょっと古い端末だけあって画面の書き換え速度は多少遅い。
Kindle2(Kindle3も)のすごいところは、シリアルコンソールでなんでもできてしまう点で、Terms of Use的にも、OSの差し替え自体は特に禁止していないようだ。(ただ、分解方法とかインストール方法を書くと触れるという絶妙な条項になっている)
ブートローダはU-boot、Linuxカーネルは特にこれといって手は入っていないようだ。
微妙に気になるのは、MP3デコーダを搭載しているけど特にライセンサーについて述べたファイルが見当たらない点。探したりないのかも。
使用しているデコーダはFreescaleのMP3/AAC/WMAデコーダ(mfw_mp3decoder等)でCPUのi.MX31にライセンスされているもの。

FreeBSD上でのクロス開発環境

moshの自動ビルドはFreeBSD上で行っているので、FreeBSD上にクロス開発環境を作った。
libcだけはどうしても単純にビルドできなかったので、Linux上でcrosstool-ngを使って生成した。

/home/xx/build/binutils-2.21/configure --prefix=/opt/kindle --target=arm-kindle2-linux-gnueabi \
--disable-werror --with-sysroot=/opt/kindle/arm-kindle2-linux-gnueabi
/home/xx/build/gcc-4.6.0/configure --target=arm-kindle2-linux-gnueabi --prefix=/opt/kindle \
--enable-languages=c,c++ --with-arch=armv6j --with-cpu=arm1136jf-s --with-tune=arm1136jf-s \
--with-fpu=vfp --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' \
--with-gmp=/usr/local --with-mpc=/usr/local --with-mpfr=/usr/local \
--with-libiconv-prefix=/usr/local --disable-multilib --disable-libgomp --disable-libssp \
--enable-threads=posix --with-build-sysroot=/opt/kindle/arm-kindle2-linux-gnueabi/

Linuxなのでsysrootを指定するあたりがミソ。あと、multilibをdisableにしないと正常にビルドできなかった。。