2008年2月2日土曜日

df で見ると used が マイナス になる!?

強制再起動した後 fsck_ufs が回っているのですが……


%df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ar0s1a 2026030 171126 1692822 9% /
devfs 1 1 0 100% /dev
/dev/ar0s1h 97241478 4 89462156 0% /export
/dev/ar0s1g 203114302 -25494 186890652 -0% /home
/dev/ar0s1e 4058062 33662 3699756 1% /tmp
/dev/ar0s1f 152337186 9695586 130454626 7% /usr
/dev/ar0s1d 4058062 62910 3670508 2% /var

まいなす!?


%df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ar0s1a 2026030 171126 1692822 9% /
devfs 1 1 0 100% /dev
/dev/ar0s1h 97241478 4 89462156 0% /export
/dev/ar0s1g 203114302 -25494 186890652 -0% /home
/dev/ar0s1e 4058062 33662 3699756 1% /tmp
/dev/ar0s1f 152337186 9695586 130454626 7% /usr
/dev/ar0s1d 4058062 62910 3670508 2% /var
%df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ar0s1a 2026030 171126 1692822 9% /
devfs 1 1 0 100% /dev
/dev/ar0s1h 97241478 4 89462156 0% /export
/dev/ar0s1g 203114302 -26102 186891260 -0% /home
/dev/ar0s1e 4058062 33662 3699756 1% /tmp
/dev/ar0s1f 152337186 9695586 130454626 7% /usr
/dev/ar0s1d 4058062 62910 3670508 2% /var

淡々と増えてます……

そして十数分後、fsck_ufsも無事終わり、どうやらダメージは無かった様子。
よかったよかった…


%df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ar0s1a 2026030 171126 1692822 9% /
devfs 1 1 0 100% /dev
/dev/ar0s1h 97241478 4 89462156 0% /export
/dev/ar0s1g 203114302 6106 186859052 0% /home
/dev/ar0s1e 4058062 33662 3699756 1% /tmp
/dev/ar0s1f 152337186 9605298 130544914 7% /usr
/dev/ar0s1d 4058062 62912 3670506 2% /var


dfも元通り。一体何だったんだろう……

とりあえずnvidiaドライバはちょっとお預けということで、特にトラブルなく表示された nv ドライバで様子を見ることにします。カーネルモジュールは怖いですね。

2008年2月1日金曜日

nvidia-xconfigを入れてみる。

x11/xorg の make installが終わったので、とりあえず /etc/X11/ とか /usr/local/etc/X11/ を見てみたものの、.confファイルは無し。グラフィックボードのドライバを入れてから考えることにします。GeForce 8500GTなので
x11/nvidia-driver を入れてみました。100.14.19相当のようです。Version 169.07が出ている のですが、Update requestがsend-prされているのでそのうち新しくなるでしょう。

% cat /boot/loader.conf
nvidia_load="YES"
% kldstat
Id Refs Address Size Name
1 10 0xc0400000 93ba74 kernel
2 1 0xc0d3c000 693b3c nvidia.ko
3 2 0xc13d0000 27828 linux.ko
4 1 0xc13f8000 671f4 acpi.ko



ところが、なぜか同梱されているはずの nvidia-xconfig や nvidia-settings が入ってきません。work を見ると…


