Debian 化した LinkStation mini のカーネルを作る

[戻る]

はじめに

LinkStation mini を Debian 化した目的は, USB でいろいろ繋げて実験するためです. そのためにはモジュールを沢山作らなくてはならず, モジュールを作るためにはカーネルソースを拾っていじらなくてはいけません. というわけで調べてみました.

やり方

幸い 2009.3 月現在の最新のカーネル (2.6.28) は LinkStation mini が対応されて おり, 方法は ここ に記載されていました. その通りで動きます.

で, 終わってしまうのも何なんで手順を少し書いておきます.

  1. Debian-PC を用意する. apt-get で gcc やら make, ncurses, devio やら 開発環境を整える. また mkimage も必要.
  2. emdebianの 開発環境も整える.
    1. /etc/apt/sources.list に以下の一文を追加
      deb http://www.emdebian.org/debian/ lenny main
    2. apt-get update を実行
    3. 以下のツールを apt-get で入手する.
      • libc6-armel-cross
      • libc6-dev-armel-cross
      • binutils-arm-linux-gnueabi
      • gcc-4.3-arm-linux-gnueabi
      • g++-4.3-arm-linux-gnueabi
  3. /hoge を掘る (名前が不満だったら適当に, その分 10 と 12 を適当に変更して ください)
  4. Linux のカーネルソースを入手する (私は 2.6.28.7 を使いました. それより新しい場合は 12 で適当につじつまを合わせてください)
  5. 展開後, カーネルソースのディレクトリに移動する
  6. 以下の文を実行する.
    # make ARCH=arm orion5x_defconfig
  7. 以下の文も実行する.
    # devio > foo 'wl 0xe3a01c07,4' 'wl 0xe3811042,4'
  8. カーネルのコンフィグを行う.
    # make ARCH=arm menuconfig
    メニューの [System Types] の下に [Orion Implementations] という項目があって, その下の [Buffalo Linkstation Mini] 以外のチェックをはずすのが味噌. とは言え, 結構大変なので実績のあるコンフィグファイルを ここに置いておきます. まぁこれもいろいろ問題ある んですが (RTC が動かないとか, LED やスイッチが操作できないとか).
  9. 以下のシェルスクリプトを作り, 実行する (名前は適当, 例えば mkImage)
    make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- zImage
    cat foo arch/arm/boot/zImage > zImage.new
    mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n 'linux' -d zImage.new uImage.new
  10. さらに以下のようなシェルスクリプトも作り実行する (名前は適当, 例えば mkModule)
    make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- modules
    make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- modules_install INSTALL_MOD_PATH=/hoge
  11. Debian 化した LinkStation 用 HDD を繋ぎ (sdb になったとする), 9 で出来た uImage をコピーする
    # mount -t ext3 /dev/sdb1 /mnt
    # cp uImage.new /mnt/uImage.buffalo
    # umount /mnt
  12. さらに 10. で出来たモジュール群もコピーする (2.6.28.7 という文字はコンパイルした バージョンに依存)
    # mount -t ext3 /dev/sdb2 /mnt
    # cd /mnt/lib/modules
    # rm -rf 2.6.28.7
    # cp -R /hoge/lib/modules/2.6.28.7 .
    # umount /mnt
  13. HDD をはずし, LS-WSGL の基板に取り付けて起動

2009.3