今日の庭仕事
朝、水をやろうと外に出たら、コスモスの芽が出ていました。
早生で矮性のやつです。
シソ科とセリ科はまだまだかかりそうです。
twitterで日本語が問題なくなっている!
ちょっとびっくり。
もっとも、こんだけ短期間に日本語ユーザーが増えると対応するよね。
バックはRoRだそうだし。
有機ELのイコライザーTシャツ 日本でも発売中
http://item.rakuten.co.jp/keitaistrap/50/
5040円でもそんなに高い気がしない。
手洗いだが洗濯もできるそうな。
Tシャツじゃなくても、製品の筐体に付けてもよさそうな感じ。
でのSargeその後
安定して動作しているようなので、python関係を追加する。
# apt-get install python python2.3 libbz2-1.0 libreadline4 python2.3-cjkcodecs
/usr/local/bin/mkimageも入れる。
デフォルトで入っているkernel modulesを追加。
USBまわりはkernel埋め込みなんだな。
lib/modules/2.6.12.6-arm1/build lib/modules/2.6.12.6-arm1/kernel/ lib/modules/2.6.12.6-arm1/kernel/crypto/ lib/modules/2.6.12.6-arm1/kernel/crypto/aes.ko lib/modules/2.6.12.6-arm1/kernel/crypto/anubis.ko lib/modules/2.6.12.6-arm1/kernel/crypto/arc4.ko lib/modules/2.6.12.6-arm1/kernel/crypto/blowfish.ko lib/modules/2.6.12.6-arm1/kernel/crypto/cast5.ko lib/modules/2.6.12.6-arm1/kernel/crypto/cast6.ko lib/modules/2.6.12.6-arm1/kernel/crypto/crc32c.ko lib/modules/2.6.12.6-arm1/kernel/crypto/crypto_null.ko lib/modules/2.6.12.6-arm1/kernel/crypto/deflate.ko lib/modules/2.6.12.6-arm1/kernel/crypto/des.ko lib/modules/2.6.12.6-arm1/kernel/crypto/khazad.ko lib/modules/2.6.12.6-arm1/kernel/crypto/md4.ko lib/modules/2.6.12.6-arm1/kernel/crypto/md5.ko lib/modules/2.6.12.6-arm1/kernel/crypto/michael_mic.ko lib/modules/2.6.12.6-arm1/kernel/crypto/serpent.ko lib/modules/2.6.12.6-arm1/kernel/crypto/sha1.ko lib/modules/2.6.12.6-arm1/kernel/crypto/sha256.ko lib/modules/2.6.12.6-arm1/kernel/crypto/sha512.ko lib/modules/2.6.12.6-arm1/kernel/crypto/tcrypt.ko lib/modules/2.6.12.6-arm1/kernel/crypto/tea.ko lib/modules/2.6.12.6-arm1/kernel/crypto/tgr192.ko lib/modules/2.6.12.6-arm1/kernel/crypto/twofish.ko lib/modules/2.6.12.6-arm1/kernel/crypto/wp512.ko lib/modules/2.6.12.6-arm1/kernel/crypto/ocf/ lib/modules/2.6.12.6-arm1/kernel/crypto/ocf/cryptodev.ko lib/modules/2.6.12.6-arm1/kernel/crypto/ocf/cryptosoft.ko lib/modules/2.6.12.6-arm1/kernel/crypto/ocf/ocf-bench.ko lib/modules/2.6.12.6-arm1/kernel/drivers/ lib/modules/2.6.12.6-arm1/kernel/drivers/block/ lib/modules/2.6.12.6-arm1/kernel/drivers/block/as-iosched.ko lib/modules/2.6.12.6-arm1/kernel/drivers/block/cfq-iosched.ko lib/modules/2.6.12.6-arm1/kernel/drivers/block/cryptoloop.ko lib/modules/2.6.12.6-arm1/kernel/drivers/block/deadline-iosched.ko lib/modules/2.6.12.6-arm1/kernel/drivers/block/loop.ko lib/modules/2.6.12.6-arm1/kernel/drivers/cdrom/ lib/modules/2.6.12.6-arm1/kernel/drivers/cdrom/cdrom.ko lib/modules/2.6.12.6-arm1/kernel/drivers/md/ lib/modules/2.6.12.6-arm1/kernel/drivers/md/dm-crypt.ko lib/modules/2.6.12.6-arm1/kernel/drivers/md/dm-mirror.ko lib/modules/2.6.12.6-arm1/kernel/drivers/md/dm-mod.ko lib/modules/2.6.12.6-arm1/kernel/drivers/md/dm-snapshot.ko lib/modules/2.6.12.6-arm1/kernel/drivers/md/dm-zero.ko lib/modules/2.6.12.6-arm1/kernel/drivers/md/faulty.ko lib/modules/2.6.12.6-arm1/kernel/drivers/md/raid10.ko lib/modules/2.6.12.6-arm1/kernel/drivers/md/raid6.ko lib/modules/2.6.12.6-arm1/kernel/drivers/scsi/ lib/modules/2.6.12.6-arm1/kernel/drivers/scsi/sr_mod.ko lib/modules/2.6.12.6-arm1/kernel/drivers/usb/ lib/modules/2.6.12.6-arm1/kernel/drivers/usb/net/ lib/modules/2.6.12.6-arm1/kernel/drivers/usb/net/catc.ko lib/modules/2.6.12.6-arm1/kernel/drivers/usb/net/kaweth.ko lib/modules/2.6.12.6-arm1/kernel/drivers/usb/net/pegasus.ko lib/modules/2.6.12.6-arm1/kernel/drivers/usb/net/rtl8150.ko lib/modules/2.6.12.6-arm1/kernel/drivers/usb/net/usbnet.ko lib/modules/2.6.12.6-arm1/kernel/drivers/usb/serial/ lib/modules/2.6.12.6-arm1/kernel/drivers/usb/serial/pl2303.ko lib/modules/2.6.12.6-arm1/kernel/drivers/usb/serial/usbserial.ko lib/modules/2.6.12.6-arm1/kernel/fs/ lib/modules/2.6.12.6-arm1/kernel/fs/autofs/ lib/modules/2.6.12.6-arm1/kernel/fs/autofs/autofs.ko lib/modules/2.6.12.6-arm1/kernel/fs/autofs4/ lib/modules/2.6.12.6-arm1/kernel/fs/autofs4/autofs4.ko lib/modules/2.6.12.6-arm1/kernel/fs/binfmt_aout.ko lib/modules/2.6.12.6-arm1/kernel/fs/binfmt_misc.ko lib/modules/2.6.12.6-arm1/kernel/fs/cramfs/ lib/modules/2.6.12.6-arm1/kernel/fs/cramfs/cramfs.ko lib/modules/2.6.12.6-arm1/kernel/fs/fat/ lib/modules/2.6.12.6-arm1/kernel/fs/fat/fat.ko lib/modules/2.6.12.6-arm1/kernel/fs/isofs/ lib/modules/2.6.12.6-arm1/kernel/fs/isofs/isofs.ko lib/modules/2.6.12.6-arm1/kernel/fs/minix/ lib/modules/2.6.12.6-arm1/kernel/fs/minix/minix.ko lib/modules/2.6.12.6-arm1/kernel/fs/msdos/ lib/modules/2.6.12.6-arm1/kernel/fs/msdos/msdos.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/ lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_ascii.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp1250.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp1251.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp1255.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp437.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp737.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp775.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp850.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp852.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp855.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp857.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp860.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp861.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp862.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp863.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp864.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp865.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp866.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp869.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp874.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp936.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp949.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_cp950.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-1.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-13.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-14.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-15.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-2.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-3.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-4.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-5.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-6.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-7.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_iso8859-9.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_koi8-r.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_koi8-ru.ko lib/modules/2.6.12.6-arm1/kernel/fs/nls/nls_koi8-u.ko lib/modules/2.6.12.6-arm1/kernel/fs/ntfs/ lib/modules/2.6.12.6-arm1/kernel/fs/ntfs/ntfs.ko lib/modules/2.6.12.6-arm1/kernel/fs/romfs/ lib/modules/2.6.12.6-arm1/kernel/fs/romfs/romfs.ko lib/modules/2.6.12.6-arm1/kernel/fs/udf/ lib/modules/2.6.12.6-arm1/kernel/fs/udf/udf.ko lib/modules/2.6.12.6-arm1/kernel/fs/vfat/ lib/modules/2.6.12.6-arm1/kernel/fs/vfat/vfat.ko lib/modules/2.6.12.6-arm1/kernel/fs/quota_v1.ko lib/modules/2.6.12.6-arm1/kernel/fs/quota_v2.ko lib/modules/2.6.12.6-arm1/kernel/lib/ lib/modules/2.6.12.6-arm1/kernel/lib/crc-ccitt.ko lib/modules/2.6.12.6-arm1/kernel/lib/libcrc32c.ko lib/modules/2.6.12.6-arm1/kernel/sound/ lib/modules/2.6.12.6-arm1/kernel/sound/core/ lib/modules/2.6.12.6-arm1/kernel/sound/core/oss/ lib/modules/2.6.12.6-arm1/kernel/sound/core/oss/snd-mixer-oss.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/oss/snd-pcm-oss.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/seq/ lib/modules/2.6.12.6-arm1/kernel/sound/core/seq/oss/ lib/modules/2.6.12.6-arm1/kernel/sound/core/seq/oss/snd-seq-oss.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/seq/snd-seq-device.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/seq/snd-seq-dummy.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/seq/snd-seq-midi-event.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/seq/snd-seq-midi.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/seq/snd-seq.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/snd-page-alloc.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/snd-pcm.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/snd-rawmidi.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/snd-timer.ko lib/modules/2.6.12.6-arm1/kernel/sound/core/snd.ko lib/modules/2.6.12.6-arm1/kernel/sound/soundcore.ko lib/modules/2.6.12.6-arm1/kernel/sound/usb/ lib/modules/2.6.12.6-arm1/kernel/sound/usb/snd-usb-audio.ko lib/modules/2.6.12.6-arm1/kernel/sound/usb/snd-usb-lib.ko lib/modules/2.6.12.6-arm1/modules.alias lib/modules/2.6.12.6-arm1/modules.ccwmap lib/modules/2.6.12.6-arm1/modules.dep lib/modules/2.6.12.6-arm1/modules.ieee1394map lib/modules/2.6.12.6-arm1/modules.inputmap lib/modules/2.6.12.6-arm1/modules.isapnpmap lib/modules/2.6.12.6-arm1/modules.pcimap lib/modules/2.6.12.6-arm1/modules.symbols lib/modules/2.6.12.6-arm1/modules.usbmap lib/modules/2.6.12.6-arm1/source
GT only lrwxrwxrwx 1 root root 7 2007-04-17 04:13 btndrv -> btndrv0 crw-rw-r-- 1 root uucp 251, 0 2006-09-06 04:51 btndrv0 lrwxrwxrwx 1 root root 7 2007-04-17 04:13 buzdrv -> buzdrv0 crw-rw-r-- 1 root uucp 252, 0 2006-09-06 04:51 buzdrv0 lrwxrwxrwx 1 root root 7 2007-04-17 04:13 leddrv -> leddrv0 crw-rw-r-- 1 root uucp 253, 0 2006-09-06 04:51 leddrv0 drwxr-xr-x 2 root root 4096 2006-10-31 13:08 mapper prw-rw-rw- 1 root root 0 2006-10-27 11:02 r8read prw-rw-rw- 1 root root 0 2006-10-31 13:08 r8write brw-r--r-- 1 root root 31, 0 2005-06-23 05:42 rom0 brw-r--r-- 1 root root 31, 1 2006-06-19 09:42 rom1 crw------- 1 root root 21, 17 2005-06-23 05:42 sg17 crw------- 1 root root 21, 18 2005-06-23 05:42 sg18 crw------- 1 root root 21, 19 2005-06-23 05:42 sg19 crw------- 1 root root 21, 20 2005-06-23 05:42 sg20 crw------- 1 root root 21, 21 2005-06-23 05:42 sg21 crw------- 1 root root 21, 22 2005-06-23 05:42 sg22 crw------- 1 root root 21, 23 2005-06-23 05:42 sg23 crw------- 1 root root 21, 24 2005-06-23 05:42 sg24 crw------- 1 root root 21, 25 2005-06-23 05:42 sg25 crw------- 1 root root 21, 26 2005-06-23 05:42 sg26 crw------- 1 root root 21, 27 2005-06-23 05:42 sg27 crw------- 1 root root 21, 28 2005-06-23 05:42 sg28 crw------- 1 root root 21, 29 2005-06-23 05:42 sg29 crw------- 1 root root 21, 30 2005-06-23 05:42 sg30 crw------- 1 root root 21, 31 2005-06-23 05:42 sg31 Debian only srw-rw-rw- 1 root root 0 Apr 16 14:56 log
sgが多く作ってあるのはいいとして、r8read/writeはFIFOかな?
rom0/1はなんだろう。Flash操作の時にでも使うのかな?
btndrv,buzdrv,leddrvは作っておく必要があるのね。
kernelをビルドしてみる
せっかくパッケージ管理下にあるので、制限はあるけどkernelもパッケージにしてみる。
chroot環境を作って、そこでkernelをビルド。
uImageにするには、どのみち後処理が必要なので、make-kpkgを使う。
# apt-get build-dep linux-kernel-headers Reading Package Lists... Done Building Dependency Tree... Done The following NEW packages will be installed: binutils build-essential cdbs cpp cpp-3.3 debconf-utils debhelper dpkg-dev file g++ g++-3.3 gcc gcc-3.3 gettext html2text intltool-debian libc6-dev libmagic1 libstdc++5-3.3-dev linux-kernel-headers make patch perl perl-modules po-debconf # apt-get install kernel-package # apt-get install cpp-3.4 gcc-3.4 gcc-3.4-base # tar zxvf linux-2.6.12.6.tar.gz # cp config.gt linux-2.6.12.6/.config # cd linux-2.6.12.6 # make oldconfig # make-kpkg clean # make-kpkg --revision=OLP.0.1 kernel_image
warningはいくつか出ていたが、特に問題なく出来てしまった。
ビルド時間は2時間ほど。結構かかるな...
kernel-image-2.6.12.6-arm1_OLP.0.1_arm.deb
こいつでuImageを作って、本当に使えるものなのか、続きは明日だな。
民生品NASに見る組み込みLinuxの世界
liloのマンスリーセミナで組み込みネタをやるというのに触発されて、自分でやることを想定してちょっと書いてみた。去年からliloセミナ講師に立候補してみようと思ったりしているのだけど、神戸や大阪まで出るのは億劫になってしまって決心がつかない。
それと、最近、なんか大勢の聴衆の前でしゃべる事をやってないので、プレゼン体力が落ちているかもしれないと思う。去年の札幌は少人数だったし。今年に入ってからも社外でも数名のプロジェクト内部だけ。先月は10人くらいの自分のじゃないプレゼンの手伝いはしたけど、それは所詮手伝いだし、私の色が出ても困るのでそんなに気合入れてなかった。
プレゼンとしては40%くらいは完成している。あとは絵と裏取りとPPTに仕上げるだけ。今の内容だと、90分くらいかな。
トピックだけ列挙してみる。
- わたしは何をやってきたか?
- 組み込みLinuxの歴史
- 10年前は「寝言は寝て言え」
- 今では「ネコも杓子も」
- なぜ組み込みなのか?
- 低消費電力
- 価格が安い 多目的->単機能
- 小さい
- 発熱が低い
- 環境耐性が高い
- 専用設計のSoC
- CPUアーキテクチャ
- だいたいこんな構造です
- JTAGとシリアルコンソール
- 起動の仕組み
- 組み込みの制約とその解決
- ソフトウエアの開発
- 何は無くともtoolchain
- ミニマムの起動環境を作る Buildroot
- ドライバは誰かが書かなくちゃね
- kernelのバグは誰が直すのさ
- 上流へのマージは?
- GPLの理解が進んで楽になってきた
- どこで差別化を行うのか
- ソフトとハードの確執 ってほどのこともない
- 組み込みLinuxで遊べるデバイスたち
- 情報源とコミュニティ
パワーとリソースに余裕ができたのだけど、10年くらい中身は変わっていない感じもする。
ソフトコアとか、MMUなしが再び(AVR)なんかで、これから大きく変わるのだろうな。
書いていて、この内容なら「市販製品の解析とDebian化」みたいなののほうが聴衆ウケがいいような気がした。