Shino's Bar Linux Stuff

走れパピーPuppy Linux core logo

Go to走れパピー 目次
30 Jun 2009 (初出:10 Apr 2009)

パピー・リナックスにNVIDIAドライバをインストール

NVIDIA GeForceなどのグラフィック・カードはXorgの標準ドライバ nv で動作します。 しかし 3Dアクセラレーションなどの機能を生かすには NVIDIA社が供給するLinux用ドライバが必要です。 Frugalインストールされている Puppy Linux 4.1.2.1JPに これを追加インストールします。

私がこれをインストールしたのは セカンドライフをやるためでした。 パピーリナックスでセカンドライフができるかって? ハードウェアさえ満足ならばできますよ。 ただしストリーミングのミュージック、メディア再生ができないのと、ボイスチャットもできません。 その点を除けば、たいへん快適です。 (パピーリナックスでこれを執筆している裏でセカンドライフのアバターがキャンプしてます。)

必要なダウンロード・ファイル

ダウンロード先はどこでも...と言いたいところですが、 Frugalインストールされた Puppy Linuxは基本的にはメイン・メモリ上で動いているので、 ファイルがあまりに大きいとメモリ・スペースを圧迫します。 一般的に大きいファイルはできるだけハードディスク上に置くようにします。 ここでは、適切な場所に直接ダウンロードすることで、無駄にメモリを使用しないように努めます。

  1. xorg_xorg_dri-7.3-1
  2. PETget パッケージマネージャを立ち上げます。 パッケージリストの中から xorg_xorg_dri-7.3-1 を1クリックします。 しばらく待つとダウンロード選択ボタンが出るので、いずれかを選びます。 nluug.nl が比較的速いようです。 ダウンロードとインストールが連続して行われます。 成功すればインストール済みパッケージのリストにこれが現れるはずです。

  3. devx_412.sfs
  4. ブラウザでPuppy Linux本家ダウンロードサイトへ行き、 リンクを辿って ftp://ibiblio.org/pub/linux/distributions/puppylinux/ などにアクセスします。 sfs_modules-4 の中に devx_412.sfs があります。 ダウンロード先は /mnt/home です。 これはハードディスクの pup_save.2fs があるパーティションのトップディレクトリです。

  5. kernel-src-2.6.25.16-patched-puppy4.1.sfs
  6. devx_412.sfs と同じところに kernel-src-2.6.25.16-patched-puppy4.1.sfs があります。これも /mnt/home にダウンロードします。

    ダウンロードされたらファイル名を kernel-src-2.6.25.16-patched-puppy_412.sfs と変更します。 これは、Puppy Linuxの起動時にファイル名が *_412.sfs とあるものを自動的に読み込むことを利用するためです。

  7. NVIDIA-Linux-x86-*-pkg1.run
  8. NVIDIA社のドライバダウンロードのページ で製品名を選んで最新ドライバを検索できます。 あるいはDisplay Driver Archiveのページ から適当なものを探すこともできます。 私のビデオカードは GeForce 8800 GTXで、 執筆時の最新版は NVIDIA-Linux-x86-180.44.pkg1.run でした。

    順にクリックしてゆくと、最後にインストーラーのソースがそのままブラウザに表示されてしまいます。 読み込みが完了するのを待って、 ブラウザのファイル>「名前を付けてページを保存...」 で保存してやります。 これも /mnt/home に保存します。22MBほどありました。

ドライバ作成の準備

  1. ファイルの確認
  2. ここで デスクトップのメニュー>システム> Boot Manager ブートアップの設定 を立ち上げ、 「SFSファイルのロード」 のボタンを押します。

    出てきたダイアログの左の窓には、先ほど準備したうちの2つ devx_412.sfskernel-src-2.6.25.16-patched-puppy_412.sfs が現れているはずです。 いずれもファイル名末尾が _412.sfs となっていることを確認してください。

    その下の「上のユーザーの選択を無視してファイル名が'_412'となっているすべてのファイルをロードする」 にチェックが入っていなければ入れてください。 今回は上部の窓による選択を使わずにファイル名を利用しているからです。

    読み込むべきSFSファイルは /mnt/home すなわち pup_save.2fs があるパーティションのトップディレクトリに置かねばなりません。 pup_save.2fs はひとつ下の階層たとえば /mnt/home/puppy にあっても探しに行きますが、 SFSファイルは /mnt/home にあるものしか見ないようです。

    NVIDIA-Linux-x86-*-pkg1.run についてはここでは関係ありません。

  3. SFSファイルのロード
  4. パピーリナックスを再起動します。 Xが立ち上がるとさきほどと同じSFSファイルのロード選択のダイアログが出てくるかもしれませんが、 キャンセルボタンでこれを閉じます。

    ちゃんとロードされておれば /usr/src ディレクトリ以下にカーネルのソースがあるはずです。 /usr/src ディレクトリが存在しているかどうか確認してください。

ドライバの作成とインストール

  1. 作業場所などの確認
  2. 作業スペース(50MBくらい要るのかなあ?)はハードディスク上に取りたいところですが、 ext2あるいはext3などLinux用にフォーマットされていなければなりません。 それがあればマウントしておき、そこのどこかを作業場所とします。 無ければメモリ上にある /var/tmpを作業場所にします。

    インストーラ NVIDIA-Linux-x86-*-pkg1.run がある場所も確認しておきます。

  3. Xを終了する
  4. 次の作業は Xが立ち上がっているとできません。 デスクトップのメニュー>シャットダウン>Xの終了 でコンソールに落ちて作業を進めます。

  5. インストーラーの実行
  6. 作業場所に移動したのちインストーラーを実行します。 次のコマンドを打ちます。

    cd /var/tmp
    sh /mnt/home/NVIDIA-*.run

    なんどか質問がありますが、最初にライセンスの確認で Acceptを選択する他は、 たいていは Yes で答えてよいはずです。

    無事終了すれば、Xを起動します。

    startx

nvidia-settingsによる設定と後始末

無事Xが立ち上がれば、 /usr/bin/nvidia-settings を探します。 このままクリックして実行してもよいですが、 デスクトップにドロップしてアイコンを作っておきます。 歯車では見栄えが悪いというのであれば、ディスクトップ上のそれを右クリック>アイコンの設定を選びます。 出てきた窓に /usr/share/doc/NVIDIA_GLX-1.0/nvidia-settings.png を落とします。

nvidia-settings ではデュアルディスプレイの設定や解像度、色深度などの変更ができます。 これらを変更したら「Save to X Configuration File」ボタンを押し、 その後Xを再起動します。

/mnt/homeに置いてあったファイル devx_412.sfs, kernel-src-2.6.25.16-patched-puppy_412.sfs, NVIDIA-Linux-x86-*-pkg1.run はもう必要ありません。 削除するか別の場所に移します。 2つのsfsファイルを /mnt/home から取り除いてから パピーリナックスを再起動すると これらは読み込まれず /usr/srcディレクトリなども消えているはずです。

Xの起動に失敗したら

主にカーネルのバージョンとNVIDIAドライバとの整合性の問題だと思われますが Xの起動に失敗することがあります。 慌てず /etc/X11/xorg.conf を編集し、

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8800 GT"
EndSection
nvidia のところを nv と書き換え、
xwin
と入力すれば X標準のドライバで起動することができます。 Xが使えないと vi などのコマンドラインエディタが使えないとできませんね。 その場合は
xorgwizard
で設定し直します。

その後、昔のバージョンを試してみるとよいでしょう。

以上