# busybox を 0.52 から 0.60.5 に変更する # URL: http://www.busybox.net/downloads/busybox-0.60.5.tar.gz cd $ARCHIVE wget http://www.busybox.net/downloads/busybox-0.60.5.tar.gz cd $SOURCE tar xvzf $ARCHIVE/busybox-0.60.5.tar.gz cd busybox-0.60.5 # Config.hをいじるパッチ # * expr, grep, hostname を GNU sh-utils から busybox に移行 # * gzip, gunzip を GNU gzip から busybox に移行 # * sed を GNU sed から busybox に移行 # * tftp, traceroute を新規追加 # (ちょっと長くなったのでbase64エンコードにて掲載) uudecode -o /dev/stdout << EOF | gzip -dc | patch -p1 -b begin-base64 644 patch H4sIAJCc7j4AA3WWWW/bMAzHn5dPYWCPqlsn2ZH1qbIlO5p1eDrSdS/F7gUY mmEH0H37WUpamJRXIA38C/+kSJGyyrIsPvz59ffD4f6iOdx92X89/3Z++Ln/ +mRVVauyelUuN0X18rJ6drnanFcPfwWpXlXVghCSqaNwXVYvyuXLYrm+fLa8 XK8y4dVVUW7ONgWJ/66uFsXFRfwU9eisPtwX9MeP7/uP73/vD3e/4g9PP33+ sr/7XNT1LWWvvVD87aKE2C7K6aPbLgj8mUD70aCYPNfUcU0VB7ChHj5vOzuk xa/WZ5sxmePXMYGp3SAMFAboiFHPUQKsAQseH4GAYXNOpTTNzkPVIwXiFj4K m2XKFHcdyoIZtwpa4Eqzoe9m0Bi7xjh4NcD1RS0GSUkyHVheyFyroVcUeX+A UylvtnAvuN4hZ/ztYBFqa8c9ZqyVAfVVkpJMSGZk0zW0QjMILMcNEZGlignX 419c098qEbeG/EdA5s3hBnfcmwG2Smc5LF8X9DuBUATTYdtS6dF4JTQVbTnF Lbw1zos5mLqT5JYYHbsYynGlRxm0EG1jdCs6kMFYHJxBQkiqnTJw33ohZQbG GQTee2k6htwfGfQv46EEyyG57jxsuROaBpUaywxltFEztDUa93XEaWxKALuO 46kYYbY3D6EwS4EwPI4s9hkDkZkwqDpmnKwAW1E6uOi0P3DNivac8Z3DmD13 QeG1JD2ZU5NcO12I6sdTFYfoW9GaHLqZ2T3ZknlLGEmjHlS9u467h+J4ruCW jrkN1tQcRUl2sA6PliCMsRgEjUdEZR2sYBcoeCwofBbrBgMnjekDPOk1fFk+ 2kxdD4KZFjkbhIbvnwQKZLMz/tYa40H1BnPNrWkzj1Zo30JLh8r5KCW5EFk6 mMI1PiJsujkgNh6tUugeLMLyOmZAkGWCWK5FA3fW8vgSA0Sla8+yen62Xhfk 9J1dfKwJ+fIGtcouRI7jOR0j9vymMYzDYZty4EFy9KpyxuLcnPc30GacFKPj XgB6E9sOADdzZj/QqdRTIRHA54DPXu2eO3wIey51duPwrYd9H10R7Ijkbgh2 AssSL9AYGVhMb0KDR9lnmVna8OOeE2hH5q1ABBv4bUulQzjuGIgS76Cr8TKK gofAdWyLDDOeMJmzJXOW0/DhdKrB+G8QiG8nFHZIk0lyBJTDTOnDqZUB3InF Pxhf1MqcDQAA ==== EOF # クロスコンパイルのため、CROSS=arm-linux- を記入する mv Makefile Makefile.bak sed "s/CROSS =/CROSS = arm-linux-/" < Makefile.bak > Makefile make all # busyboxだけインストール cp busybox $BUILD/rootfs/bin # 古いファイルを削除 rm $BUILD/rootfs/usr/bin.rom/expr rm $BUILD/rootfs/bin/grep rm $BUILD/rootfs/bin/hostname rm $BUILD/rootfs/bin/gzip rm $BUILD/rootfs/bin/gunzip rm $BUILD/rootfs/bin/sed # 新たにシンボリックリンクを作成 ln -s /bin/busybox $BUILD/rootfs/usr/bin.rom/expr ln -s busybox $BUILD/rootfs/bin/grep ln -s busybox $BUILD/rootfs/bin/hostname ln -s busybox $BUILD/rootfs/bin/gzip ln -s busybox $BUILD/rootfs/bin/gunzip ln -s busybox $BUILD/rootfs/bin/sed ln -s /bin/busybox $BUILD/rootfs/usr/bin.rom/tftp ln -s /bin/busybox $BUILD/rootfs/usr/bin.rom/traceroute # /usr/bin 以下にもシンボリックリンクを作成 cd $BUILD/rootfs/root tar xvf .home_default.tar ln -s /bin/busybox home/root/usr/bin/tftp ln -s /bin/busybox home/root/usr/bin/traceroute rm .home_default.tar tar cvf .home_default.tar home rm -fR home # sshd の Privilege Separation 目的で /var/empty を作成する cd $BUILD/rootfs/root tar xvf .var_default.tar mkdir var/tmp rm .var_default.tar tar cvf .var_default.tar var rm -fR var # e2fsprogs を 1.19 -> 1.33 にアップデートする # http://twtelecom.dl.sourceforge.net/sourceforge/e2fsprogs/e2fsprogs-1.33.tar.gz cd $ARCHIVE wget http://twtelecom.dl.sourceforge.net/sourceforge/e2fsprogs/e2fsprogs-1.33.tar.gz cd $SOURCE tar xvzf $ARCHIVE/e2fsprogs-1.33.tar.gz cd e2fsprogs-1.33 CC=$TARGET-gcc AR=$TARGET-ar RANLIB=$TARGET-ranlib ./configure --target=$TARGET --prefix=/usr --with-root-prefix="" --enable-elf-shlibs --with-ccopts="-O2" --enable-dynamic-e2fsck make all # 一括strip find . | xargs -P 1 arm-linux-strip -g > /dev/null 2> /dev/null # 手動インストール mkdir -p $BUILD/rootfs/lib/evms install -c e2fsck/e2fsck $BUILD/rootfs/sbin/e2fsck install -c debugfs/debugfs $BUILD/rootfs/sbin/debugfs install -c misc/mke2fs $BUILD/rootfs/sbin/mke2fs install -c misc/badblocks $BUILD/rootfs/sbin/badblocks install -c misc/tune2fs $BUILD/rootfs/sbin/tune2fs install -c misc/dumpe2fs $BUILD/rootfs/sbin/dumpe2fs install -c misc/blkid $BUILD/rootfs/sbin/blkid install -c misc/logsave $BUILD/rootfs/sbin/logsave install -c misc/e2image $BUILD/rootfs/sbin/e2image install -c misc/fsck $BUILD/rootfs/sbin/fsck install -c misc/mklost+found $BUILD/rootfs/sbin/mklost+found install -c misc/chattr $BUILD/rootfs/usr/bin.rom/chattr install -c misc/lsattr $BUILD/rootfs/usr/bin.rom/lsattr install -c misc/uuidgen $BUILD/rootfs/usr/bin.rom/uuidgen install -c resize/resize2fs $BUILD/rootfs/sbin/resize2fs install -c lib/evms/libe2fsim.1.2.1.so $BUILD/rootfs/lib/evms/libe2fsim.1.2.1.so install -c lib/et/libcom_err.so.2.0 $BUILD/rootfs/lib/libcom_err.so.2.0 install -c lib/ss/libss.so.2.0 $BUILD/rootfs/lib/libss.so.2.0 install -c lib/libe2p.so.2.3 $BUILD/rootfs/lib/libe2p.so.2.3 install -c lib/ext2fs/libext2fs.so.2.4 $BUILD/rootfs/lib/libext2fs.so.2.4 install -c lib/uuid/libuuid.so.1.2 $BUILD/rootfs/lib/libuuid.so.1.2 install -c lib/blkid/libblkid.so.1.0 $BUILD/rootfs/lib/libblkid.so.1.0 ln -sf e2fsck $BUILD/rootfs/sbin/fsck.ext2 ln -sf e2fsck $BUILD/rootfs/sbin/fsck.ext3 ln -sf /sbin/mke2fs $BUILD/rootfs/sbin/mkfs.ext2 ln -sf /sbin/mke2fs $BUILD/rootfs/sbin/mkfs.ext3 ln -sf /sbin/tune2fs $BUILD/rootfs/sbin/e2label ln -sf /sbin/tune2fs $BUILD/rootfs/sbin/findfs ln -s -f libcom_err.so.2.0 $BUILD/rootfs/lib/libcom_err.so.2 ln -s -f /lib/libcom_err.so.2 $BUILD/rootfs/usr/lib.rom/libcom_err.so ln -s -f libss.so.2.0 $BUILD/rootfs/lib/libss.so.2 ln -s -f /lib/libss.so.2 $BUILD/rootfs/usr/lib.rom/libss.so ln -s -f libe2p.so.2.3 $BUILD/rootfs/lib/libe2p.so.2 ln -s -f /lib/libe2p.so.2 $BUILD/rootfs/usr/lib.rom/libe2p.so ln -s -f libext2fs.so.2.4 $BUILD/rootfs/lib/libext2fs.so.2 ln -s -f /lib/libext2fs.so.2 $BUILD/rootfs/usr/lib.rom/libext2fs.so ln -s -f libuuid.so.1.2 $BUILD/rootfs/lib/libuuid.so.1 ln -s -f /lib/libuuid.so.1 $BUILD/rootfs/usr/lib.rom/libuuid.so ln -s -f libblkid.so.1.0 $BUILD/rootfs/lib/libblkid.so.1 ln -s -f /lib/libblkid.so.1 $BUILD/rootfs/usr/lib.rom/libblkid.so # /usr/bin /usr/lib 内のシンボリックリンクの更新 cd $BUILD/rootfs/root tar xvf .home_default.tar cd home/root/usr/bin ln -sf /usr/bin.rom/chattr chattr ln -sf /usr/bin.rom/lsattr lsattr ln -sf /usr/bin.rom/uuidgen uuidgen cd ../lib ln -sf /usr/lib.rom/libcom_err.so libcom_err.so ln -sf /usr/lib.rom/libss.so libss.so ln -sf /usr/lib.rom/libe2p.so libe2p.so ln -sf /usr/lib.rom/libblkid.so libblkid.so cd $BUILD/rootfs/root rm .home_default.tar tar cvf .home_default.tar home rm -fR home # tinylogin を 0.78 -> 1.4 にアップデートする # http://tinylogin.busybox.net/downloads/tinylogin-1.4.tar.gz cd $ARCHIVE wget http://tinylogin.busybox.net/downloads/tinylogin-1.4.tar.gz cd $SOURCE tar xvzf $ARCHIVE/tinylogin-1.4.tar.gz cd tinylogin-1.4 mv Makefile Makefile.bak sed "s/CROSS =/CROSS = arm-linux-/" < Makefile.bak > Makefile make all cp tinylogin $BUILD/rootfs/bin # ppp を 2.4.0 -> 2.4.1 にアップデートする # http://freshmeat.net/redir/pppd/8313/url_tgz/ppp-2.4.1.tar.gz cd $ARCHIVE wget http://freshmeat.net/redir/pppd/8313/url_tgz/ppp-2.4.1.tar.gz cd $SOURCE tar xvzf $ARCHIVE/ppp-2.4.1.tar.gz cd ppp-2.4.1 ./configure CC=$TARGET-gcc AR=$TARGET-ar RANLIB=$TARGET-ranlib make all # 一括strip find . | xargs -P 1 arm-linux-strip -g > /dev/null 2> /dev/null # インストール install chat/chat $BUILD/rootfs/usr/sbin.rom install -o root -c -m 555 pppd/pppd $BUILD/rootfs/usr/sbin.rom install -o root -g daemon -c pppstats/pppstats $BUILD/rootfs/usr/sbin.rom install -c pppdump/pppdump $BUILD/rootfs/usr/sbin.rom # embeddedkonsole をルートファイルシステムに入れておく cd $ARCHIVE wget ftp://(somewhere)/qpe-embeddedkonsole-pen_20030208-1_arm.ipk cd $BUILD/rootfs/root tar xvzf $ARCHIVE/qpe-embeddedkonsole-pen_20030208-1_arm.ipk ./data.tar.gz tar xvzf data.tar.gz rm data.tar.gz tar xvf .home_default.tar find opt -type f | sed "s/opt\//\//" | xargs --replace -P 1 mv opt{} home{} rm -fR opt rm .home_default.tar tar cvf .home_default.tar home rm -fR home # w3mのリンクはなくても良いので削除 rm home/QtPalmtop/apps/Applications/qw3m.desktop