趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • 玄箱debianバージョンアップ

    投稿日 2011年 5月 21日 コメントはありません

    古いノートPCにdebianを入れてUSB機器を監視しようとおもっていたのですが、そのノートPCがお亡くなりになってしまいました。2000年に購入したものですが、さすがに前半はモバイルのメインマシンとして酷使、後半はdebianで宅内サーバ、監視サーバとして酷使したので仕方がないでしょう。

    で、監視サーバの代役として玄箱(無印)が余っているので、なんとかならないかと思いました。USBシリアルを使うためにはある程度カーネルバージョンが上がっていないといけないのですが、この玄箱、lennyにアップデートすると立ち上がらなかったので、Debianのバージョンはetchのままアップデートしていません。いまさらながら調べてみると、lennyはubootでなければならないようです。なので、その辺をやってつけて、アップデートをかけていくことにしました。

    作業内容(後から書いたので、抜けや間違いがあるかもしれません)

    1.すでにetchになっていたので、uboot化

    注意深く /dev/mtdblock にファームウェアデータを流し込み

    # cat u-boot-hd.flash.bin > /dev/mtdblock1

    どのブロックかはカーネルによって変わる?ので、全部ダンプしてみてそれっぽいのを探した。

    2.再起動せずにカーネル差し替え

    ubootで起動できるカーネルをおいとかないと、立ち上がるわけがないので、先に用意しておく。

    # cd /boot
    # tar xvfz (置いてある場所のパス)/kernelimage-2.6.20-kuroBOX-uImage.tgz
    # cd /lib/modules
    # tar xvfz (置いてある場所のパス)/modules-2.6.20-kuroBOX.tgz

    3.再起動

    時間がかかるけど、たちあがる。
    立ち上がったら再度 telnet で接続

    4.lenny化実行

    ・/etc/apt/sources.list を修正
    “etch” の部分を “lenny” に書き換え
    ・lenny化実行

    #apt-get update
    #apt-get safe-upgrade
    #apt-get dist-upgrade

    5.再起動

    たちあがらねぇ・・・というか、立ち上がってるけどIPアドレスがわからない感じ
    Linuxマシンで nmap をかけてもみつからない
    nc.exe を使ってもつながらない

    6.シリアルコンソール接続

    最後の手段、シリアルコンソール接続とします。Webで調べるといろいろ情報は出てきますが、R76はシリアルの信号と直列に入っている保護用?の抵抗なので、115200bpsという速度を考え、適当に470オームとした。・・・が実際の接続の速度は 57600bps/8N81だった。

    ubootの環境変数やsttyで速度は変えられるけど、カーネルは57600bpsでコンパイルされているようなので、実質57600bps以外の選択肢はない。

    で、IPアドレスを調べてみたら、変わってない。
    telnetでもつながる。なんだったんだろう?

    7.squeeze化

    ・/etc/apt/sources.list を修正
    “lenny” の部分を “squeeze” に書き換え
    ・squeeze化実行

    #apt-get update
    #apt-get safe-upgrade
    #apt-get dist-upgrade

    8.再起動

    問題なく起動。

    9.カーネルバージョンアップ

    某所でsqueezeにバージョンアップしてもカーネルのバージョンは古いまま
    (確かに 2.6.20 のまま)

    # sudo apt-get install linux-image-2.6-powerpc

    でカーネルバージョンアップとか書いてあったので試してみたが、ubootでロードするファイルとあってないのでロードされない。ubootを手動でコマンドを打ちながら起動してみたが、「linkstation用のカーネルじゃない」と蹴られる。どうしょうもない。

    なので、

    # cd /boot
    # tar xvfz (置いてある場所のパス)/kernelimage-2.6.25.20-kuroBOX.tgz
    # cd /lib/modules
    # tar xvfz (置いてある場所のパス)/modules-2.6.25.20-kuroBOX.tgz

    で 2.6.25.20 まではバージョンアップした。

    10.電源落ちない対策

    ここで、shutdownコマンドやrebootコマンドで最後の最後にフリーズする対策を見つけたので、追加。

    /etc/init.d/haltのpathの行の後ろにecho -n “EEEE” > /dev/AVR00を追加

    これでシャットダウン時に電源が切れるようになった・・・が、その後電源SWを押しても起動しない。結局一度プラグを抜かなきゃいけない。うーん。

    <まとめ>
    結局、カーネルのバージョンは 2.6.25 のまま。うーん。