NVIDIAの新しいドライバを入れたらXが起動しなくなった

Debian で,NVIDIA のドライバを 190.53 → 195.36.15 にアップグレードしたら,

NVRM: API mismatch: ...

というエラーが出てXが起動しなくなった.環境は Debian squeeze/testing, GeForce 9800 GT.sudo update-initramfs -u を実行すると,解決した.

症状

マシンを起動してもXが立ち上がらない./var/log/messages を調べると

May  1 05:34:42 prongs kernel: [  115.763521] NVRM: API mismatch: the client has the version 195.36.15, but
May  1 05:34:42 prongs kernel: [  115.763524] NVRM: this kernel module has the version 190.53.  Please
May  1 05:34:42 prongs kernel: [  115.763526] NVRM: make sure that this kernel module and all NVIDIA driver
May  1 05:34:42 prongs kernel: [  115.763528] NVRM: components have the same version.

というエラーが出ている.NVIDIAのドライバのバージョンを新しくしたのが原因のようだ.

対策

とりあえず起動したい場合は, sudo modprobe -r nvidia を実行してから sudo /etc/init.d/kdm restart(KDE Display Manager を使ってる場合)などでXを再起動する.しかし,これだと reboot すると同じエラーが出る.

google "NVRM: API mismatch"で情報がいくつか出てくる.恐らく正解は*1,新しいドライバインストール後に,

sudo update-initramfs -u
reboot

を実行するというものだ(ここに書いてあった).

*1:update-initramfs を実行する前に /lib/modules/KERNEL-VERSION/kernel/drivers/video にある古いドライバを削除したりしたので確証はない.が,古いドライバを戻して試しても問題は出なかったので,この作業は不要.