FreeBSD ハンドブック : Linux エミュレーション : Linux エミュレータのインストール : 2.1-STABLE への Linux エミュレーションのインストール
Previous: Linux エミュレータのインストール
Next: 2.2-RELEASE への Linux エミュレーションのインストール

22.1.1. 2.1-STABLE への Linux エミュレーションのインストール

2.1-STABLE の GENERIC カーネルは, Linux との互換性を保つように構築 されていません. カーネルの再構築が必要です. 再構築をおこなうには, 2つの方 法があります. 1つは, エミュレータをカーネル自体にスタティックリンクす る方法. もう1つは, 動的に Linux ローダブルカーネルモジュール(LKM)をロー ドするようにする方法です.

エミュレータを有効にするには, 以下をコンフィグレーションファイル (/sys/i386/conf/LINT など) に追加します.

options COMPAT_LINUX
Linux DOOM などのアプリケーションを実行したい場合は, 共有メモリも有効 にしておかなければなりません. 以下を追加します.
options SYSVSHM
Linux のシステムコールを使用するには, 4.3BSD のシステムコールとの互換 性が保たれていることが必要です. 以下の行が含まれていることを確認してく ださい.
options "COMPAT_43"

LKM を使用せずエミュレータをカーネルにスタティックにリンクしたい場合は, 以下の行を追加します.

options  LINUX
FreeBSDカーネルのコンフィグレーションの節の記述に したがって config と, 新しいカーネルのインストールをおこなってください.

LKM を使用する場合は, ローダブルモジュールをインストールしなければなり ません. カーネルとローダブルモジュールのバージョンが異なると, カーネル がクラッシュする場合がありますので, 安全を期すためには, カーネルをイン ストールするごとに, LKM も再インストールしてください.

% cd /usr/src/lkm/linux
% make all install
カーネルと LKM のインストールが終了したら, root で `linux' コマンドを 実行することで LKM をロードできます.
% linux
Linux emulator installed
Module loaded as ID 0
%
LKM がロードされたかどうかを確認するには, `modstat' を実行します.
% modstat
Type     Id Off Loadaddr Size Info     Rev Module Name
EXEC      0   3 f0baf000 0018 f0bb4000   1 linux_emulator
%
システムブート時に, LKM をロードするようにするには, 2つの方法がありま す. FreeBSD 2.2.1-RELEASE または 2.1-STABLE では, /etc/sysconfig を,
linux=YES
のように, NO を YES に変更してください. FreeBSD 2.1-RELEASE およびそれ以 前のバージョンでは, そのような行はありませんので, /etc/rc.local に以下 の行を追加する必要があります.
linux


FreeBSD ハンドブック : Linux エミュレーション : Linux エミュレータのインストール : 2.1-STABLE への Linux エミュレーションのインストール
Previous: Linux エミュレータのインストール
Next: 2.2-RELEASE への Linux エミュレーションのインストール