ENV=.profile; export ENV最近のshellはENVが設定されていると、そのファイルを設定ファイルとして読むようなので。
$ grep xdm /etc/ttys # include none, when no getty is needed, and xdm, to start the ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
# diff -u google.src google.src.bak --- google.src Tue Jul 31 10:46:09 2007 +++ google.src.bak Tue Jul 31 10:43:20 2007 @@ -4,7 +4,8 @@ name="Google" description="Google Search" method="GET" - action="http://www.google.co.jp/search" + action="http://www.google.com/search" + update="http://www.google.com/mozilla/google.src" updateCheckDays=1 queryEncoding="utf-8" queryCharset="utf-8"ちなみに現在のバージョンは(Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.13) Gecko/20060817)です。
snd_ich_load="YES"cat /dev/sndstatで次のような出力があればうまく設定できているはず。
$ cat /dev/sndstat FreeBSD Audio Driver (newpcm) Installed devices: pcm0:しかし、マイク入力がすごく小さい。mixerなどでボリュームをあげてみたが若干の改善はするものの使いものになるレベルではない。at io 0xe000, 0xe400 irq 17 bufsz 16384 kld snd_ich (1p/1r/0v channels duplex default)
Wnn7 Personal for Linux/BSD は RedHat Linux, Vine Linux, Turbolinux, Debian GNU/Linux, FreeBSD 以外のシステムでは動作保証していません。 Sorry. Bye.しかたないので、ディレクトリをコピーしてインストーラーを書き換えた。
$ diff -u Install.org Install --- Install.org Thu Aug 2 12:28:56 2007 +++ Install Thu Aug 2 12:29:56 2007 @@ -915,6 +915,10 @@ DIST="FreeBSD5" # echo "FreeBSD5.x" ;; + 6.* ) + DIST="FreeBSD5" + # echo "FreeBSD6.x" + ;; * ) DIST="FreeBSD" # echo "FreeBSD ???"インストールを実行するといくつかワーニングが出たが、一応終了した模様。
インストール処理開始... jserver の停止...完了; ユーザーデータのバックアップ...完了 Wnn7 Main Dictionary パッケージのインストール...完了 Wnn7 Optional Dictionary パッケージのインストール...完了 Wnn7 Server パッケージのインストール...warning: The jserver services appear to be present in /etc/services. 完了 Wnn7 XWindow Client パッケージのインストール...完了 Wnn7 Utility パッケージのインストール...完了 Wnn7 eLisp Client パッケージのインストール...完了 Wnn7 License Server パッケージのインストール...完了 ライセンスパスワードのインストール...完了 dpkeyserv の起動... dpkeyserv jserver の起動...[read_access_file] Cannot access "" jserver(Wnn7) インストール終了起動しているか見てみるとdpkeyservは起動できているが、jserverが起動できていない。
neon# /usr/local/etc/rc.d/wnn7.sh start [read_access_file] Cannot access "" jserver(Wnn7)検索するとこれはomronのサポートページにFAQがありました。
/usr/libexec/ld-elf.so.1: Shared object "libm.so.2" not found, required by "xwnmo"ライブラリ自体はあるようだが、末尾の番号が異なるようだ。シンボリックリンクしたところ解決。
ln -s /usr/lib/libm.so /usr/lib/libm.so.2 ln -s /usr/local/lib/libintl.so.8 /usr/local/lib/libintl.so.4さらに今度はロケールのエラー
xwnmo : Can't set locale "ja_JP.EUC" related to langName "ja_JP". xwnmo : I refer to the system locale. xwnmo : Can't set locale "ja_JP.eucJP". xwnmo : I give up creating of environment for such locale. xwnmo : Can't create any environment. xwnmo : I will abort soon.omronのwebページよりFreeBSD 5.2R用を落しアップグレードした所解決。 次に、Mozillaとかでxwnmoを使う為の環境変数の設定。
LANG=ja_JP.eucJP; export LANG LC_ALL=$LANG; export LC_ALL XMODIFIERS="@im=_XWNMO"; export XMODIFIERSktermでもxwnmoを使ってみる。Xリソースに次の設定を行なう。
KTerm*openIm: True以下がkterm+xwnmoで予測入力を行なっている様子です。なかなか便利。
lp|nx720h|IPSIO NX720H:\ :lp=:rm=nx720h:rp=lp:sd=/var/spool/lpd/nx720h:lf=/var/adm/lpd-errs:mx#0:\ :if=/usr/local/lib/rpdl_filter:フィルターの中身はgsで、Deviceにrpdl4を指定している所がポイントです。
#!/bin/sh # gs command parameter papersize=a4 # printer=nx720h dpi=400 width=1 height=24 device=rpdl4 #duplex=-dDuplex=false #duplex=-dDuplex #tray=-dTray=4 #manfeed=-dManFeed #frmov=-dFrmOv=99 #copies=-dNumCopies=1 # gs command gs -q \ -r${dpi} \ -dBW=${width} \ -dBH=${height} \ ${copies} \ ${duplex} \ ${tray} \ ${manfeed} \ ${frmov} \ -dKANJI -dNOPAUSE \ -dSAFER \ -sDEVICE=${device} \ -sPAPERSIZE=${papersize} \ -sOutputFile=- -これだと漢字が出なかったのでfontの設定を行なった。
/usr/local/share/ghostscript/7.07/lib/CIDFnmap: (CIDFnmap.Koc) .runlibfile (CIDFnmap.CJK) .runlibfile /usr/local/share/ghostscript/7.07/lib/CIDFnmap.CJK: /Adobe-Japan1 /Kochi-Mincho ; % CIDFnmap.Koc /Ryumin-Light /Kochi-Mincho ; % CIDFnmap.Koc /GothicBBB-Medium /Kochi-Gothic ; % CIDFnmap.Koc /usr/local/share/ghostscript/7.07/lib/CIDFnmap.Koc /Kochi-Mincho (/usr/local/lib/X11/fonts/TrueType/kochi-mincho-subst.ttf); /Kochi-Gothic (/usr/local/lib/X11/fonts/TrueType/kochi-gothic-subst.ttf);
javaprsrvrというシリアルポートを利用するjavaのプログラムを動かそうとしたところ、多少つまづいたので記録しておきます。
このプログラムはアマチュア無線のAPRS関連のプログラムであるが、RXTXを用いてjavaのプログラムを動作させようとした場合は同様の問題が発生すると思われます。JAVAに馴染みがあれば、ハマるような問題ではないと思いますけどね。
なお、OSと各ソフトウェアのバージョンは以下の通りです。
OS: FreeBSD 7.3R
JDK: jdk-1.5.0.16p9_5,1 Java Development Kit 1.5.0
RXTX: rxtx-2.1-7r2およびrxtx-2.2pre2
まず、通常通りJDKとRXTXをインストールします。JDKはパッケージをインストールしました。RXTXはソースをダウンロードしてインストールしています。インストール作業自体は特に問題なく完了するはずです。
デフォルトで、/usr/local/jdk1.5.0/jre/lib/ext/RXTXcomm.jarにclassファイル、ライブラリは/usr/local/jdk1.5.0/jre/lib/i386にインストールされます。
ライブラリパスは必要ならLD_LIBRARY_PATHに設定しますが、恐らくデフォルトのままで良いと思います。CLASSPATHは環境変数ないしは-cpオプションで指定する必要があるかもしれません。
ここで、ライブラリパスを正しく設定しているにもかかわらず、どうしても次ののエラーが発生しました。
UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriverなかなか気づきませんでしたが、trussで探しているライブラリを確認したところ、librxtxSerial.soを検索しているように見えます。rxtxが悪いかconfigureが悪いかは良くわかりませんが、インストールした際に自動的に生成されるのはlibrxtxSerial.so.0.0のみであり、librxtxSerial.soはつくられないようです。
# pwd /usr/local/jdk1.5.0/jre/lib/i386 # ls -l -rwxr-xr-x 1 root wheel 129976 7 26 16:22 librxtxSerial-2.1-7.so.0.0 -rwxr-xr-x 1 root wheel 44442 7 26 16:22 librxtxParallel-2.1-7.so.0.0 lrwxr-xr-x 1 root wheel 28 7 26 20:10 librxtxSerial.so.0.0 -> librxtxSerial-2.2pre1.so.0.0 -rwxr-xr-x 1 root wheel 854 7 26 20:10 librxtxSerial.la -rwxr-xr-x 1 root wheel 131270 7 26 20:10 librxtxSerial-2.2pre1.so.0.0 lrwxr-xr-x 1 root wheel 30 7 26 20:10 librxtxParallel.so.0.0 -> librxtxParallel-2.2pre1.so.0.0 -rwxr-xr-x 1 root wheel 864 7 26 20:10 librxtxParallel.la -rwxr-xr-x 1 root wheel 44430 7 26 20:10 librxtxParallel-2.2pre1.so.0.0つぎのようにして、リンクをつくっておく必要があるでしょう。
#ln -s librxtxSerial-2.2pre1.so.0.0 librxtxSerial.so #ln -s librxtxParallel-2.2pre1.so.0.0 librxtxParallel.soこれでインストールの問題は解決しました。
次の問題は、NoSuchPortExceptionが発生してしまうことでした。
Serial Portは/dev/ttyd0を使用するように設定してあり、当然、キャラクタデバイスファイルは存在しています。
javaのエラーメッセージに含まれるスタックトレースから、エラーの出所を探したところ、rxtxのソースファイルに含まれるCommPortIdentifier.java内のinit関数でエラーが発生しているようです。解らないながらもソースを眺めてみると、debugモードにすることで詳細な情報が得られることに気付きました。
早速、次のような変更を加え、debugモードでコンパイルし直して実行してみた。
# pwd /tmp/rxtx-2.2pre2/src/gnu/io # diff CommPortIdentifier.java CommPortIdentifier.java.debug 86c86 < private final static boolean debug = false; --- > private final static boolean debug = true;この結果、/dev/ttyd0は正しく渡されているが、でバースをオープンする際にエラーになっているようです。