Hiroaki Sengoku
sengo****@mn*****
2004年 11月 23日 (火) 01:19:32 JST
仙石です。 Zaurus のカーネルのアップデート方法というと、Sharp 推奨の方法とか、 サービスメニューを使う方法などが Web 等で紹介されていますが、 要は Flash の決められた番地に書込めばいいだけなので、 簡単な sh スクリプト (実質一行かも ^^;) を書いてみました。 kernel_update zImage みたいな感じで実行すると、カーネルイメージを Flash に書込みます。 書き込みのための再起動が必要ないのでお手軽です。 (1) クロスコンパイル環境で make zImage (2) できた zImage を scp で zaurus へ転送 (3) kernel_update スクリプトで Flash へ書込み (4) あとは再起動するだけ ただし添付したスクリプトは SL-C750 用です。他の機種の場合は 0x000E0000 を適切な値に変更する必要があると思います。また、nandlogical コマンドを使っ ているので、メンテナンス用カーネルで使われる root fs からコピーしてきて ください。nandlogical があると Flash の読み書きが手軽にできるので、/sbin あたりに置いておくと便利。 注意: カーネル書き換えは、失敗すると zaurus が起動しなくなります。 起動しなくなっても対処できる人のみ、お試し下さい。 #8961. 仙石 浩明 http://www.gcd.org/sengoku/ Hiroaki Sengoku <sengo****@gcd*****> ----- ここから ----- #!/bin/sh KERNEL=$1 PATH=/sbin:/usr/sbin:/bin:/usr/bin if [ -f $KERNEL ]; then DATASIZE=`wc -c $KERNEL | sed -e 's/^ *\([0-9][0-9]*\) .*/\1/'` if [ $DATASIZE -lt 890000 ]; then echo "Too small: $KERNEL ($DATASIZE bytes)" exit 1 fi if [ $DATASIZE -gt 1294336 ]; then echo "Too large: $KERNEL ($DATASIZE bytes)" exit 1 fi echo -n "Write kernel image: $KERNEL ($DATASIZE bytes) ? " read ans if [ "$ans" = "y" ]; then echo "updating... " else exit 1 fi else echo "Can't found kernel image: $KERNEL" exit 1 fi LOGOCAL_MTD=/dev/mtd1 nandlogical $LOGOCAL_MTD WRITE 0x000E0000 $DATASIZE $KERNEL echo "done" exit 0