# pwd
/usr/ports/x11/nvidia-driver/work/NVIDIA-FreeBSD-x86-100.14.19/obj
# ls
libGL.so.1 libXvMCNVIDIA.so.1 libnvidia-tls.so.1 nvidia-bug-report.sh nvidia_drv.so
libGLcore.so.1 libglx.so.1 libnvidia-wfb.so.1 nvidia-settings
libXvMCNVIDIA.a libnvidia-cfg.so.1 linux nvidia-xconfig
# ldd nvidia-xconfig
nvidia-xconfig:
libm.so.3 => /usr/local/lib/compat/libm.so.3 (0x2809e000)
libc.so.5 => /usr/local/lib/compat/libc.so.5 (0x280b9000)
# ldd nvidia-settings
nvidia-settings:
libgtk-x11-2.0.so.400 => not found (0x0)
libgdk-x11-2.0.so.400 => not found (0x0)
libXrandr.so.2 => /usr/local/lib/libXrandr.so.2 (0x28115000)
libXi.so.6 => /usr/local/lib/libXi.so.6 (0x2811b000)
libXinerama.so.1 => /usr/local/lib/libXinerama.so.1 (0x28123000)
libXcursor.so.1 => /usr/local/lib/libXcursor.so.1 (0x28126000)
libatk-1.0.so.600 => not found (0x0)
libgdk_pixbuf-2.0.so.400 => not found (0x0)
libm.so.3 => /usr/local/lib/compat/libm.so.3 (0x2812f000)
libpangoxft-1.0.so.399 => not found (0x0)
libXft.so.2 => /usr/local/lib/libXft.so.2 (0x2814a000)
libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x2815b000)
libz.so.2 => /usr/local/lib/compat/libz.so.2 (0x281c7000)
libXrender.so.1 => /usr/local/lib/libXrender.so.1 (0x281d7000)
libXext.so.6 => /usr/local/lib/libXext.so.6 (0x281df000)
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0x281ec000)
libpangox-1.0.so.399 => not found (0x0)
libX11.so.6 => /usr/local/lib/libX11.so.6 (0x28215000)
libpango-1.0.so.399 => not found (0x0)
libgobject-2.0.so.400 => not found (0x0)
libgmodule-2.0.so.400 => not found (0x0)
libglib-2.0.so.400 => not found (0x0)
libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x282fd000)
libc.so.5 => /usr/local/lib/compat/libc.so.5 (0x283f3000)
libc.so.7 => /lib/libc.so.7 (0x284cd000)
libXfixes.so.3 => /usr/local/lib/libXfixes.so.3 (0x285c4000)
libz.so.4 => /lib/libz.so.4 (0x285d2000)
libXau.so.6 => /usr/local/lib/libXau.so.6 (0x285e4000)
libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x285e7000)
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x28606000)
librpcsvc.so.4 => /usr/lib/librpcsvc.so.4 (0x2860b000)

… compat なものとか not foundっぽいものがある… ドキュメントを読むと FreeBSD 5.3相当の環境でコンパイルしたものが入っているようです。nvidia-xconfigはそのまま使えそうですが、せっかくなので x11/nvidia-xconfig を使ってみましょう。nvidia-settingsはなんだかドツボっぽそうなので回避。


# make
===> Vulnerability check disabled, database not found
=> nvidia-xconfig-1.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://jp.download.nvidia.com/XFree86/nvidia-xconfig/.
fetch: http://jp.download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-1.0.tar.gz: size mismatch: expected 110356, actual 110373
■(中略)
=> Attempting to fetch from ftp://download.nvidia.com/XFree86/nvidia-xconfig/.
fetch: ftp://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-1.0.tar.gz: size unknown
fetch: ftp://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-1.0.tar.gz: size of remote file is not known
nvidia-xconfig-1.0.tar.gz 107 kB 77 kBps
===> Extracting for nvidia-xconfig-1.0_2
=> MD5 Checksum mismatch for nvidia-xconfig-1.0.tar.gz.
=> SHA256 Checksum mismatch for nvidia-xconfig-1.0.tar.gz.
===> Refetch for 1 more times files: nvidia-xconfig-1.0.tar.gz nvidia-xconfig-1.0.tar.gz
===> Vulnerability check disabled, database not found
=> nvidia-xconfig-1.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://jp.download.nvidia.com/XFree86/nvidia-xconfig/.
fetch: http://jp.download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-1.0.tar.gz: size mismatch: expected 110356, actual 110373
=> Attempting to fetch from http://us.download.nvidia.com/XFree86/nvidia-xconfig/.
fetch: http://us.download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-1.0.tar.gz: size mismatch: expected 110356, actual 110373
■(中略)
=> Attempting to fetch from ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/bland/.
fetch: ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/bland/nvidia-xconfig-1.0.tar.gz: Unknown error: 0
=> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
fetch: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/nvidia-xconfig-1.0.tar.gz: Unknown error: 0
=> Couldn't fetch it - please try to retrieve this
=> port manually into /usr/ports/distfiles/ and try again.
*** Error code 1

Stop in /usr/ports/x11/nvidia-xconfig.
*** Error code 1

Stop in /usr/ports/x11/nvidia-xconfig.


えー。
どうも 配布されているファイルと distinfo の情報にずれがあるようです。
(httpなら持ってくる前にチェックできるけどftpは持ってきてからチェックするんですね)

とりあえず distinfo を消し、distfiles にある nvidia-xconfig-1.0.tar.gz を念のため消してから再トライ。


