FreeBSD/amd64 8.0-RELEASEにNVIDIA Driver 195.22ベータ版インストール
もう結構前だけど、NVIDIAからFreeBSD/amd64向けドライバのベータ版がリリースされた。FreeBSD/amd64に触れてみたかった事もあって、このドライバをインストールしてみた。
FreeBSD/amd64 8.0-RELEASEが既にインストール済みのシステムにX.orgをインストールする所から始める。
グラフィクスチップはNVIDIA GeForce 8400GS。
目次
X.orgのインストール&設定
まずはxorgのインストール# portinstall x11/xorg
それから設定ファイルの作成。
X11 Configuration
xorgに大まかな設定ファイルxorg.conf.newを作ってもらう。
# Xorg -configure
上記URLでは、ここで出来たxorg.conf.newを使ってテストするのだけど、うちの環境ではテストに失敗した*1。すなわち黒い画面が出て止まってしまった。
よく分からないけど、その後のxorg.conf.newに設定を加えてから試したらちゃんと画面が出るようになった*2。書き加えた設定は以下の通り。
Monitorセクション。使用するモニタに合わせた設定にする。うちのモニタはSAMSUNGのSyncMaster 204B
Section "Monitor" Identifier "Monitor0" VendorName "SAMSUNG" ModelName "SyncMaster 204B" HorizSync 30-81 VertRefresh 56-75 Option "DPMS" EndSection
Screenセクション。解像度1280x1024、色深度24bit
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x1024" EndSubSection EndSection
あと、キーボードとマウスに関する設定(InputDeviceセクション)は削除した。X.org 7.4からはデフォルトでHALを使用してキーボードやマウスを扱うようになり、xorg.confに設定を書いても無視されるからだ。*3
キーボードやマウスはHALのおかげで自動検知されるけど、このままではキーボードが英語配列になってしまう。そこで日本語キーボードの設定を/usr/local/etc/hal/fdi/policy/x11-input.fdiに書き込む。
<?xml version="1.0" encoding="ISO-8859-1"?> <deviceinfo version="0.2"> <device> <!-- KVM emulates a USB graphics tablet which works in absolute coordinate mode --> <match key="input.product" contains="QEMU USB Tablet"> <merge key="input.x11_driver" type="string">evdev</merge> </match> <match key="info.capabilities" contains="input.tablet"> <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux"> <merge key="input.x11_driver" type="string">evdev</merge> </match> </match> <match key="info.capabilities" contains="input.keyboard"> <!-- If we're using Linux, we use evdev by default (falling back to keyboard otherwise). --> <merge key="input.x11_driver" type="string">kbd</merge> <merge key="input.x11_options.XkbRules" type="string">xorg</merge> <merge key="input.x11_options.XkbLayout" type="string">jp</merge> <merge key="input.x11_options.XkbModel" type="string">jp106</merge> <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux"> <merge key="input.x11_driver" type="string">evdev</merge> </match> </match> </device> </deviceinfo>
設定は終わりなのでテスト
# Xorg -config xorg.conf.new -retro
正しく灰色の編目模様の画面が出てきた。マウスも動く。
ここで終了しようとCtrl+Alt+Backspaceを押しても反応はない。X.org7.4からはデフォルトで無効になったようだ。Xを終了させるには、Ctrl+Alt+Fn*4で仮想コンソールに戻ってCtrl+Cする。((Xを除く仮想コンソール間の移動はAlt+Fn)。
最後に設定ファイルを/etc/X11にコピーして、X.orgの設定終了。
# cp xorg.conf.new /etc/X11/xorg.conf
XをCtrl+Alt+Backspaceで終了するようにする
設定ファイルを少しいじる必要がある。
- /usr/local/etc/hal/fdi/policy/x11-input.fdiをいじる。
- /etc/X11/xorg.confのServerLayoutセクションに以下を追加。
<match key="info.capabilities" contains="input.keyboard">
の次の行に以下を追加。
<merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge>
Option "DontZap" "off"
NVIDIAの最新ドライバ195.22ベータ版をインストール
NVIDIA Driver 195.22ベータ版を使うにはまずlinux_base-f10をインストールしないといけない。linux_base-f10のインストール
FreeBSD Daily Topics 2009年8月17日 ≪Tips≫Linuxバイナリ互換環境linux_base-f10をインストールして使う方法簡単な手順としてシェルでのコマンドだけ並べて書いておく。
# echo "VERRIDE_LINUX_BASE_PORT=f10" >> /etc/make.conf # echo "OVERRIDE_LINUX_NONBASE_PORTS=f10" >> /etc/make.conf # kldload linux # portinstall emulators/linux_base-f10 # echo "linux_enable="YES" >> /etc/rc.conf # echo "linprocfs /compat/linux/proc linprocfs rw 0 0" >> /etc/fstab # mount linprocfs; /etc/rc.d/abi start # fetch ftp://ftp.kddlabs.co.jp/pub/Linux/packages/fedora/updates/10/x86_64/tzdata-2009o-2.fc10.noarch.rpm # rpm2cpio tzdata-2009o-2.fc10.noarch.rpm | cpio -idv | grep Tokyo # cp ./usr/share/zoneinfo/Asia/Tokyo /usr/compat/linux/etc/localtime
おわり
NVIDIA Driver 195.22ベータ版のインストール
<2009/12/16追記>195.22ベータはportsにコミットされました。単純にx11/nvidia-driverをインストールするだけで利用できます。/etc/X11/xorg.confへの変更を除いて、以下の作業は不要です。http://www.freebsd.org/cgi/getmsg.cgi?fetch=474379+0+current/cvs-ports
FreeBSD Daily Topics2009年12月8日 ≪注目≫FreeBSD/amd64版向けNVIDIA Driver 195.22ベータ版登場
portsのx11/nvidia-driverを195.22用に改変してしまう。
# fetch ftp://download.nvidia.com/XFree86/FreeBSD-x86_64/195.22/NVIDIA-FreeBSD-x86_64-195.22.tar.gz # mv NVIDIA-FreeBSD-x86_64-195.22.tar.gz /usr/ports/distfiles/ # cp -a /usr/ports/x11/nvidia-driver /usr/ports/x11/nvidia-driver.orig # cd /usr/ports/x11/nvidia-driver # cat > Makefile.new << EOF @@ -6,17 +6,17 @@ # PORTNAME= nvidia-driver -DISTVERSION?= 185.18.36 +DISTVERSION?= 195.22 PORTREVISION?= 0 # As a reminder it can be overridden CATEGORIES= x11 kld MASTER_SITES= ${MASTER_SITE_NVIDIA} MASTER_SITE_SUBDIR= freebsd/${DISTVERSION} -DISTNAME= NVIDIA-FreeBSD-x86-${DISTVERSION} +DISTNAME= NVIDIA-FreeBSD-x86_64-${DISTVERSION} MAINTAINER= danfe@FreeBSD.org COMMENT= NVidia graphics card binary drivers for hardware OpenGL rendering -ONLY_FOR_ARCHS= i386 +ONLY_FOR_ARCHS= i386 amd64 NO_PACKAGE= should be recompiled for a particular FreeBSD kernel USE_GL= gl EOF # patch Makefile < Makefile.new # cat > distinfo.new << EOF @@ -1,3 +1,6 @@ +MD5 (NVIDIA-FreeBSD-x86_64-195.22.tar.gz) = c9b0cdeb68d573556a38e16c02ffed55 +SHA256 (NVIDIA-FreeBSD-x86_64-195.22.tar.gz) = 3a6a0fc3003615c07090c04f2d5b41fa86cf8493309bf48eff8bcaa37126508c +SIZE (NVIDIA-FreeBSD-x86_64-195.22.tar.gz) = 25503618 MD5 (NVIDIA-FreeBSD-x86-185.18.36.tar.gz) = feff4da79a8c3a2f194f46c95c545adb SHA256 (NVIDIA-FreeBSD-x86-185.18.36.tar.gz) = 890b9543d3c81bccc72d60c653647a719c9037f8fc7a88144a18b2a012fbd4a7 SIZE (NVIDIA-FreeBSD-x86-185.18.36.tar.gz) = 19245550 EOF # patch distinfo < distinfo.new # rm distinfo.new Makefile.new # portinstall x11/nvidia-driver # kldload nvidia
startxでちゃんと起動する事を確認できた。
/var/log/Xorg.0.logの中にバージョン番号の"195.22"を確認できた。
途中で、X起動中にCtrl+Alt+F1が効かないとかアンダースコアの入力ができないとかの不具合が出たけど、再起動したら直った。
おわり