!!FreeBSDトラブル集 !カーネル関連 ::5および6系列 *キーボードの抜き差し /boot/device.hints で hint.atkbd.0.flags="0x2" にする。 *ACPIをOFF, APMをON /boot/device.hints で hint.acpi.0.disabled="1" hint.apm.0.disabled="0" *CD/DVDドライブのDMA転送有効 /boot/loader.conf で hw.ata.atapi_dma="1" *サウンドデバイス(CMIチップ)有効 /boot/loader.conf で snd_cmi_load="YES" ::症状 天地創造の後、ブート時に ata1-master : FAILURE ATAPI_IDENTIFY timed out というようなメッセージが出てこける。 ::原因 天地創造により /boot/device.hints がデフォルトの hint.acpi.0.disabled="0" hint.apm.0.disabled="1" となってしまたが、/etc/rc.conf では apm_enable="YES" となっていたことが一因のようだ。 RAIDにしていて、ATA0にHDDが不在なのも関係があるかもしれない。 とりあえず、My Machine のACPIは腐ってるみたいなので無効にして、 APMのほうを有効にしておく。 !ports関連 ::portupgradeプロブレム missing key: categories: Cannot read the portsdb! /usr/local/lib/ruby/site_ruby/1.8/portsdb.rb:567:in `open_db': database file error (PortsDB::DBError) ... 云々というエラーで portupgrade できない。 ::原因 2007/02〜2007/03 の間にportsツリーのディレクトリ構成 が変更されたらしい。 /usr/ports/sysutils/portupgrade -> /usr/ports/ports-mgmt/portupgrade 古い方を make deinstall 、新しいのをインストールして解決。 アップデート後は pkgdb -L して依存関係修正 !X関連 ::症状 ローカルな起動スクリプトが二重起動する ::対処 xorg-7.2の移行により/usr/localに統一されたのに伴い、 /usr/X11R6 は /usr/local へのリンクになった。 よって、/etc/rc.conf に local_startup="/usr/local/etc/rc.d/" を追加しないと、同じスクリプトを二回起動してしまう。 ::症状 XFree86 から Xorg への乗り換えで、X-client の一部が、 Warning: Unable to load any usable ISO8859 font Error: Aborting: no font found というエラーを吐いて、起動しない。 ::対処 .Xdefaults において、 *font:-alias-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1 というように明示的に Default font を指定してやる。 ::症状 Xorg-6.9 でマウスのホイールが効かない ::対処 普通は moused のフラグとして /etc/rc.conf で moused_flags="-z 4" としてやるのだが、Xorg-6.9だとこれがNG。 このフラグをコメントアウトして、/etc/xorg.conf で Section "InputDevice" Option "ZAxisMapping" "4 5" EndSection となっていれば良い。 !WWWブラウザ関連 *linuxpluginwrapper の設定 /etc/libmap.conf で # [ALPHA SUPPORT] Flash7 with Mozilla [/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so] libpthread.so.0 libpthread.so.1 libdl.so.2 pluginwrapper/flash7.so libz.so.1 libz.so.2 libm.so.6 libm.so.3 libc.so.6 pluginwrapper/flash7.so と設定。 Flash7を有効にするには、パスが変わっているので、 ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so /usr/X11R6/lib/browser_plugins/ ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt /usr/X11R6/lib/browser_plugins/ とリンクを張る. !印刷関連 ::症状 CUPSでfoomatic-ripフィルタがトラぶる ::原因&対処 gs コマンドの出力として/dev/fd/3 がデフォルトになっているが、 devfs移行後のFreeBSDではfdは2までしかない。catを使った代替 スクリプトはバギー そこで、/etc/fstab に fdescfs /dev/fd fdescfs rw 0 0 を追加して、3以降のfdを動的に生成できるようにしたら解決! (中々気付かなかったよ・・・・) ::症状 EPSON のカラーレーザプリンタLPS6500(eplaserドライバ)でA3印刷できない。 ::対処 eplaserのドライバのソースで定義されているA3のサイズが842X1190なのに、Ghostscriptのgs_statd.psでは842X1191になっていた。 gs_statd.psをドライバの方に合わせたらOK。 デバイスとしては、lp9800cを指定してやって問題ない。 オプションに、-dDuplex を付けてやれば両面印刷できる。 ::症状 EPSON のカラーレーザプリンタLPS5000(foomatic-rip)で印刷できない。 ::対処 psutils のプログラムが適切に利用できない状態になっている。 ( http://avasys.jp/product/linux_driver/question/2009/12/qa00073.php ) pstolps5000.sh というスクリプトの中で -rotator="" && test "$useRotator" = "on" && rotator="| pstops -q $pstops1 $pstops2" +rotator="" && test "$useRotator" = "on" && rotator="| /usr/bin/pstops -q $pstops1 $pstops2" と絶対パス指定してやる。 また各スクリプトのシェル指定を -#!/bin/bash +#!/usr/local/bin/bash とするのを忘れないこと。 !POSIX thread 関連 ::症状 thread libraryに関して、古いlibc_rと新しいlibpthreadの混在が問題になった。spinlockほにゃららというエラーを吐いて死ぬアプリが出てくる ::対処 libraryやアプリの完全な入れ替え。 一時しのぎとしては、/etc/libmap.conf に libc_r.so.5 libpthread.so.1 libc_r.so libpthread.so を追加 ![OpenOffice|http://ja.openoffice.org/] 関連 ::プリンタ設定 /usr/local/openoffice.org2.0.0/program/spadmin で行う。(フォントの追加も) ::症状 portsでOpenOffice.org-2.0.0のビルドを試みたが途中で止まる ::対処 ぐぐってみると、mozilla sub-portの問題みたい。 make LOCALIZED_LANG=ja -DWITH_GPC -DWITHOUT_JAVA -DWITH_CCACHE -DWITHOUT_MOZILLA build という感じで、WITHOUT_MOZILLAにしてコンパイル成功。 ::症状 上のオプションでコンパイルしたのは、Fileダイアログで日本語が使えないために、拡張子指定がままならない&ヘルプが無い、という問題が生じた。 ::対処 make LOCALIZED_LANG=ja -DWITH_CCACHE -DWITHOUT_MOZILLA -DWITH_TTF_BYTECODE_ENABLED build として、JAVAを有効にしてWITH_TTF_BYTECODE_ENABLEDオプションをつけた。 !その他 ::症状 CDライター K3b がドライブを認識しない ::対処 SCSI のCDドライブ cd0 が前提なので、ATAPIの場合は device atapicam をカーネルに仕込んでおく /dev の cd0, acd0, pass0, xpt0 のパーミッションが 書き込み可になっている必要がある。 ユーザがwheel, operatorに登録されているなら、 /etc/devfs.conf に perm acd0 0660 perm cd0 0660 perm pass0 0660 perm xpt0 0660 として、/etc/devfs restart 実際に書き込むには、cdrecord や cdrdao なども setuid しておく必要がある