PCへのART-LINUXのインストール

ART-Linux のインストールで困ったことの解決策を書いておきます。対象は debian 6.0 (squeeze) です。

◎ カーネルのリビルド

  配布されている art-linux のカーネルは,modversion が有効になっているため,その後追加ボードのドライバを入れようとすると,チェックサム (version string?) が合わなくて "invalid module format" というエラーが出て悩むことになる。そこで,カーネルの再構築を行う。

  • 産総研 art-linux のHPから,カーネル本体にソースとヘッダを頂いてきてインストール。ソースはbz2ができるだけなので,その後は手動展開。ソースには /usr/src/linux でアクセスできるようリンク貼る。

  • cd /usr/src/linux をして,cp /boot/config-2.6.32-art .config により art カーネルの設定ファイルを作っておく。

  • apt-get install build-essentials kernel-packages libncursese-dev として必要なツールを入れておく。

  • make-kpkg clean ののち,make menuconfig し,以下の項目を変更のうえ,.configを更新保存。

   1)Loadable module support の中に入り,versioning に関する項目(デフォルト     では選択された状態)のチェックを外す【重要

   2)Processor feature の中に art のリアルタイム関係の設定可能項目がある。デフォルトだとタスク実行の最小周期は 1000 [micro sec] に設定されているので,それより短い時間を望む場合は1000よりも小さい数字にしておく。実行周期設定の限界がどの変化は不明だが、あまり短いとタスク本体の実行に支障が出るのでは?

  • make-kpkg --append-to-version hoge kernel-image とし,コンパイルが終わるのをお茶を飲みながら待つ。append-to-version に文字列をつけるのは重要(hogeは好きなものに入れ替えてね)。これをしておかないと,新たにビルドされたモジュールなどが /lib/modules/2.6.32-art に上書きされてしまい,最悪1からやり直しになる。
  • コンパイルが終わったら /usr/src に *.deb なカーネルができているので,dpkg -i でインストール
  • ls /lib/modules とすると,出来上がった新しいカーネルに対応する新しいフォルダができているはず。それをhogehogeとすると
    update-initramfs -c -k hogehoge
    として,initrd.img (起動時に使う ramdisk のイメージ?)を作成。
  • 最後に update-grub2 とすれば,次回再起動時よりメニューに新しいカーネルが追加されてめでたしめでたし。

◎ nVidia 謹製 driver のインストール

       nVidia のドライバインストールパッケージは,X が起動していない状態でインストールすることを要求するので,"init 3" として数秒待ったが変化なし (-_-; web 情報で,debian では runlevel 2-4 に明確な規定がなく,デフォルト設定では runlevel 2 or 3 でも gdm3 (Xウィンドウマネージャ)が起動してしまうことが判明。そこで以下のような手段でこれを回避した。

  • cd /etc/rc2.d し,mv S20gdm3 stopS20gdm3 とする。/etc/rc3.d にある S20gdm3 にも同じ処理をする。
  • init 3 を実行(だめなら一度リブートすると,ランレベル2で止まりコンソールログイン待ち状態で止まるはず)
  • ログインして root になり sh ./NVIDIA-***.sh を実行する。すでに versioning サポートを外してあるので問題なくモジュールの構築ができるはず。
  • インストールスクリプトが無事終わったら,名前を書き換えた S20gdm3 を元に戻しておく。

 さすがに,きちんとフルスクリーン使えるようになると見栄えが違いますね(笑)