FreeBSD QandA ジャンル別一覧: エミュレーション
[管理番号 326] (最終更新 2003/01/22 21:13:32)
Q. Linux のバイナリを実行させようしていますが、うまく動きません。
A. Linux バイナリ互換機能を有効にする必要があります。
ハンドブックの「Linux バイナリ互換機能」
<URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/linuxemu.html>
を御覧下さい。
また、options SYSVSHM 等の SYSV互換機能を追加して kernel を再構築す
る必要があるかもしれません。
[管理番号 373] (最終更新 2001/10/14 11:51:13)
Q. FreeBSD Ports Collection の emulators/snes9x には、最近 (2000年12月現在)
USB ジョイスティックをサポートするコードが入ったようですが、私の
ジョイスティックは使えません。なぜですか?
A. 次の項目を確認して下さい。
1) /etc/rc.conf で
usbd_enable="YES"
となっている (/etc/defaults/rc.conf では NO です)。
2) dmesg | grep uhid とした時に
uhid0: vendor 0x0603 USB GamePad STD., rev 1.00/1.00, addr 2, iclass 3/0
のように、ジョイスティックに対応したデバイスが検出されている。
3) ls -l /dev/uhid0 とした時に、
crw-r--r-- 1 root wheel 122, 0 11/26 10:50 uhid0
のように、snes9x を使うユーザーの読み込みパーミッションがある。
以上です。
それから、Linux 用の SNES9X を FreeBSD で使う場合、
<URL:[BROKEN!] http://ftp.rge.com/pub/X/contrib/widgets/motif/joystick.tar.gz>
を試してみてはどうですか? xquake はこれでジョイスティックが
使えているようです。
[管理番号 604] (最終更新 2000/03/04 08:15:28)
Q. Linux emulator (エミュレータ)を使って Linux バイナリを実行しようと
したのですが、うまく動きません。どうしたら良いでしょう?
A. いろいろな原因が考えられます。順に候補を挙げていきますので、
症状や自分の環境に合わせて、適宜対応して下さい。
1. can't load library 'libXp.so.6' のようなエラーが出る場合は、
対応する Linux 用のライブラリを Linux マシン等から入手して、
/compat/linux/lib/
の下に置いて下さい。
2. ./my-linux-elf-binary というバイナリを実行した時に、
% ./my-linux-elf-binary
ELF binary type not known
Abort
と、表示されるようでしたら、以下のようにして下さい。
% brandelf -t Linux ./my-linux-elf-binary
3. Segmentation fault を起こして動作しない場合は、環境変数
LD_LIBRARY_PATH が設定してないか確かめて下さい。もし
% echo $LD_LIBRARY_PATH
で何か表示されるようなら、
% unsetenv LD_LIBRARY_PATH
で、環境変数をクリアして下さい。
4. Acroread4 を使おうとしたけれど、Segmentation Violation Caught.
というウインドウがでてきて使えない場合は、X のリソース設定
ファイル (~/.Xresources や ~/.Xdefaults) に、
AcroRead*inputMethod: none
という行を追加してください。
あるいは、以下のような簡単なスクリプトを書き、ラッパとして使用する
方法もあります。
#!/bin/sh
# Wrapper Script for Linux Acrobat Reader
XMODIFIERS="@im=none"; export XMODIFIERS
acroread4
5. Applixware (TurboLinuxPro 3.0 および 4.2) について。
3.0 の場合:
メニューを日本語にしたい時は
% setenv AXLANG 17
として下さい。
4.2 の場合:
一応、動くようです。ただし、日本語の入力ができたという例は、
FreeBSD-users-jp ではないようです(1999年12月28日現在)。
詳しくは、[FreeBSD-users-jp 47668] と関連するスレッドを ご覧下さい。
6. hogehoge: error in loading shared libraries
:undefined symbol: __register_frame_info
というエラーが出る場合。
Linux 用の X server (XFCom_Rage128) などを Linux エミュレータで使用して
いる場合に出るようです。この場合は、
<URL:[BROKEN!] http://www.suse.de/en/support/xsuse/index.html>
から regframe.rpm を持ってきてインストールします。
% rpm2cpio regframe.rpm | cpio -ivd
で展開する事ができるので、できた libregframe.so を
/usr/local/lib にコピーして、/etc/ld.so.preload を新しく作り、
/usr/local/lib/libregframe.so
と書く事で、実行できるようになります。
[管理番号 1247] (最終更新 2000/05/24 20:50:08)
Q. Linux(x86) 版の MATLAB を FreeBSD で使えますか?
(keyword: MATLAB, Linux, emulation)
A. 使えます。もちろんライセンスの問題はこれとは別に解決する必要があります。
FreeBSD 2.2.8-STABLE での例を紹介します。これ以外方法や、他の動作環境
での実績があれば QandA に報告して追加・修正して下さい。
[概略]
適当な Linux マシンに Linux(x86) 用の MATLAB をインストールし、その
ディレクトリを FreeBSD マシンが NFS マウントします。FreeBSD では、linux
エミュレーション機能によってこのディレクトリ中の MATLAB を実行します。
(試した環境は、FreeBSD が 2.2.8-STABLE、MATLAB が 5.2.1 で Linux
(Debian 2.2) マシンにインストールされ、ネットワークフローティングの
ライセンスは Solaris 2.6 が管理しているという環境です)
[手順]
Step 0.(適当なマシンに MATLAB をインストールし NFS export する)
・NFS サーバとなる Linux マシンに、Linux(x86) 版のバイナリを含めて
MATLAB をインストールし、少なくともそのマシンで使えるようにします。
・MATLAB をインストールしたディレクトリ (例えば /usr/local/matlab と
します) を、FreeBSD マシンに対して NFS export します。
Step 1.(FreeBSD マシンで linux エミュレーション機能を有効にする)
・linux_lib-2.6.1 を packages/ports からインストールします。ただし、
FreeBSD 3.3-RELEASE から linux_lib は linux_base に置き換えられた
ため、この QandA の手順では動作しないかもしれません。
・linux(8) エミュレータ・カーネルモジュールをロードします。また、
rc.conf(5) で linux_enable=YES とすればブート時に自動的に実行します。
Step 2.(MATLAB の linux(x86) 版のあるディレクトリをマウントする)
・上記の例に従って、mount -t nfs server:/usr/local/matlab /matlab
とし、ls /matlab で bin や etc 等中身が見えるようにします。server
は Linux マシンのホスト名、/matlab は予め mkdir しておきます。また、
fstab(5) に書いておくか amd(8) などを併用すれば便利でしょう。
Step 3.(FreeBSD マシンに必要な linux のライブラリを追加する)
・MATLAB の動作に不足している linux のライブラリを、/compat/linux/lib
に追加します。/compat/linux/usr/bin/ldd /matlab/bin/* などと実行し、
見付からないライブラリを MATLAB をインストールした Linux 側の /lib
からコピーすれば良いでしょう。
(ld-linux* は特に重要そうなのだが、取捨選択が私には難しい。そこで
Linux 側の /lib を全部コピーした。linux_lib が上書きされるし、必要
以上にコピーするので乱暴かも知れないが、私の場合はこれで動作した。
現状は[付録]のようになっている)
・ライブラリを追加したら /compat/linux/sbin/ldconfig を実行します。
Step 4.(MATLAB を実行する)
・例えば、/matlab/bin/matlab -lnx86 によって、MATLAB を使用できます。
更にライブラリが不足しているようなら Step 3.を繰り返します。
[使用感]
少なくとも DEMO は全て実行できます。
音も出ます。(sb なサウンドドライバで確認)
[付録]
% ls -il /compat/linux/lib
total 6031
749 -rwxr-xr-x 1 root wheel 45017 Feb 21 14:37 ld-2.0.7.so*
747 lrwxrwxrwx 1 root wheel 18 Mar 9 19:10 ld-linux.so.1@ -> ld-linux.so.1.9.10
124 -rwxr-xr-x 1 root wheel 21367 Oct 26 1996 ld-linux.so.1.7.14*
773 -rwxr-xr-x 1 root wheel 24396 Jan 14 12:23 ld-linux.so.1.9.10*
141 lrwxrwxrwx 1 root wheel 11 Mar 9 19:10 ld-linux.so.2@ -> ld-2.0.7.so
736 -rwxr-xr-x 2 root wheel 99488 Jan 14 12:23 ld.so*
125 -rwxr-xr-x 1 root wheel 24580 Oct 26 1996 ld.so.1.7.14*
736 -rwxr-xr-x 2 root wheel 99488 Jan 14 12:23 ld.so.1.9.10*
750 -rw-r--r-- 1 root wheel 2768 Feb 21 14:37 libBrokenLocale-2.0.7.so
142 lrwxrwxrwx 1 root wheel 24 Mar 9 19:10 libBrokenLocale.so.1@ -> libBrokenLocale-2.0.7.so
751 -rw-r--r-- 1 root wheel 651436 Feb 21 14:37 libc-2.0.7.so
134 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libc.so.5@ -> libc.so.5.4.46
128 -rwxr-xr-x 1 root wheel 705995 Oct 26 1996 libc.so.5.3.12*
139 -rwxr-xr-x 1 root wheel 1861963 Apr 11 1997 libc.so.5.4.23*
819 -rw-r--r-- 1 root wheel 586732 Mar 9 11:46 libc.so.5.4.46
143 lrwxrwxrwx 1 root wheel 13 Mar 9 19:10 libc.so.6@ -> libc-2.0.7.so
724 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libcom_err.so.2@ -> libcom_err.so.2.0
117 -rw-r--r-- 1 root wheel 4100 Feb 11 08:13 libcom_err.so.2.0
752 -rw-r--r-- 1 root wheel 150380 Feb 21 14:37 libcrypt-2.0.7.so
144 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libcrypt.so.1@ -> libcrypt-2.0.7.so
753 -rw-r--r-- 1 root wheel 55588 Feb 21 14:37 libdb-2.0.7.so
145 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libdb.so.2@ -> libdb-2.0.7.so
754 -rw-r--r-- 1 root wheel 6612 Feb 21 14:37 libdl-2.0.7.so
126 lrwxrwxrwx 1 root wheel 15 Mar 9 19:09 libdl.so@ -> libdl.so.1.7.14
135 lrwxrwxrwx 1 root wheel 15 Mar 9 19:10 libdl.so.1@ -> libdl.so.1.9.10
127 -rwxr-xr-x 1 root wheel 6983 Oct 26 1996 libdl.so.1.7.14*
816 -rwxr-xr-x 1 root wheel 5660 Jan 14 12:23 libdl.so.1.9.10*
146 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libdl.so.2@ -> libdl-2.0.7.so
735 lrwxrwxrwx 1 root wheel 13 Mar 9 19:10 libe2p.so.2@ -> libe2p.so.2.3
733 -rw-r--r-- 1 root wheel 8820 Feb 11 08:13 libe2p.so.2.3
732 lrwxrwxrwx 1 root wheel 16 Mar 9 19:10 libext2fs.so.2@ -> libext2fs.so.2.4
728 -rw-r--r-- 1 root wheel 68524 Feb 11 08:13 libext2fs.so.2.4
136 lrwxrwxrwx 1 root wheel 15 Mar 9 19:09 libfbm.so@ -> libfbm.so.1.0.0
132 lrwxrwxrwx 1 root wheel 15 Mar 9 19:09 libfbm.so.1@ -> libfbm.so.1.0.0
130 -rwxr-xr-x 1 root wheel 72053 Oct 26 1996 libfbm.so.1.0.0*
755 -rw-r--r-- 1 root wheel 104192 Feb 21 14:37 libm-2.0.7.so
133 lrwxrwxrwx 1 root wheel 13 Mar 9 19:09 libm.so.5@ -> libm.so.5.0.8
129 -rwxr-xr-x 1 root wheel 36084 Oct 26 1996 libm.so.5.0.6*
138 -rwxr-xr-x 1 root wheel 76697 Apr 11 1997 libm.so.5.0.8*
157 lrwxrwxrwx 1 root wheel 13 Mar 9 19:10 libm.so.6@ -> libm-2.0.7.so
746 -rw-r--r-- 1 root wheel 242644 Oct 30 22:57 libncurses.so.3.4
741 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libncurses.so.4@ -> libncurses.so.4.2
738 -rw-r--r-- 1 root wheel 240572 Dec 4 00:28 libncurses.so.4.2
756 -rw-r--r-- 1 root wheel 19044 Feb 21 14:37 libnsl-2.0.7.so
158 lrwxrwxrwx 1 root wheel 15 Mar 9 19:10 libnsl.so.1@ -> libnsl-2.0.7.so
757 -rw-r--r-- 1 root wheel 24660 Feb 21 14:37 libnss_compat-2.0.7.so
159 lrwxrwxrwx 1 root wheel 22 Mar 9 19:10 libnss_compat.so.1@ -> libnss_compat-2.0.7.so
758 -rw-r--r-- 1 root wheel 18096 Feb 21 14:37 libnss_db-2.0.7.so
160 lrwxrwxrwx 1 root wheel 18 Mar 9 19:10 libnss_db.so.1@ -> libnss_db-2.0.7.so
759 -rw-r--r-- 1 root wheel 9976 Feb 21 14:37 libnss_dns-2.0.7.so
161 lrwxrwxrwx 1 root wheel 19 Mar 9 19:10 libnss_dns.so.1@ -> libnss_dns-2.0.7.so
760 -rw-r--r-- 1 root wheel 30204 Feb 21 14:37 libnss_files-2.0.7.so
162 lrwxrwxrwx 1 root wheel 21 Mar 9 19:10 libnss_files.so.1@ -> libnss_files-2.0.7.so
761 -rw-r--r-- 1 root wheel 32092 Feb 21 14:37 libnss_nis-2.0.7.so
163 lrwxrwxrwx 1 root wheel 19 Mar 9 19:10 libnss_nis.so.1@ -> libnss_nis-2.0.7.so
830 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libpam.so.0@ -> libpam.so.0.66
766 -rw-r--r-- 1 root wheel 96472 Feb 25 04:28 libpam.so.0.66
826 lrwxrwxrwx 1 root wheel 19 Mar 9 19:10 libpam_misc.so.0@ -> libpam_misc.so.0.66
814 -rw-r--r-- 1 root wheel 5516 Feb 25 04:28 libpam_misc.so.0.66
748 -rw-r--r-- 1 root wheel 31708 Feb 10 12:38 libproc.so.1.9.0
764 -rw-r--r-- 1 root wheel 49524 Feb 21 14:37 libpthread-0.7.so
164 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libpthread.so.0@ -> libpthread-0.7.so
743 lrwxrwxrwx 1 root wheel 18 Mar 9 19:10 libreadline.so.2@ -> libreadline.so.2.1
742 -rw-r--r-- 1 root wheel 176320 Feb 17 17:56 libreadline.so.2.1
762 -rw-r--r-- 1 root wheel 45104 Feb 21 14:37 libresolv-2.0.7.so
165 lrwxrwxrwx 1 root wheel 18 Mar 9 19:10 libresolv.so.2@ -> libresolv-2.0.7.so
745 lrwxrwxrwx 1 root wheel 17 Mar 9 19:10 libslang.so.1@ -> libslang.so.1.2.2
744 -rw-r--r-- 1 root wheel 226916 Oct 16 16:58 libslang.so.1.2.2
727 lrwxrwxrwx 1 root wheel 12 Mar 9 19:10 libss.so.2@ -> libss.so.2.0
726 -rw-r--r-- 1 root wheel 13972 Feb 11 08:13 libss.so.2.0
131 lrwxrwxrwx 1 root wheel 19 Mar 9 19:09 libtermcap.so.2@ -> libtermcap.so.2.0.8
137 -rwxr-xr-x 1 root wheel 11925 Oct 26 1996 libtermcap.so.2.0.8*
763 -rw-r--r-- 1 root wheel 6692 Feb 21 14:37 libutil-2.0.7.so
140 lrwxrwxrwx 1 root wheel 16 Mar 9 19:10 libutil.so.1@ -> libutil-2.0.7.so
737 lrwxrwxrwx 1 root wheel 14 Mar 9 19:10 libuuid.so.1@ -> libuuid.so.1.2
833 -rw-r--r-- 1 root wheel 5700 Feb 11 08:13 libuuid.so.1.2
484567 drwxr-xr-x 2 root wheel 1024 Mar 8 14:24 security/
- [管理番号 1247] Q.Linux(x86) 版の MATLAB を FreeBSD で使えますか?...
[管理番号 1490] (最終更新 1999/12/23 18:02:13)
Q. Mathematica 4.0 をインストールしようとしたところ、付属の
インストーラでは、次のように表示されて止ってしまいます。
> Enter 'd' for default installation, 'c' for custom, 'h' for help [c]:
> ELF binary type not known. Use "brandelf" to brand it.
> Abort trap
> MathInstaller cannot determine what kind of computer
> system it is running on.
A. インストーラのメッセージにあるように、インストーラを含め関連する
バイナリファイルを
% brandelf -t Linux ファイル名
としてやれば動きます。
たとえば CD-ROM を全部 MO にコピーした後、MO のマウントポイントで
% find . -print -type f | grep /Binaries/Linux | xargs brandelf -t Linux
とすれば、その MO を使って普通にインストールできます。
[管理番号 1620] (最終更新 2001/08/12 05:25:06)
Q. WindowsNT/2000 上の VMware で FreeBSD を使うと、起動時に IPv6 アドレス
のエラーが起きます。
lnc0: starting DAD for fe00:0001::0250:56ff:fe00:1a83
lnc0: DAD detected duplicate IPv6 address fe00:0001::0250:56ff:fe00:1a83: 1NS, 0NA
lnc0: DAD complete for fe00:0001::0250:56ff:fe00:1a83 - duplicate found
lnc0: manual intervention required
A. この問題は、VMware の ethernet chip エミュレーションが ethernet multicast
について正しくない為起きています。
現在は lnc driver に修正を加えて回避しています (2000/12/11)。
<URL:http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/lnc/if_lnc.c.diff?r1=1.80&r2=1.81>
[管理番号 1694] (最終更新 2000/11/08 01:56:01)
Q. Linux版 Netscape Navigator/Communicator 4.x で、フォーム内の日本語が
正しく表示されないのですが、なんとかなりませんか?
A. これは Netscape 4.x にスタティックにリンクされている Motif ライブラリ
のバグに由来します。linux-lesstif-ns という Motif clone をインストール
すればこの問題を回避できます。なお FreeBSD 版でも同様の問題が生じますが、
それについては [管理番号 472] を参照して下さい。
[管理番号 1962] (最終更新 2001/10/22 01:18:34)
Q. VMware を使って Windows2000 Professional をインストールしようとして
いますが、
*** STOP: 0x0000007B (0xFE4E8690,0xC0000014,0x00000000,0x00000000)
INACCESSIBLE_BOOT_DEVICE
というメッセージが出てインストールできません。
A. Setup Disk を使ってフロッピーから起動していませんか?
VMware が CD-ROM ドライブを認識していても、Setup Disk から起動された
インストーラは CD-ROM ドライブを認識しません。Setup Disk は使わず、
最初から CD-ROM でブートしましょう。
確認環境:
FreeBSD 4.2-RELEASE
vmware2-2.0.3.799 (ports)
rtc-2000.09.22
linux_base-6.1
注意:
エラーメッセージは多少異なりますが、Windows95 や NT4.0 でも同様の
トラブルが発生します。
補足:
1) 確認してませんが、恐らく Windows98/Me でも同じと思われます。
2) FreeBSD 固有の問題なのか、Linux でも同様なのかは不明です。