# mv distinfo distinfo.old
# /usr/ports/distfiles/nvidia-xconfig-1.0.tar.gz
make
===> Vulnerability check disabled, database not found
=> nvidia-xconfig-1.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://jp.download.nvidia.com/XFree86/nvidia-xconfig/.
nvidia-xconfig-1.0.tar.gz 100% of 107 kB 18 MBps
===> Extracting for nvidia-xconfig-1.0_2
=> No checksum file (/usr/ports/x11/nvidia-xconfig/distinfo).
===> Patching for nvidia-xconfig-1.0_2
===> Applying FreeBSD patches for nvidia-xconfig-1.0_2
===> nvidia-xconfig-1.0_2 depends on executable: gmake - found
===> Configuring for nvidia-xconfig-1.0_2
===> Building for nvidia-xconfig-1.0_2
cc -c -O2 -pipe -march=prescott -I XF86Config-parser util.c -o util.o
■(中略)
cc -O2 -pipe -march=prescott -I XF86Config-parser gen-manpage-opts.o -lm -o gen-manpage-opts
./gen-manpage-opts > options.1.inc
m4 -D__HEADER__=".\\\" WARNING: THIS FILE IS AUTO-GENERATED! Edit nvidia-xconfig.1.m4 instead." nvidia-xconfig.1.m4 > nvidia-xconfig.1
#

オリジナルファイルもちゃんとマスターサイト(と思わしきところ)から持ってきているようなので、これでよしとしましょう。
インストールして実行。


basil# nvidia-xconfig

WARNING: Unable to locate/open X configuration file.

ps: Process environment requires procfs(5)
New X configuration file written to '/etc/X11/xorg.conf'



何故procfsが要求されるのか…なにか見たいのか?
まあいいや。とりあえずユーザに戻してstartxしてみましょう。


% startx


真っ暗。

あれ?

数分経過。

戻ってこない…何故…?
別PCから接続していたsshのコネクションも Operation timed out。
電源ボタンを押してみても無反応…
泣く泣く強制シャットダウン→再起動→絶賛fsck_ufs中

なーーーーーぜーーーーーだーーーーー??
(続く。)

2008年1月31日木曜日

portsでmakeする時-jをつけてハマる。

Core2DuoベースのPCを1台組んだので、まっさらな状態からFreeBSD 7.0ベースの環境を構築。CDがBETA3のものしかなかったので、src込みでインストール、OS部分だけとりあえずRELENG_7_0を追従したものをbuildworld。

その過程で、ふと-jオプションなんてのを思い出したので、折角だから使ってみたのですが早い早い。うとうとしていたら完成してました。(今度時間を計ってみます。)

で、portsで同じように並走させたら早いかな? と思って試してみたのですが……


# cd /usr/ports/devel/make
# make -j 4
===> Vulnerability check disabled, database not found
=> make-3.81.tar.bz2 doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://ftp.gnu.org/gnu/make/.
make-3.81.tar.bz2 1124 kB 27 MBps
===> Extracting for gmake-3.81_2
=> MD5 Checksum OK for make-3.81.tar.bz2.
=> SHA256 Checksum OK for make-3.81.tar.bz2.
===> Patching for gmake-3.81_2
===> Applying FreeBSD patches for gmake-3.81_2
===> gmake-3.81_2 depends on shared library: intl - not found
===> Verifying install for intl in /usr/ports/devel/gettext
cd: can't cd to /usr/ports/devel/gettext/work/gettext-0.16.1
*** Error code 2
install: /usr/ports/devel/gettext/work/gettext-0.16.1/gettext-tools/misc/po-compat.el: No such file or directory
*** Error code 71
2 errors
*** Error code 2
1 error
#


あれ? 依存関係があるはずのgettextの作成を飛ばした? 慌ててやりなおし。


# make clean
===> Cleaning for gmake-3.81_2
# make
===> Vulnerability check disabled, database not found
===> Extracting for gmake-3.81_2
=> MD5 Checksum OK for make-3.81.tar.bz2.
=> SHA256 Checksum OK for make-3.81.tar.bz2.
===> Patching for gmake-3.81_2
===> Applying FreeBSD patches for gmake-3.81_2
===> gmake-3.81_2 depends on shared library: intl - not found
===> Verifying install for intl in /usr/ports/devel/gettext
===> Vulnerability check disabled, database not found
=> gettext-0.16.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://ftp.gnu.org/gnu/gettext/.
gettext-0.16.1.tar.gz 0% of 8339 kB 0 Bps
...


順調順調。

もう今時は portsupgrade 等を使うのが一般的でしょうし、あまりハマることはないと思うのですが、ちょっとびっくりしたのでメモ。