Index: head/ja_JP.eucJP/books/handbook/boot/chapter.xml
===================================================================
--- head/ja_JP.eucJP/books/handbook/boot/chapter.xml (revision 48545)
+++ head/ja_JP.eucJP/books/handbook/boot/chapter.xml (revision 48546)
@@ -1,956 +1,956 @@
&os; の起動のプロセス
この章では
起動
ブートストラップ (bootstrap)
計算機を起動しオペレーティングシステムをロードするプロセスは、
ブートストラッププロセス
もしくは ブート
と呼ばれます。
&os; の起動プロセスを使えば、
システムをスタートするときに起きることをかなり柔軟にカスタマイズできます。
同じ計算機にインストールされた別のオペレーティングシステムを選択することもできますし、
同じオペレーティングシステムの異なるバージョンを選択することも、
インストールされた別のカーネルを選択することさえできます。
この章では、指定できる設定オプションついて詳しく説明します。
&os; カーネルがスタートし、デバイスを検出し、
&man.init.8; を起動するまでに起きることすべてを含む
&os; の起動プロセスのカスタマイズ方法について説明します。
これは、起動メッセージのテキストの色が、
明るい白から灰色に変わるまでに起きています。
この章を読むと、以下のことが分かります。
&os;
のブートストラップシステムの構成およびそれらが互いにどう関係しているのか
起動プロセスを制御するために &os;
のブートストラップの各要素に付加できるオプション
ブートスプラッシュスクリーンの設定方法
device hints の基本的な記述方法
シングルユーザもしくはマルチユーザモードでの起動方法、
および &os; システムのシャットダウンの方法
この章では Intel x86 および amd64 システム上で動作する &os;
の起動プロセスだけを扱います。
&os; の起動プロセス
計算機の電源を入れ、オペレーティングシステムをスタートさせるのには、
おもしろいジレンマがあります。定義により、
計算機は、オペレーティングシステムが起動するまでは、
ディスクからプログラムを動かすことも含めて、
何をどうすればよいかまったく知りません。
計算機はオペレーティングシステムなしにディスクからプログラムを実行することができず、
オペレーティングシステムのプログラムがディスク上にあるのなら、
どうやってオペレーティングシステムを起動するのでしょうか?
この問題はほらふき男爵の冒険
という本の中に書かれている問題ととてもよく似ています。
登場人物がマンホールの下に半分落っこちて、
靴紐 (ブートストラップ) をつかんで自分を引っぱり、持ち上げるのです。
計算機の黎明期には、ブートストラップ
という用語でオペレーティングシステムをロードする機構のことを指していました。
いまはこれを縮めて ブート (起動)
と言います。
BIOS
基本入出力システム (Basic Input/Output
System)BIOS
x86 ハードウェアでは、基本入出力システム
(Basic Input/Output System: BIOS)
にオペレーティングシステムをロードする責任があります。
BIOS はハードディスク上のマスターブートレコード
(Master Boot Record: MBR) を探します。
MBR
はハードディスク上の特定の場所になければなりません。
BIOS には MBR
をロードし起動するのに十分な知識があり、
オペレーティングシステムをロードするために必要な作業の残りは、
場合によっては BIOS の助けを得た上で
MBR が実行できることを仮定しています。
&os; は古い標準の MBR、
または新しい GUID Partition Table (GPT)
から起動できます。
GPT パーティションは、Unified
Extensible Firmware Interface (UEFI)
に対応したコンピュータで良く用いられます。
しかしながら、&os; はレガシーな BIOS
にのみに対応したコンピュータからも、&man.gptboot.8; により、
GPT パーティションから起動できます。
UEFI からの直接の起動への対応は進行中です。
マスターブートレコード (Master Boot Record:
MBR)
ブートマネージャ
(Boot Manager)
ブートローダ
(Boot Loader)
MBR 内部のコードは、
一般的にブートマネージャと呼ばれます。
とりわけユーザとの対話がある場合にそう呼ばれます。
通常ブートマネージャのもっと多くのコードが、
ディスクの最初のトラック、またはファイルシステム上におかれます。
ブートマネージャの例としては、Boot Easy
とも呼ばれる &os; 標準のブートマネージャの
boot0、
多くの &linux; ディストリビューションが採用している
Grub 等があります。
ディスク上にインストールされているオペレーティングシステムが
1 つの時は、MBR はディスク上の最初の起動可能な
(アクティブな) スライスを探し、
そのスライスにあるコードを起動してオペレーティングシステムの残りをロードします。
ディスク上に複数のオペレーティングシステムが存在しているのなら、
複数のオペレーティングシステムの一覧を表示できて、
起動するオペレーティングシステムを選択できるような、
別のブートマネージャをインストールすることもできます。
&os; のブートストラップシステムの残りは 3 段階に分かれます。
第 1 ステージは、
計算機を特定の状態にするために必要なことだけを知っていて、
第 2 ステージを起動します。
第 2 ステージでは、第 3 ステージを起動する前に、
もう少しできることがあります。
第 3 ステージでオペレーティングシステムのロード作業を完了します。
起動作業が 3 段階に分かれているのは、
MBR がステージ 1 とステージ 2
で実行できるプログラムのサイズに制限を課しているからです。
これらの作業をつなぎ合わせることによって、
&os; はより柔軟なローダ (loader) を提供しているのです。
カーネル (kernel)
&man.init.8;
その後カーネルが起動し、デバイスの検出と初期化を開始します。
そしてカーネルの起動が終わると、制御はユーザープロセスの
&man.init.8; へ移されます。&man.init.8;
はディスクが利用可能であることを確認し、
ファイルシステムのマウント、
ネットワークで利用するネットワークカードのセットアップ、
そしてブート時に起動されるように設定されたプロセスの起動、
といったユーザーレベルでのリソース (資源) 設定を行ないます。
この章では、これらのステージについてより詳細に、また、&os;
ブートプロセスにおける対話的な設定方法について説明します。
ブートマネージャ
ブートマネージャ
マスターブートレコード
(MBR)
MBR
のブートマネージャのコードは起動プロセスの第
0 ステージと呼ばれることがあります。
デフォルトでは、&os; は boot0
を使います。
&os; のインストーラがインストールする MBR は、
/boot/boot0 を基にしています。
boot0 のサイズと機能は、
スライステーブルおよび MBR
末尾の識別子 0x55AA のため、
446 バイトの大きさに制限されます。
もし、boot0
と複数のオペレーティングシステムをインストールした場合、
起動時に以下のようなメッセージが表示されます。
boot0 のスクリーンショット
F1 Win
F2 FreeBSD
Default: F2
他のオペレーティングシステムは、
&os; の後にインストールを行うと、既存の MBR
を上書きしてしまいます。
もしそうなってしまったら、
もしくは既存の MBR を &os; の
MBR で置き換えるには、
次のコマンドを使ってください。
&prompt.root; fdisk -B -b /boot/boot0 device
device は起動するデバイス名で、
たとえば 1 番目の IDE ディスクは
ad0、2 番目の IDE
コントローラに接続されている 1 番目の IDE
ディスクは ad2、
1 番目の SCSI ディスクは
da0
などとなります。
MBR の設定をカスタマイズしたい場合は、
&man.boot0cfg.8; を参照してください。
起動ステージ 1 と起動ステージ 2
概念上、第 1 ステージと第 2
ステージはハードディスクの同じ領域上の同一のプログラムの部分部分です。
スペースの制約のため 2 つに分割されていますが、
いつも一緒にインストールされます。
&os; のインストーラまたは bsdlabel は、
両者を 1 つにまとめた
/boot/boot をコピーします。
これらの 2 つのステージは、ファイルシステムの外部、
起動スライスの最初のトラックに置かれ、
先頭が最初のセクタにきます。
boot0 またはその他のブートマネージャは、
起動プロセスを続けるために必要なプログラムがそこにあると想定しています。
最初のステージの boot1 は、
512 バイトの大きさでなければならないという制限があるので、
非常に単純なプログラムです。
このプログラムは boot2
を検索して実行するため、そのスライスの情報を保持する &os;
の BSD ラベル
に関する最低限の情報だけを持っています。
次のステージの boot2 はもう少し高機能です。
これは &os; のファイルシステム上でファイルを見つける機能を持ちます。
実行するカーネルやローダを指定するための簡単なインタフェースを提供します。
boot2 により起動される
loader はさらに高機能で、
起動設定が行なえる手段を提供します。
ステージ 2 で起動プロセス中断した時には、
次のようながインタラクティブなが画面が表示されます。
boot2 のスクリーンショット
>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:
インストールされた boot1 と
boot2 を変更するには、
bsdlabel を使ってください。
以下の例では、diskslice
は起動するディスクとスライスで、たとえば最初の
IDE ディスクの 1 番目のスライスは
ad0s1 となります。
&prompt.root; bsdlabel -B diskslice
ad0 のようにディスク名だけを指定すると、
bsdlabel は、スライスを持たない
危険な専用モード
を作成してしまいます。
これはおそらく、あなたが望んでいることではないでしょうから、
Return キーを押す前に、
diskslice
の部分を二重にチェックしてください。
起動ステージ 3
ブートローダ (boot-loader)
loader
は三段階の起動プロセスの最終段階です。
これは通常、ファイルシステム上の
/boot/loader
として存在しています。
loader は、
よりさまざまなコマンド群をサポートした強力なインタプリタによって提供される組み込みコマンド群を利用することで、
インタラクティブな設定手段となるように設計されています。
loader
は初期化の際にコンソールとディスクの検出を行ない、
どのディスクから起動しているかを調べます。
そして必要な変数を設定してからインタプリタを起動し、
スクリプトからコマンドを送ったり手でコマンドを入力したりできます。
ローダ
ローダの設定
loader
は次に /boot/loader.rc
を読み込み、通常、変数の標準値を定義した
/boot/defaults/loader.conf
と、そのコンピュータにローカルに変数を定義した
/boot/loader.conf を読み込みます。
loader.rc はそれらの変数にもとづき、
選択されたモジュールとカーネルをロードします。
loader は最後に、
標準設定で 10 秒のキー入力待ち時間を用意し、
入力がなければカーネルを起動します。
入力があった場合、コマンド群が使えるプロンプトが表示され、
ユーザは変数を調整したり、すべてのモジュールをアンロードしたり、
モジュールをロードしたりすることができます。
その後、最終的な起動や再起動へ移行します。
では、
もっともよく使われる loader
のコマンドをまとめています。
利用可能なコマンドをすべて知りたい場合には、
&man.loader.8; を参照してください。
ローダの組み込みコマンド
変数
説明
autoboot
seconds
seconds
で与えられた時間内に入力がなければ、
カーネルの起動へと進みます。
カウントダウンを表示します。標準設定では 10 秒間です。
boot
-options
kernelname
すぐにカーネルの起動へ進みます。
オプション、カーネル名が指定されている場合は、
それらが使われます。
unload を実行後、
カーネル名をコマンドラインから指定することができます。
unload を実行しないと、
一度読み込まれたカーネルが使われます。
kernelname
でパスが指定されていない時には、
/boot/kernel および
/boot/modules から調べられます。
boot-conf
すべてのモジュールの設定を、
起動時と同じように指定された変数
(最も多いのは kernel)
にもとづいて自動的に行ないます。
このコマンドは、変数を変更する前に、
最初に unload
を行なった場合にのみ有効に働きます。
help
topic
/boot/loader.help
を読み込み、ヘルプメッセージを表示します。
topic に index が指定された場合、
利用可能な topic の一覧を表示します。
include filename
…
指定されたファイルを読み込み、行単位で解釈します。
エラーが発生した場合、
include の実行は直ちに停止します。
load -t
type
filename
指定されたファイル名のカーネル、
カーネルモジュール、あるいは
type に指定された種類のファイルをロードします。
filename
以降に指定された引数はファイルへと渡されます。
filename
でパスが指定されていない時には、
/boot/kernel
および /boot/modules
から調べられます。
ls -l
path
指定された path
にあるファイルを表示します。
path
が指定されていなければ、ルートディレクトリを表示します。
が指定されていればファイルサイズも表示されます。
lsdev -v
モジュールがロード可能なすべてのデバイスを表示します。
もし が指定されていれば、
より詳細な出力がされます。
lsmod
-v
ロード済みのモジュールを表示します。
が指定されていれば、
より詳細な内容が出力されます。
more filename
LINES
行を表示するごとに停止しながら指定されたファイルを表示します。
reboot
すぐにシステムを再起動します。
set variable, set
variable=value
ローダの環境変数を設定します。
unload
すべてのロード済みモジュールを削除します。
次にあげるのは、ローダの実践的な使用例です。
普段使っているカーネルをシングルユーザモードシングルユーザモードで起動します。
boot -s
普段使っているカーネルとモジュールをアンロードし、
古いもしくは別のカーネルをロードするには、
以下のように実行してください。
unload
load kernel.old
kernel.GENERIC とすると、
インストール時のデフォルトカーネルを指定できます。
また、システムをアップグレードしたり、
もしくはカスタムカーネルを設定した場合に、
直前にインストールされていたカーネルは、
kernel.old
で指定できます。
普段のカーネルで使っているモジュールを指定したカーネルでロードする場合は、
次のようにします。
unload
set kernel="kernel.old"
boot-conf
カーネルの自動設定スクリプトをロードします。
load -t userconfig_script /boot/kernel.conf
カーネル (kernel)
起動時の応答
最終ステージ
&man.init.8;
カーネルがデフォルトの loader
もしくは loader を迂回して
boot2 によって読み込まれると、
起動フラグが調べられ、それに応じて動作が調整されます。 には、
良く使われる起動フラグがまとめられています。
他の起動フラグの詳細については、
&man.boot.8; を参照してください。
カーネル (kernel)
起動フラグ
起動時のカーネルオプション
オプション
説明
カーネル初期化中に、
ルートファイルシステムとしてマウントするデバイスを尋ねます。
CDROM
からルートファイルシステムを起動します。
シングルユーザモードで起動します。
カーネル起動時に、より詳細な情報を表示します。
カーネルの起動が完了すると、&man.init.8;
というユーザプロセスに制御が移されます。
これは /sbin/init、
もしくは loader の
init_path 変数で指定される場所にあります。
これは起動プロセスの最終ステージです。
起動シーケンスでは、
システム上で利用できるファイルシステムの一慣性を確認します。
もし UFS ファイルシステムにに問題があって
fsck が不一致を修復できなければ、
管理者が問題を直接解決できるように、init
はシステムをシングルユーザモードへと移行させます。
問題がなければ、システムはマルチユーザモードに移行します。
シングルユーザモード
シングルユーザモード
コンソール (console)
このモードには、ユーザが起動時に
を指定した場合、あるいは loader で
boot_single 変数を設定することによって移行します。
マルチユーザモードから shutdown now
を呼び出すことでもこのモードに移行できます。
シングルユーザモードは、以下のメッセージで開始します。
Enter full pathname of shell or RETURN for /bin/sh:
ユーザが Enter を入力すると、
システムは Bourne シェルを起動します。
別のシェルを使うには、シェルのフルパスを入力してください。
シングルユーザモードは、
通常ファイルシステムの一貫性に問題があって起動できないシステムを修復したり、
起動設定ファイルの間違いを修正するために使われます。
また、root
パスワードがわからなくなった場合に、
リセットするために使うことも出来ます。
シングルユーザモードのプロンプトは、
ローカルファイルシステムおよび設定ファイルへのアクセスを与えてくれますが、
ネットワーク接続は出来ません。
シングルユーザモードは、システムの修復には有用ですが、
システムが物理的に安全な場所になければ、
セキュリティのリスクがもたらされます。
デフォルトでは、システムに物理的にアクセス可能なユーザは、
シングルユーザモードで起動後はシステムをすべてコントロールできます。
/etc/ttys
でシステムの console
が insecure に設定されている場合、
システムはシングルユーザモードに移行する前に
root
のパスワードを入力するように求めます。
root
パスワードがわからなくなった場合のリセット機能が無効になっている間は、
セキュリティ対策が必要となります。
/etc/ttys の
insecure コンソール
# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off insecure
insecure コンソールとは、
コンソールが物理的に安全でない (insecure) と考えられるため、
root
のパスワードを知る人だけがシングルユーザモードを使えるという意味です。
マルチユーザモード
マルチユーザモード
init
がファイルシステムが正常であると判断するか、
ユーザがシングルユーザモードでのコマンドを終了し、
exit を入力してシングルユーザモードを終了すると、
システムはマルチユーザモードへ移行し、
システムのリソースの設定を開始します。
rc ファイル群
リソース設定システムはデフォルト設定を
/etc/defaults/rc.conf から、
また、システム独自の細かな設定を
/etc/rc.conf から読み込みます。
そして /etc/fstab
に記述されるシステムファイルシステムをマウントします。
その後、ネットワークサービス、さまざまなシステムデーモン、
そして最後に、ローカルにインストールされた package
の起動スクリプトを実行します。
リソース設定システムについてもっと知りたい場合には、
&man.rc.8; を参照してください。また、/etc/rc.d
にあるスクリプトを実行してみてください。
-
+ -->
起動時のスプラッシュスクリーンの設定
-
-
-
- Joseph J.
- Barbish
-
- 寄稿:
-
-
-
+
+
+
+ Joseph J.
+ Barbish
+
+ 寄稿:
+
+
+
通常、&os; システムが起動すると、
コンソールにはシステムの起動の進捗状況を示すメッセージ群が表示されます。
スプラッシュスクリーンは、
起動時の検出メッセージやサービスのスタートアップメッセージを隠すような、
これまでとは異なる起動画面を表示します。
スプラッシュスクリーンが有効な場合でも、起動時には、
起動オプションメニュー、タイムウェイトカウントダウンプロンプトなど、
いくつかの起動ローダメッセージは表示されます。
スプラッシュスクリーンは、起動プロセスの間、
キーボードから何かのキーを押すことで、
いつでもやめることができます。
&os; には、2 つの基本環境があります。
ひとつは、レガシーな仮想コンソールのコマンドライン環境です。
システムの起動が終わったら、
コンソールにログインプロンプトが表示されます。
2 つ目の環境は、設定可能なグラフィカル環境です。
では、
グラフィカルディスプレイマネージャやグラフィカルログインマネージャのインストールおよび設定方法について説明しています。
システムの起動後は、スプラッシュスクリーンは、
スクリーンセーバのデフォルトとなります。
一定期間使われないと、スプラッシュスクリーンが表示され、
イメージの輝度が、明るくから暗くなるように変化し、
そのサイクルが繰り返されます。
スプラッシュスクリーンセーバの設定は、
/etc/rc.conf に saver=
行を追加することで変更できます。
いくつかのビルトインのスクリーンセーバが用意されており、
&man.splash.4; で説明されています。
saver= オプションは、
仮想コンソールにのみ適用され、
グラフィカルディスプレイマネージャには影響しません。
https://en.wikipedia.org/wiki/TheDraw
のギャラリから、
サンプルのスプラッシュスクリーンファイルをダウンロードできます。
sysutils/bsd-splash-changer package または port
をインストールすると、
起動時にスプラッシュイメージのコレクションからランダムに一枚が表示されます。
スプラッシュスクリーン機能は、
256 色のビットマップ (.bmp),
ZSoft PCX (.pcx) または
TheDraw (.bin) 形式に対応しています。
.bmp,
.pcx または .bin
イメージは、ルートパーティション、たとえば
/boot に置く必要があります。
標準の VGA アダプタで動かすには、
スプラッシュイメージファイルは 320x200
ピクセル以下の解像度である必要があります。
デフォルトのブートディスプレイの解像度
256 色、320x200 ピクセル以下の場合には、以下を含むように
/boot/loader.conf を編集してください。
splash.bmp の部分は、
用いるビットマップフィアルの名前に置き換えてください。
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"
ビットマップフィアルの代わりに、PCX
ファイルを使う場合は、以下のようにしてください。
splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"
TheDraw
形式のアスキーアートを使うには、以下を追加してください。
splash_txt="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bin"
(最大解像度 1024x768 ピクセルまでの)
もう少し大きなイメージを使いたい場合には、システムの起動時に
VESA モジュールをロードしてください。
カスタムカーネルを使っている場合には、VESA
カーネルコンフィグレーションオプションを追加してください。
スプラッシュスクリーンのために VESA
モジュールを読み込むには、/boot/loader.conf
のこれまでに説明した 3 行の前に以下の行を追加してください。
vesa_load="YES"
他に興味を持ちそうな loader.conf
のオプションを以下で紹介します。
beastie_disable="YES"
カウントダウンのプロンプトを除き、
ブートオプションメニューを表示しません。
ブートオプションメニューの画面は利用できませんが、
タイムウェイトカウントダウンプロンプトが表示されている時に、
オプションを選択することで対応するブートオプションを設定できます。
loader_logo="beastie"
このオプションは、カラーの beastie
ロゴと共にブートオプションメニューの右側に表示されている単語
(デフォルトでは &os;
) を置き換えます。
より詳細な情報については、&man.splash.4;,
&man.loader.conf.5; および &man.vga.4; をご覧ください。
Device Hints
Tom
Rhodes
寄稿:
device.hints
システムの最初のスタートアップ時に、&man.loader.8; は
&man.device.hints.5; を読み込みます。
このファイルにはカーネル起動の環境変数が格納されており、
これらの環境変数は device hints
と呼ばれることがあります。デバイスドライバは、
デバイスを設定するために device hints
を使用します。
で説明されているように
device hints はステージ 3 ブートローダプロンプトでも設定できます。
変数は set を用いて追加したり、
unset を用いて削除できます。
show を用いて一覧を見ることもできます。
/boot/device.hints に設定されている変数は、
上書きすることもできます。
ブートローダで設定した device hints の効果は一時的なものなので、
次回起動するときには無効になります。
システムが起動すると、&man.kenv.1;
コマンドですべてのカーネル環境変数をダンプすることができます。
/boot/device.hints
は 1 行につき一つの変数を設定でき、行頭の #
はその行がコメントであることを示しています。
書式は次の通りです。
hint.driver.unit.keyword="value"
ステージ 3 ブートローダ で設定するときの書式は次の通りです。
set hint.driver.unit.keyword=value
ここで、driver はデバイスドライバの名前、
unit はデバイスドライバのユニット番号、
keyword はヒントキーワードです。
キーワードは以下のようなオプションです。
at:
デバイスがどのバスに接続されているか指定します。
port: 使用する I/O
ポートの開始アドレスを指定します。
irq: 使用する IRQ を指定します。
drq: 使用する
DMA チャネルを指定します。
maddr:
使用する物理メモリアドレスを指定します。
flags:
デバイスに対してさまざまなフラグを設定します。
disabled:
1
が設定されていると、そのデバイスは無効になります。
デバイスドライバはこのリスト以外の変数を設定できるかもしれませんし、
このリスト以外の変数を必要とするかもしれないので、
ドライバのマニュアルを読むことをおすすめします。
より多くの情報を知りたければ、&man.device.hints.5;,
&man.kenv.1;, &man.loader.conf.5; および &man.loader.8;
を参照してください。
シャットダウン動作
&man.shutdown.8;
&man.shutdown.8;
を用いてシステムを意図的にシャットダウンした場合、
&man.init.8; は
/etc/rc.shutdown
というスクリプトの実行を試みます。
そして、すべてのプロセスへ TERM
シグナルを送り、続いてうまく終了できなかったプロセスへ
KILL シグナルを送ります。
電源管理機能を持ったシステムで稼働している &os;
では shutdown -p now によって、
直ちに電源を落とすことができます。&os; システムを再起動するには、
shutdown -r now を実行してください。
&man.shutdown.8; を実行するには、
root
か、operator
のメンバでなければなりません。&man.halt.8; や
&man.reboot.8; を利用することもできます。
より多くの情報を得るために、それらのマニュアルページや
&man.shutdown.8; を参照してください。
- グループのメンバを変更するには、
- を参照してください。
+ グループのメンバを変更するには、
+ を参照してください。
電源管理機能には &man.acpi.4;
がモジュールとして読み込まれるか、
カスタムカーネルにコンパイルされて静的に組み込まれている必要があります。
Index: head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml
===================================================================
--- head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml (revision 48545)
+++ head/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml (revision 48546)
@@ -1,2390 +1,2390 @@
&os; のアップデートとアップグレード
Jim
Mock
再構成、再編成および改訂:
Jordan
Hubbard
原作:
Poul-Henning
Kamp
John
Polstra
Nik
Clayton
この章では
あるリリースから次のリリースまでの期間にも、
&os; の開発は休みなく続けられています。
最新の開発ツリーと同期することを好む人もいますし、
公式のリリース版を好んで使う方もいます。
しかしながら、公式のリリースといえども、
セキュリティや他の重要な修正のため、時にはアップデートを行う必要があります。
使用しているバージョンに関わらず、&os; は、
手元のシステムを最新の開発ツリーと同期するために必要なツールをすべて用意しています。
そして、これらのツールは、&os; のバージョンをアップグレードするために使えます。
この章では、開発ブランチを追いかける方法、および、&os;
システムをアップデートする基本的なツールについて解説しています。
この章を読んで分かるのは:
freebsd-update,
Subversion もしくは
CTM
を使った &os; システムの更新方法
インストールされているシステムと、変更が行われていない状態との比較方法。
Subversion
またはドキュメント用の ports を使って、
インストールされているドキュメントを最新版にアップデートする方法。
2 つの開発ブランチ、&os.stable; と &os.current; の違い
ベースシステム全体を再構築しインストールする方法
この章を読む前に、以下の準備をしましょう。
ネットワーク接続の適切な設定
()
サードパーティ製のソフトウェアのインストール方法の習得
()
この章を通じて、
&os; のソースコードをダウンロードしたりアップデートするのに
svn が用いられます。
このコマンドを使うためには、devel/subversion port または package
をインストールしておく必要があります。
&os; Update
Tom
Rhodes
寄稿:
Colin
Percival
ベースとなったノートの提供:
Updating and Upgrading
freebsd-update
updating-upgrading
システム管理における重要な側面として、
すみやかにセキュリティパッチを適用し、
オペレーティングシステムを新しいリリースにアップグレードすることがあげられます。
&os; には、これらの処理を行うために freebsd-update
と呼ばれるユーティリティが用意されています。
このユーティリティを用いると、&os; のセキュリティおよび
eratta アップデートをバイナリによって行うことができます。
手動でパッチもしくは新しいカーネルをコンパイルし、
インストールする必要はありません。
バイナリアップデートは、
セキュリティチームがサポートしているすべてのアーキテクチャとリリースで利用できます。
http://www.FreeBSD.org/ja/security/ には、
サポートが行われているリリースや保守終了予定日の一覧があります。
このユーティリティは、マイナーリリースであったり、
他のリリースブランチへのアップグレードにも対応しています。
新しいリリースにアップデートする前に、
アップデートしようとしているリリースのアナウンスに目を通し、
重要な情報がないかどうかを確認してください。
リリースのアナウンスは http://www.FreeBSD.org/ja/releases/
で確認できます。
もし crontab の中に
&man.freebsd-update.8; の機能が含まれていたら、
オペレーティングシステムのアップグレード作業を終えるまでは無効にしてください。
この節では、freebsd-update
で使われる設定ファイルの説明、
セキュリティパッチの適応方法のデモンストレーション、
オペレーティングシステムをアップグレードする際に考慮すべきことについて説明します。
設定ファイル
freebsd-update のデフォルトの設定ファイルは、
そのままでも用いることができます。
/etc/freebsd-update.conf
の設定をデフォルトからきめ細かく調整して、
アップデートプロセスを制御するユーザもいます。
このファイルのコメントにおいて利用可能なオプションが説明されていますが、
以下の項目については補足が必要でしょう。
# Components of the base system which should be kept updated.
Components world kernel
このパラメータは、&os; のどの部分を最新に維持するかを設定します。
デフォルトでは、ベースシステム全体、
そしてカーネルをアップデートします。
src/base や src/sys
のように、個々の項目を指定することもできます。
この部分についてはデフォルトのままにしておき、
アップデートする項目をユーザがリストに加える形にするのがベストでしょう。
ソースコードとバイナリが同期していないと、
長い年月の間に悲惨な結果がもたらされる可能性があります。
# Paths which start with anything matching an entry in an IgnorePaths
# statement will be ignored.
IgnorePaths /boot/kernel/linker.hints
/bin や /sbin
等の特定のディレクトリをアップデートで変更しないように、
これらのパスを追加してください。
このオプションは、ローカルの変更点を freebsd-update
が上書きすることを防ぐ目的にも利用できます。
# Paths which start with anything matching an entry in an UpdateIfUnmodified
# statement will only be updated if the contents of the file have not been
# modified by the user (unless changes are merged; see below).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile
このオプションは、指定したディレクトリにある設定ファイルを、
ローカルで変更されていない場合のみアップデートします。
ユーザがこれらのファイルを変更していると、
これらのファイルの自動アップデートは妨げられます。
他に、KeepModifiedMetadata
という別のオプションが存在します。
このオプションは、freebsd-update
がマージ中に変更点を保存するようにします。
# When upgrading to a new &os; release, files which match MergeChanges
# will have any local changes merged into the version from the new release.
MergeChanges /etc/ /var/named/etc/ /boot/device.hints
freebsd-update
がマージすべきファイルが存在するディレクトリの一覧です。
ファイルのマージのプロセスは、
&man.mergemaster.8; と同様 &man.diff.1; パッチの連続ですが、
選択肢は少なく、マージを承認するか、エディタを起動するか、
freebsd-update
を中断するかどうかを選んでください。
もし、心配な点があれば、
/etc
をバックアップしてからマージを承認してください。
mergemaster の詳細な情報については、
で確認してください。
# Directory in which to store downloaded updates and temporary
# files used by &os; Update.
# WorkDir /var/db/freebsd-update
ここではすべてのパッチや一次ファイルを置くディレクトリを指定しています。
バージョンをアップグレードするのであれば、
この場所には少なくともギガバイトの空き容量が必要です。
# When upgrading between releases, should the list of Components be
# read strictly (StrictComponents yes) or merely as a list of components
# which *might* be installed of which &os; Update should figure out
# which actually are installed and upgrade those (StrictComponents no)?
# StrictComponents no
このオプションを yes に設定すると、
freebsd-update は
Components のリストが完全に正しいと判断し、
このリスト以外の変更点については取り扱いません。
freebsd-update は、効率的に
Components
リストに属するファイルをアップデートします。
セキュリティパッチの適用
&os; のセキュリティパッチを適用する過程は簡単になりました。
管理者は freebsd-update を使うことで、
システムを完全にパッチがあたった状態に保つ事ができます。
&os; セキュリティ勧告の詳細については、
&os; セキュリティ勧告
の節で説明されています。
以下のコマンドを実行すると、&os;
のセキュリティパッチがダウンロードされ、インストールされます。
最初のコマンドは、未対応のパッチがあるかどうかを調べます。
もし未対応のパッチがある場合には、
パッチが当てられた際に変更されるファイルのリストが作成されます。
2 番目のコマンドはパッチを適用します。
&prompt.root; freebsd-update fetch
&prompt.root; freebsd-update install
アップデートによってカーネルにパッチが当たった場合には、
パッチが当たったカーネルで起動するように、
システムを再起動する必要があります。
もし、実行中のバイナリにパッチが当てられた場合には、
パッチの当てられたバージョンのバイナリが使われるように、
影響のあるアプリケーションを再起動する必要があります。
毎日一度アップデートがないかどうかを自動的に確認するように設定するには、
以下のエントリを /etc/crobntab
に追加してください。
@daily root freebsd-update cron
パッチが存在すると、
自動的にダウンロードされますが、適用はされません。
root宛てにメールで、
ダウンロードされたパッチを確認し、
freebsd-update install
とともに手動でインストールする必要のあることが通知されます。
うまく行かなかった場合には、freebsd-update
を以下のように実行すると、最後の変更までロールバックできます。
&prompt.root; freebsd-update rollback
Uninstalling updates... done.
カーネルまたはカーネルモジュールがアップデートされた場合には、
完了後にもう一度システムを再起動して、
影響のあったバイナリを再起動してください。
freebsd-update
ユーティリティが自動的にアップデートするカーネルは
GENERIC のみです。
カスタムカーネルがインストールされている場合には、
freebsd-update がインストールした後、
カーネルを再構築し、もう一度インストールする必要があります。
しかしながら、GENERIC カーネルが
/boot/GENERIC に存在する場合には、
現在のシステムで実行されているカーネルでなくとも、
freebsd-update
によりアップデートされます。
GENERIC カーネルを、
常に /boot/GENERIC に置いておいてください。
さまざまな問題を解決する際や、
バージョンをアップグレードする際に助けとなります。
GENERIC カーネルを用意する方法については、
を参照してください。
/etc/freebsd-update.conf
のデフォルトの設定を変更しない限り、
freebsd-update は、
他の更新と共にカーネルソースをアップデートします。
新しいカスタムカーネルの再構築と再インストールは、
通常通り行うことができます。
freebsd-update は、
常にカーネルをアップデートするとは限りません。
freebsd-update install
によってカーネルソースが変更されなかった場合には、
カスタムカーネルを再構築する必要はありません。
しかしながら freebsd-update は、
/usr/src/sys/conf/newvers.sh
を常にアップデートします。
これは、現在のシステムのパッチレベルを
uname -r が -p
で表示する時にこのファイルが参照されます。
そのため、何も変更されていない場合でも、
カスタムカーネルを再構築することにより、
uname がシステムの正確なパッチレベルを報告するようになります。
各システムにインストールされているアップデートをすばやく把握できるようになるので、
特に複数のシステムを管理するときに助けとなります。
メジャーおよびマイナーバージョンのアップグレードを行う
&os; のマイナーバージョン間のアップグレード、
たとえば、&os; 9.0 から &os; 9.1 へのアップグレードは、
マイナーバージョン アップグレードと呼ばれます。
メジャーバージョン アップグレードは、
&os; 9.X から &os; 10.X へのアップグレードといった、
&os; のメジャーバージョンが変わるようなアップグレードのことです。
どちらのアップグレードもリリース番号のターゲットを指定する事で、
freebsd-update によって行う事ができます。
カスタムカーネルを使っているシステムでは、
アップグレードを行う前に
GENERIC カーネルが、
/boot/GENERIC
に置かれている事を確認してください。
GENERIC カーネルを用意する方法については、
を参照してください。
以下のコマンドを実行すると、&os; 9.0
のシステムを &os; 9.1 にアップグレードします。
&prompt.root; freebsd-update -r 9.1-RELEASE upgrade
コマンドを実行すると、freebsd-update
は設定ファイルと現在のシステムを評価し、
アップデートするために必要な情報を収集します。
画面には、どのコンポーネントが認識され、
どのコンポーネントが認識されていないといったリストが表示されます。
たとえば以下のように表示されます。
Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 9.0-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? y
ここで、freebsd-update
はアップグレードに必要なすべてのファイルをダウンロードします。
何をインストールし、どのように進むかといった質問をされることもあります。
カスタムカーネルを使っていると、
上記のステップで以下のような警告が表示されます。
WARNING: This system is running a "MYKERNEL" kernel, which is not a
kernel configuration distributed as part of FreeBSD 9.0-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"
この時点ではこの警告を無視してもかまいません。
アップデートされた GENERIC カーネルは、
アップグレードプロセスの途中で利用されます。
すべてのパッチがローカルシステムへダウンロードされたら、
次にパッチが適用されます。
このプロセスには時間がかかります。
この時間はコンピュータの性能とワークロードに依存します。
その後、設定ファイルがマージされます。
このプロセスでは、ユーザはファイルをマージするか、
画面上にエディタを立ち上げて手動でマージするかを尋ねられます。
プロセスが進むごとに、成功したマージのすべての結果の情報がユーザに示されます。
マージに失敗したり、無視した場合には、プロセスが中断します。
ユーザによっては /etc
のバックアップを取り、
master.passwd や group
のような重要なファイルを後で手動でマージする方もいます。
すべてのパッチは別のディレクトリでマージされており、
まだ、システムには反映されていません。
すべてのパッチが正しく適用され、
すべての設定ファイルがマージされてプロセスがスムーズに進んだら、
ユーザは以下のコマンドを用いて、
変更点をディスクに反映してください。
&prompt.root; freebsd-update install
パッチは最初にカーネルとカーネルモジュールに対して当てられます。
システムがカスタムカーネルを実行している場合には、
&man.nextboot.8; を使って次回の再起動時のカーネルを、
アップデートされた /boot/GENERIC
に設定してください。
&prompt.root; nextboot -k GENERIC
GENERIC カーネルで再起動する前に、
カーネルにシステムが適切に起動するために必要なすべてのドライバが含まれていること、
もしアップデートしているコンピュータがリモートでアクセスしているのであれば、
ネットワーク接続に必要なすべてのドライバも含まれていることを確認してください。
特に、これまで実行しているカスタムカーネルが、
カーネルモジュールとして提供されているビルドインの機能を含んでいるのであれば、
これらのモジュールを一時的に /boot/loader.conf
の機能を用いて、
GENERIC に読み込んでください。
アップグレードプロセスが終わるまでは、
重要ではないサービスを無効にするとともに、
必要のないディスクやネットワークのマウントなども避けることが推奨されています。
アップデートされたカーネルでコンピュータを再起動してください。
&prompt.root; shutdown -r now
システムがオンラインに戻ったら、以下のコマンドを使って
freebsd-update を再び実行してください。
アップデートプロセスの状態は保存されているので、
freebsd-update を実行すると、
最初からではなく、次のステップに進み、
古い共有ライブラリとオブジェクトファイルを削除します。
&prompt.root; freebsd-update install
使用しているライブラリのバージョン番号の付けられ方によって、
3 つのインストールフェーズが 2 つになる場合もあります。
アップグレードはこれで終了です。
もしメジャーアップグレードを行った場合には、
で説明されているようにすべての ports および package
を再構築してください。
&os; 9.X 以降のシステムにおけるカスタムカーネル
freebsd-update を使う前に、
GENERIC カーネルが
/boot/GENERIC
に置かれていることを確認してください。
ただ一度だけカスタムカーネルを構築したのであれば、
/boot/kernel.old
は GENERIC カーネルそのものです。
このディレクトリの名前を
/boot/kernel
へと変更してください。
もし、2 回以上カスタムカーネルを構築した後であったり、
カスタムカーネルを構築した回数がわからなければ、
現在のオペレーティングシステムのバージョンの
GENERIC カーネルを入手してください。
コンピュータへの物理的なアクセスが可能であれば、
インストールメディアから GENERIC
カーネルをインストールできます。
&prompt.root; mount /cdrom
&prompt.root; cd /cdrom/usr/freebsd-dist
&prompt.root; tar -C/ -xvf kernel.txz boot/kernel/kernel
別な方法としては、
GENERIC カーネルをソースから再構築して、
インストールしてください。
&prompt.root; cd /usr/src
&prompt.root; make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null
freebsd-update がこのカーネルを
GENERIC カーネルとして認識するために、
GENERIC コンフィグレーションファイルは、
とにかく変更してはいけません。
また、特別なオプションを指定しないで構築してください。
freebsd-update は、
/boot/GENERIC
が存在する事だけを必要とするので、
GENERIC
カーネルで再起動する必要はありません。
メジャーバージョンアップグレード後の
package のアップグレード
一般的に、マイナーバージョンアップグレードの後では、
インストールされているアプリケーションは、問題なく動作するでしょう。
メジャーバージョンが異なるとアプリケーションバイナリーインタフェース
(ABI) が異なるため、
サードパーティ製のアプリケーションの多くは動作しなくなるでしょう。
メジャーバージョンアップグレード後には、
インストールされているすべての packages, ports
をアップグレードする必要があります。
package は、pkg upgrade
を使ってアップグレードできます。
インストールされている ports をアップグレードする場合には、
ports-mgmt/portmaster
といったユーティリティを使ってください。
すべての package の強制的なアップグレードでは、
バージョン番号が上がらない package に対しても、
リポジトリから最新のバージョンで、インストールされている
package を置き換えます。
&os; のメージャーバージョンが変わるようなアップグレードでは、
ABI のバージョンも変わるため、
このようなアップグレードが必要になります。
強制的なアップグレードを行うには、以下のように実行してください。
&prompt.root; pkg-static upgrade -f
インストールされているすべてのアプリケーションを再構築するには、
以下のコマンドを実行してください。
&prompt.root; portmaster -af
このコマンドを実行すると、
設定を変更するオプションを持つアプリケーションは、
設定変更のスクリーンを表示し、
ユーザからの指示待ちの状態で停止します。
この振る舞いをやめ、デフォルトのオプションを使用するには、
上記のコマンドに を含めてください。
ソフトウェアのアップグレードが終わったら、最後にもう一度
freebsd-update
を実行して、
すべてのアップグレードプロセスのやり残し作業を行い、
アップグレードのプロセスを完了してください。
&prompt.root; freebsd-update install
GENERIC
カーネルを一時的に読み込んでいたのであれば、 に書かれている手順に従って、
新しいカスタムを構築し、インストールしてください。
コンピュータを再起動し、新しい &os; を立ち上げてください。
これでアップグレードのプロセスは完了です。
システムの状態の比較
freebsd-update を用いて、
インストールされている &os; の状態と、
正しく動作することが分かっている状態とを比較できます。
このコマンドは、現在のシステムのユーティリティ、ライブラリ、
設定ファイルを評価するので、
組み込みの侵入検知システム (IDS)
として使うことができます。
このコマンドは、security/snort
のような本当の IDS
の置き換えになるものではありません。
freebsd-update はデータをディスクに保存するので、
不正な変更が行われる可能性があります。
kern.securelevel と、
freebsd-update のデータを使用しないときに、
読み取りのみの許可属性に設定されているファイルシステムに置くことで、
不正な変更の可能性を低くできますが、
よりよい解決方法は、
DVD
または安全に保存されている外部 USB
ディスクのような安全なディスクとシステムを比較することです。
組み込まれているユーティリティを用いた、別の方法による
IDS 機能については、
&os; バイナリによる検出
の節をご覧ください。
比較を行うには、
結果の出力先のファイル名を指定してください。
&prompt.root; freebsd-update IDS >> outfile.ids
システムは検査され、リリースファイルの SHA256
ハッシュ値と現在インストールされているファイルのハッシュ値がファイルの一覧と共に、
指定した出力先のファイルに送られます。
これらの行は極めて長いのですが、出力形式は簡単にすぐに解析できます。
たとえば、これらのリリースで異なっているすべてのファイルを知りたいのであれば、
以下のコマンドを実行してください。
&prompt.root; cat outfile.ids | awk '{ print $1 }' | more
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.conf
上の表示例では出力は切り捨てられており、
実際にはもっと多くのファイルが存在します。
これらのファイルには、運用中に変更されるファイルがあります。
たとえば、/etc/passwd
はユーザがシステムに追加されると変更されます。
また、カーネルモジュールは、
freebsd-update
によりアップデートされるため、変更されます。
このような特別なファイルやディレクトリを除外するには、
それらを /etc/freebsd-update.conf の
IDSIgnorePaths オプションに追加してください。
ドキュメントのアップデート
Updating and Upgrading
Documentation
Updating and Upgrading
ドキュメントは、&os; オペレーティングシステムの必須要素です。
&os; ドキュメントの最新バージョンは、&os; ウェブサイト (http://www.freebsd.org/doc/)
から入手できますが、
&os; ウェブサイト、ハンドブック、FAQ
および文書の最新版をローカルに用意しておくと便利です。
この章では、ソースまたは Ports Collection を使って、
ローカルの &os; ドキュメントを最新に保つ方法を説明します。
ドキュメントを編集したり、
ドキュメントの誤りを報告する方法については、
新しい貢献者のための &os; ドキュメンテーションプロジェクト入門 (http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/)
をご覧ください。
ソースから &os; ドキュメントをインストールする
ソースから &os; ドキュメントを構築するのに必要なツールは、
&os; のベースシステムには含まれてはいません。
svn などの必要なツールは、
&os; ドキュメンテーションプロジェクトが開発している
textproc/docproj package または port
からインストールできます。
インストールしたら、svn
を使って、ドキュメントのソースをダウンロードしてください。
&prompt.root; svn checkout https://svn.FreeBSD.org/doc/head /usr/doc
最初にドキュメントのソースをダウンロードするには少し時間がかかります。
ダウンロードが終わるまでお待ちください。
ダウンロードしたドキュメントのソースをアップデートするには、
以下のコマンドを実行してください。
&prompt.root; svn update /usr/doc
最新のドキュメントのソースのスナップショットを
/usr/doc に用意できたら、
インストールされているドキュメントをアップデートする準備はすべて整いました。
利用可能なすべての言語のドキュメントをアップデートするには、
以下のように入力してください。
&prompt.root; cd /usr/doc
&prompt.root; make install clean
もし、ある特定の言語のみをアップデートしたいのであれば、
/usr/doc
の下にある各言語のサブディレクトリで make
を実行してください。
&prompt.root; cd /usr/doc/en_US.ISO8859-1
&prompt.root; make install clean
ドキュメントをアップデートする別の方法は、
/usr/doc
または各言語のサブディレクトリで以下のコマンドを実行してください。
&prompt.root; make update
FORMATS を設定して、
以下のようにインストールする出力形式を指定できます。
&prompt.root; cd /usr/doc
&prompt.root; make FORMATS='html html-split' install clean
ドキュメンテーションの一部のアップデートを簡単にするオプションや、
特定の翻訳のビルドを行うためのオプションが用意されています。
これらのオプションは、システム全般のオプションである
/etc/make.conf や、make
に与えるコマンドラインオプションで設定できます。
オプションには以下のようなものがあります。
DOC_LANG
ビルドおよびインストールの言語およびエンコーディングの一覧。
たとえば、英語のドキュメントを指定するには
en_US.ISO8859-1 を設定します。
FORMATS
ビルドを行うフォーマット、または出力フォーマットの一覧。
現在は html,
html-split, txt,
ps そして pdf
に対応しています。
DOCDIR
ドキュメントをインストールする場所。デフォルトは
/usr/share/doc です。
&os; のシステム全般のオプションに関連するもっと多くの
make 変数については、
&man.make.conf.5; をご覧ください。
ports を用いたドキュメンテーションのアップデート
Marc
Fonvieille
ベースとなった作業:
Updating and Upgrading
documentation package
Updating and Upgrading
これまでのセクションでは、ソースコードを用いた &os;
ドキュメントのアップデート方法について説明してきました。
この節では、インストールされている
&os; のドキュメントをアップデートするもう一つの方法である、
Ports Collection を用いた方法について説明し、
以下について説明します。
構築済のドキュメントの packages をインストールする方法。
ローカルでの構築作業やドキュメンテーションツールチェインをインストールする必要はありません。
ports フレームワークを使ったドキュメントのソースの構築方法。
チェックアウトおよび構築作業が簡単になります。
&os; のドキュメントをアップデートするこれらの方法は、
&a.doceng; が毎月アップデートしている
ドキュメンテーション ports および packages
によりサポートされています。
これらの ports は、&os; Ports Collection の
docs カテゴリ (http://www.freshports.org/docs/)
にまとめられています。
ドキュメンテーション ports の構成は以下の通りです。
misc/freebsd-doc-en package または portは、
すべての英語文書をインストールします。
misc/freebsd-doc-all メタ package
もしくは port は、
すべての利用可能な言語のすべてのドキュメントを構築します。
各言語のために package または port
が用意されています。たとえば、
misc/freebsd-doc-hu
はハンガリー語のドキュメンテーション port です。
バイナリ package を使うと、
インストールする言語に用意されているすべての形式の
&os; ドキュメントがインストールされます。
たとえば、以下のコマンドを実行すると、
ハンガリー語のドキュメントの最新 package
がインストールされます。
&prompt.root; pkg install hu-freebsd-doc
ドキュメントの package は、対応する port 名とは異なり、
lang-freebsd-doc
の形式で名前がつけられています。
ここで、lang は言語コードの短縮形です。
ハンガリー語の場合は hu、簡体字の場合には
zh_cn です。
ドキュメントのフォーマットを指定する場合には、package ではなく
port から構築をしてください。たとえば、
英語のドキュメントを構築してインストールするには以下のようにして下さい。
&prompt.root; cd /usr/ports/misc/freebsd-doc-en
&prompt.root; make install clean
この port には、
構築およびインストールするフォーマットを設定するメニューがあります。
デフォルトでは、http://www.FreeBSD.org
と同じ形式である分割版の HTML 形式、
PDF が選択されています。
以下のように、ドキュメンテーション ports を構築する際の
make オプションが用意されています。
WITH_HTML
HTML 形式を構築します。
各ドキュメントに対し、単一版の HTML ファイルが構築されます。
整形されたドキュメントは、
article.html や
book.html
といった名前でインストールされます。
WITH_PDF
整形されたドキュメントは、
article.pdf や
book.pdf
といった名前でインストールされます。
DOCBASE
ドキュメントのインストール先を設定します。
デフォルトのインストール先は
/usr/local/share/doc/freebsd
です。
以下は、上記の変数を用いてハンガリー語のドキュメントを
PDF 形式でインストールする方法です。
&prompt.root; cd /usr/ports/misc/freebsd-doc-hu
&prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean
に書かれている手順を使って、
ドキュメンテーション package または port
をアップデートできます。
たとえば、以下のコマンドを実行すると、
ports-mgmt/portupgrade
から、package
だけを使ってインストールされているハンガリー語のドキュメントをアップデートします。
&prompt.root; portmaster -PP hu-freebsd-doc
開発ブランチを追いかける
-CURRENT
-STABLE
&os; には二つの開発ブランチがあります。
それは &os.current; と &os.stable; です。
この節ではそれぞれのブランチと対象としている読者についての説明と、
どのようにしてシステムの対応するブランチを最新の状態に保つかについて説明します。
訳: &a.hanai;、1996 年 11 月 6 日
&os.current; を使う
&os.current; とは &os; の開発の 最前線
なので、
&os.current; のユーザは高い技術力を持つことが要求されます。
そこまでの技術力を持っていないが、
開発ブランチを追いかけたいと考えているユーザは、
かわりに &os.stable; を追いかけると良いでしょう。
&os.current; は &os; の最新のソースコードであり、
中には現在開発途上のソフトウェア、
実験的な変更、あるいは過渡的な機能などが含まれています。
また、この中に入っている機能がすべて、
次の公式リリースに入るとは限りません。&os.current;
をソースからほぼ毎日コンパイルしている人はたくさんいますが、
短い期間ではコンパイルさえできない状態になっている時期もあります。
これらの問題は可能な限り迅速に解決されますが、
&os.current; が不幸をもたらすか、
それとも新しい機能をもたらすかは、
まさにソースコードを同期した瞬間によるのです!
&os.current; は、
次の 3 つの重要なグループを対象としています。
ソースツリーのある部分に関して活発に作業している
&os; コミュニティのメンバ。
活発にテストしている &os; コミュニティのメンバ。
彼らは、種々の問題を解決するのに時間を惜しまない人々であり、
さまざまな変更に関する提案や
&os; の大まかな方向付けを行ないたいと思っている人々でもあり、
パッチも提出します。
さまざまな事に目を向け、
参考のために最新のソースを使いたいと思っていたり、
時々コメントやコードを寄稿したいと考えているユーザ。
&os.current; は、次のリリースの前に、
最も早く新しい機能を入手する手段として、
期待してはいけません。
リリース前の機能は十分にテストされていないため、
バグを含んでいる可能性が大いにあるためです。
また、バグを修正するための素早い方法でもありません。
いかなるコミットは、元からあるバグを修正するのと同じく、
新しいバグを生み出すおそれがあります。
&os.current; には 公式のサポート
はありません。
-CURRENT
using
&os.current; を追いかけるには
&a.current.name; と &a.svn-src-head.name;
-CURRENT
使用
メーリングリストに加わってください。
さまざまな人がシステムの現在の状態について述べているコメントを見たり、
&os.current; の現在の状態に関する重要な情報を見逃さないために、
必須の ことです。
&a.svn-src-head.name; メーリングリストでは、
それぞれの変更についての commit ログが記録されています。
また、それに関して起こり得る副作用の情報を得ることができますので、
参加する価値のあるメーリングリストです。
これらのメーリングリストに入るには、
&a.mailman.lists.link;
をたどって参加したいメーリングリストをクリックし、
手順の説明にしたがってください。
&os.current; だけでなく、
ソースツリー全体の変更点を追いかけるのであれば、
&a.svn-src-all.name; メーリングリストを購読してください。
&os.current; のソースを同期してください。
特に svn を使って
の一覧にある
Subversion ミラーサイトのひとつの
head ブランチから
-CURRENT コードをチェックアウトしてください。
インターネットの接続がとても遅かったり、
制限がある場合には、
で説明されている CTM
を利用すると良いでしょう。
ただし、svn
ほどには信頼はできないので、
svn
を利用されることを推奨します。
リポジトリのサイズが大きいため、興味のある部分や、
パッチを当てる部分のソースのみを同期するユーザもいます。
しかしながら、
ソースからオペレーティングシステムをコンパイルしようと思っているユーザは、
一部分だけではなく、&os.current; の すべて
をダウンロードする必要があります。
&os.current; をコンパイル
-CURRENT
コンパイル
する前に
/usr/src/Makefile を注意深く読み、
に書かれている手順に従ってください。
&a.current; と /usr/src/UPDATING を読めば、
次のリリースへ向けて移ってゆくに当たって、
ときどき必要となる既存システムからの新システムの構築手順についての最新情報が得られるでしょう。
アクティブになってください!
&os.current; のユーザには、
拡張やバグ潰しに関して提案することが勧められています。
コードを伴う提案はいつでも歓迎されます!
&os.stable; を使う
訳: &a.jp.iwasaki;
&os.stable;
とは定期的に公開されるリリースを作成するための開発ブランチです。
このブランチに加えられる変更は &os.current; よりゆっくりで、
原則として、事前に &os.current; で試験ずみであるという特徴があります。
ただそうであっても、
これは開発用ブランチの一つであり、ある時点における &os.stable;
のソースがどんな場合にも使えるものであるとは限りません。
このブランチはもう一つの開発の流れというだけであって、
エンドユーザ向けのものではありません。
もし試験をする資源的な余裕がない場合は、代わりに最新の
&os; リリースを使ってください。
&os; の開発プロセスに興味があったり、
それに対する貢献を考えていて、特にそれが次回の
&os; のリリースに関係するものであるなら
&os.stable; を追うことを考えると良いでしょう。
&os.stable; ブランチはいつもコンパイルができ、
安定に動作すべきですが、
それが保証されているというわけではありません。
&os.stable; のユーザは &os.current; よりも多いため、&os.current;
で発見されなかったバグが &os.stable; で発見され、
ときどきそれが問題となることがあるのは避けることができません。
このような理由から、盲目的に &os.stable;
を追いかけるべきではありません。
特に、開発環境もしくはテスト環境でコードを十分に試験せずに、
プロダクション品質が要求されるサーバを &os.stable;
にアップグレードしてはいけません。
&os.stable; を追いかけるには
-STABLE
利用する
&os.stable; の構築に関連する事柄や、
その他の注意すべき点 に関する情報を得るために、
&a.stable.name; メーリングリストに加わってください。
また開発者は議論の余地がある修正や変更を考えている場合に、
このメーリングリストで公表し、
提案された変更に関して問題が生じるかどうかを返答する機会をユーザに与えます。
追いかけているブランチに関連する
svn メーリングリストに参加してください。
たとえば、9-STABLE ブランチを追いかけているユーザは
&a.svn-src-stable-9.name; メーリングリストに参加してください。
このリストでは、変更がなされるごとに作成される commit log
やそれに伴う起こりうる副作用についての情報が記録されています。
これらのメーリングリストに入るには、&a.mailman.lists.link;
をたどって参加したいメーリングリストをクリックし、
手順の説明にしたがってください。
ソースツリー全体の変更点を追いかけるには、
&a.svn-src-all.name; メーリングリストを購読してください。
新しい &os.stable; システムをインストールするには、
ミラーサイト から最近の
&os.stable; リリースをインストールするか、
毎月公開されている &os.stable;
からビルドされたスナップショットを使ってください。
スナップショットの詳細については、www.freebsd.org/ja/snapshots
をご覧ください。
既に &os; が動いているシステムを
&os.stable; にアップグレードするには、
svn
Subversion
を使って、
希望する開発ブランチのソースをチェックアウしてください。
stable/9 といったブランチ名は、
www.freebsd.org/releng
で説明されています。
インターネットへの接続に信頼できる回線を利用できないのであれば、
CTM () を使ってください。
&os.stable; をコンパイルしたり &os.stable; へとアップグレード
-STABLE
構築、コンパイル
する前に、
/usr/src/Makefile を注意深く読み、
に書かれている手順に従ってください。
&a.stable; と /usr/src/UPDATING を読んで、
次のリリースへ向けて移ってゆくに当たって、
ときどき必要となる既存システムからの新システムの構築手順についての最新情報を得てください。
ソースの同期
訳: &a.jp.iwasaki;、1997 年 9 月 13 日
&os; のソースの最新を追いかける方法は色々あります。
この節では、基本的なサービスである
Subversion および
CTM について説明します。
ソースツリーの一部を最新のものに更新することは可能です。
ただし、サポートされているアップデート手順は、
ソースツリー全体を最新のものに更新し、
/bin, /sbin
といったユーザ空間で動作するもの、
およびカーネルソースを再構築することのみです。
ソースツリーの一部だけであったり、カーネルだけ、
もしくはユーザランドのプログラムだけを更新した場合は、
問題が生じることがよくあります。
この時に発生する問題はコンパイル時のエラーからカーネルパニック、
データの破壊とさまざまです。
Subversion
Subversion
は pull 同期モデルを採用しています。
ユーザ (または cron スクリプト) が
svn プログラムを起動し、
ローカルにあるソースを最新状態にします。
更新情報はその時点の最新のものであり、
いつダウンロードするかはユーザがコントロールするので、
Subversion
はローカルのソースツリーをアップデートする好ましい方法です。
特定のファイルやディレクトリに限定して更新することも簡単にできます。
更新情報はサーバによって素早く生成されます。
Subversion によるソースの同期方法については、
で説明されています。
CTM
一方、CTM
はあなたが持っているソースとマスタアーカイブ上に
あるそれとの対話的な比較をおこないませんし、
あるいは向こう側から変更点を pull したりもしません。
そのかわりに、前回の実行時からの変更を認識するスクリプトが
マスタ CTM マシン上で一日に数回実行され、
すべての変更を compress して通し番号を振り、
さらに電子メールで、印字可能な ASCII
キャラクタのみで転送できるようにエンコードします。
ダウンロードした後は、
これらの デルタ
は、
自動的にデコード、検査してユーザのソースのコピーに変更を適用する
ctm.rmail によって処理可能です。
この処理は Subversion
よりずっと効率的であり、pull モデルというよりむしろ
push モデルであるため、
サーバ資源の負荷は軽くなります。
CTM を用いたソースの同期方法については、
をご覧ください。
Subversion であれば、
うっかりローカルのアーカイブの一部を消してしまっても、
壊れた部分を検出して再構築してくれます。
CTM はこれをやってくれません。
もしソースツリーの一部を消してしまい、
そしてバックアップを取っていないのであれば、最新の
ベースデルタ を用いて、一からやり直し、
CTM
を使ってすべてを再構築しなければなりません。
world の再構築
world
の再構築
&os.stable;、&os.current; などの
&os; のどれか特定のバージョンについて、
ローカルのソースツリーを同期させたら、
そのソースツリーを使ってシステムを再構築できます。
このプロセスは world の再構築と呼ばれます。
world を再構築する前に、
以下を行ってください。
world の構築前に行う作業
重要なデータを他のシステムやリムーバブルメディアにバックアップし、
きちんとバックアップが作成されていることを確認したら、
起動可能なインストールメディアを用意してください。
システムを再構築する前に、
バックアップを作成することの重要性は、
いくら強調してもし過ぎると言うことはありません。
システム全体の再構築は難しい作業ではありませんが、
どんなに注意していたとしても、
ソースツリーそのものに手違いがあった時には、
システムが起動しなくなってしまう状態になることがあるのです。
多分、それを使うことはないと思いますが、
あとで後悔することのないよう、念のため用意しておきましょう!
メーリングリスト
追いかけているブランチに応じて、
&a.stable.name; もしくは &a.current.name;
の最近のエントリを調べて、
既知の問題や影響を受けるシステムを確認してください。
既知の問題が同期しているバージョンのコードに影響する場合は、
その問題が解決されたことを報告する
問題解決 (all clear)
のアナウンスが投稿されるまで待ってから、ソースを同期して、
ローカルのソースに必要な修正を入れてください。
/usr/src/UPDATING を読み、
同期しているソースのバージョンで必要となるステップがないかどうかを調べて下さい。
このファイルには潜在的な問題や特定のコマンドを実行する順番などの重要な情報が含まれています。
大きなアップグレードでは、world
をインストールする前に特定のファイルの名前を変更したり、
削除するといった、特別なステップが追加で必要となることがあります。
ファイルの最後には、
現在推奨されているアップグレードの手順が詳しく正確に説明されています。
もし、UPDATING に書かれている手順が、
この節に書かれているものと矛盾していたら、
UPDATING の手順を採用してください。
make world は使わないこと
古いドキュメントの中には、
make world を使うことを薦めているものがあります。
これは、重要な手順をいくつか抜かしてしまうので、
エキスパートでなければ使うべきではありません。
ほぼあらゆる場合において、make world
を実行するのは間違っており、
ここで説明されている手順を用いるべきです。
システム更新の概要
world の構築では、
に書かれている手順で入手したソースを用いて、
古い &os; のバージョンをアップデートします。
&os; では、world
は、
カーネル、コアシステムのバイナリ、
ライブラリ、プログラミングファイル、組み込みのコンパイラを意味します。
これらのコンポーネントの構築およびインストールの順番は重要です。
例えば、古いコンパイラは、
バグを含み、新しいカーネルをコンパイルできない可能性があります。
そのため、新しいカーネルは新しいコンパイラで構築しなければならないので、
新しいコンパイラの構築が必要となりますが、
必ずしも、
新しいコンパイラがインストールされている必要はありません。
新しい world は、
新しいカーネルの機能に依存している可能性があるので、
新しい world をインストールする前に、
新しいカーネルがインストールされていなければなりません。
古い world は、新しいカーネルでは正しく動かないかも知れません。
そのため、新しいカーネルをインストールしたら、
直ちに新しい world をインストールしてください。
設定の中には、新しい world
をインストールする前に変更すべきものがありますが、
古い world を壊す可能性があります。
そのため、設定のアップデートは 2 つの手順で行われます。
多くの場合、アップデートのプロセスは、ファイルを置き換えたり、
追加のみを行い、古いファイルを削除しません。
このことが問題を引き起こす可能性があるため、
/usr/src/UPDATING には、
手動で削除すべきファイルをどのステップで削除すべきかが書かれています。
これらを配慮した結果、以下で説明するアップグレードの推奨手順が作られました。
make を実行したときの出力は、
ファイルに保存すると良いでしょう。
何か障害が発生した場合には、エラーメッセージのコピーを
&os; メーリングリストに投稿してください。
ファイルに保存する最も簡単な方法は、
引数として出力の保存先のファイル名を指定して
script コマンドを使うことです。
/tmp は、
再起動をすると削除されてしまう可能性があるので、
このディレクトリには出力を保存しないようにしてください。
出力の保存には、/var/tmp が適しています。
次のコマンドを world の構築の直前に行ない、再構築が終了したら
exit と入力してください。
&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
world の構築プロセスの概要
world の構築プロセスで用いられるコマンドは、
ここで示されている順番で実行してください。
この節では各コマンドの機能についてまとめます。
システム上で world の構築が一度でも行われていると、
前回の構築の際のコピーが
/usr/obj
に存在するはずです。
このディレクトリが存在しているのであれば、
このディレクトリを削除することで
make buildworld の行程にかかる時間を短縮し、
依存問題に悩まされるようなトラブルを回避できます。
&prompt.root; chflags -R noschg /usr/obj/*
&prompt.root; rm -rf /usr/obj
新しいコンパイラと関連ツールを最初にコンパイルし、
その後、新しいコンパイラで、
新しい world の残りの部分をコンパイルします。
コンパイルされたものは、
/usr/obj に格納されます。
&prompt.root; cd /usr/src
&prompt.root; make buildworld
コンパイラとカーネルのミスマッチを防ぐため、
/usr/obj
にある新しいコンパイラを用いて新しいカーネルを構築します。
再構築は、ある種のメモリ構造体が変更されたような場合には必須で、
ps や top
のようなプログラムは、
カーネルとソースコードのバージョンが一致しないと正常に動作しないことがあります。
&prompt.root; make buildkernel
新しくアップデートされたカーネルで起動できるように、
新しいカーネルとカーネルモジュールをディスク上に配置します。
kern.securelevel を 1 より大きくしていて、
かつ カーネルのバイナリファイルに
noschg のようなフラグを設定している場合は、
まず、シングルユーザモードに移行してください。
それ以外の場合は、
マルチユーザモードでこれらのコマンドを問題なく動かせるはずです。
kern.securelevel について詳しくは
&man.init.8; を、ファイルに対するさまざまなフラグについて詳しくは
&man.chflags.1; をご覧ください。
&prompt.root; make installkernel
すでに実行されているソフトウェアをアップデートする際の問題を最小限にするため、シングルユーザモードに移行してください。
シングルユーザモードに移行することにより、
新しいカーネル上で古い world
が実行される際の問題も最小限にします。
&prompt.root; shutdown now
シングルユーザモードに移行したら、UFS
でフォーマットされているシステムでは、
以下のコマンドを実行してください。
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -a
もしシステムが ZFS でフォーマットされている場合には、
以下の 2 つのコマンドを実行してください。
この例では、zpool の名前は zroot
であると仮定します。
&prompt.root; zfs set readonly=off zroot
&prompt.root; zfs mount -a
オプション: もし、デフォルトの US English
以外のキーボードマップが必要であれば、
&man.kbdmap.1; で変更してください。
&prompt.root; kbdmap
その後、どちらのファイルシステムでも、
CMOS クロックが地域時間に設定されていて
GMT ではない場合
(&man.date.1; が正しい時間と地域を表示しないなら当てはまります)
には、次のコマンドを実行してください。
&prompt.root; adjkerntz -i
システムの再構築では、
/etc,
/var や
/usr
といったディレクトリに新規に導入されたファイルや、
変更された設定ファイルに対する更新は行なわれません。
次に、新しい world
に対する /etc
の最初の設定ファイルのアップデートを行います。
以下のコマンドは
installworld
に成功するために本質的なファイルのみを比較します。
たとえば、
このステップでは、最後のアップデート後に &os; に追加された、
新しいグループや新しいシステムアカウント、
もしくはスタートアップスクリプトがシステムに追加されることがあります。
次のコマンドに関する詳細な情報については、
を参照してください。
&prompt.root; mergemaster -iF
/usr/obj
にある新しい world
およびシステムのバイナリをインストールします。
&prompt.root; cd /usr/src
&prompt.root; make installworld
残りの設定ファイルをアップデートします。
&prompt.root; mergemaster -p
使われなくなったファイルを削除します。
もし使われなくなったファイルがディスクに残っていると、
問題が起きる可能性があるので重要な作業です。
&prompt.root; make delete-old
再起動を行い、新しいカーネル、
world そして設定ファイルをロードします。
&prompt.root; reboot
古いライブラリを削除する前に、
に書かれている手順にしたがって、
すべての ports を再構築する必要があります。
再構築が終わったら、新しいライブラリと競合することを避けるため、
使われなくなったライブラリを削除します。
この過程に関する詳細は、
を参照して下さい。
&prompt.root; make delete-old-libs
シングルユーザモード
もしシステムがダウンタイムを持つことができるのであれば、
システムのコンパイルをマルチユーザモードでおこない、
インストールのためにシングルユーザモードに移行するという方法ではなく、
コンパイルをシングルユーザモードで行うことを考えてください。
システムの再インストールでは、たくさんの重要なシステムファイル、
すべての標準的なシステムバイナリ、ライブラリ、
インクルードファイルが変更されるので、
実際に動作しているシステムにおいて、
特にアクティブなユーザは、トラブルに見舞われる可能性があります。
設定ファイル
make.conf
world
の構築プロセスでは、いくつかの設定ファイルが使われます。
/usr/src に置かれている
Makefile には、
&os; を構成するプログラムの構築方法や、
どういう順番でそれらを構築すべきかといった指示が記述されています。
make で利用可能なオプションの説明は
&man.make.conf.5; や、共通の例が
/usr/share/examples/etc/make.conf にあります。
これらの設定を /etc/make.conf に追加すると、
make の実行やプログラムの構築方法を設定できます。
これらのオプションは、
make が使われる際には常に有効となるため、
Ports Collection でのアプリケーションのコンパイル時、
ユーザが書いた C プログラムや &os;
オペレーティングシステムを構築する際に影響を及ぼします。
ある設定を変更したことにより、影響が広い範囲におよび、
驚くべき結果をもたらす可能性があります。
両方のファイルに書かれているコメントを読むことと、
デフォルトの設定は、パフォーマンスと安全性の観点から選ばれていることを覚えておいてください。
src.conf
/etc/src.conf は、
ソースコードを用いたオペレーティングシステムの構築をコントロールします。
/etc/make.conf とは異なり、
/etc/src.conf に書かれた設定は、
&os; オペレーティングシステムそのものを構築するときにのみ影響します。
このファイルで設定可能な多くのオプションについては、
&man.src.conf.5; に記述されています。
一見したところ無効にされている、
使われていないカーネルモジュールやビルドオプションに注意してください。
ときどき予期しなかったり、わずかな影響を与えることがあります。
変数とターゲット
make の使用における一般的な書式は、
次のとおりです。
&prompt.root; make -x -DVARIABLE target
この例では、 が
make に渡されるオプションになります。
利用可能なオプションについては、&man.make.1;
を参照してください。
変数を渡すには、変数の名前を
のように指定してください。
この変数は Makefile の動作をコントロールします。
変数の指定は、/etc/make.conf で設定するか、
make の実行時に指定するかのどちらかで行います。
たとえば、以下の変数は、プロファイル版のライブラリを構築しないことを指定します。
&prompt.root; make -DNO_PROFILE target
これは、/etc/make.conf
の中で以下のように設定することに対応します。
NO_PROFILE= true # Avoid compiling profiled libraries
target は、make に
どのように動作するのかを指示するためのものです。
Makefile は利用可能なターゲットを定義しています。
ターゲットには、
システムの再構築に必要な段階を、
多くのさらに細かい段階に分割するため、
構築の過程で利用されるものがあります。
選択肢が分けられていることは、二つの理由から有用です。
まず第一に、構築作業は稼働中のシステムにまったく影響を与えません。
そのため、マルチユーザモードで稼働中のシステムでも、安全に
buildworld を実行できます。
ただし、installworld は
シングルユーザモードで行なうことをおすすめします。
第二に、NFS マウントを利用することで、 で説明されているように、
ネットワーク上の複数のマシンをアップグレードすることが可能な点があげられます。
make に
をつけると、
同時に複数のプロセスを生成できます。
構築過程の大部分では CPU 性能の限界より
I/O 性能の限界の方が問題となるため、
シングル CPU とマルチ CPU
マシンの両方に効果があります。
普通のシングル CPU マシンで以下のコマンド
を実行すると、最大 4 個までのプロセスを同時に実行します。
メーリングリストに投稿された経験的な報告によると、
4 個という指定が最も良いパフォーマンスを示すようです。
&prompt.root; make -j4 buildworld
マルチ CPU マシンでは、
6 から 10 の間の値を設定し、
速度がどれくらい向上するか確認してみてください。
world
の再構築
時間
make buildworld
に変数を指定した場合は、同じ指定を
make installworld にも指定しなければなりません。
ただし installworld
では、 を
絶対に使ってはいけません。
たとえば、以下のコマンドを実行したなら、
&prompt.root; make -DNO_PROFILE buildworld
以下のようにしてインストールしなければなりません。
&prompt.root; make -DNO_PROFILE installworld
もしそうしなかった場合、2 番目のコマンドは、
make buildworld
の段階で構築されていないプロファイル版ライブラリをインストールしようとしてしまうでしょう。
設定ファイルの同期
Tom
Rhodes
寄稿:
mergemaster
&os; の &man.mergemaster.8; Bourne シェルスクリプトは、
/etc にある設定ファイルと、
/usr/src/etc
にある設定ファイルの違いを確認するためのものです。
システムの設定ファイルをソースツリーにある設定ファイルにアップデートするには、
この方法が推奨されています。
mergemaster を使う前に、
既存の /etc
をどこか安全な場所にコピーしておきましょう。
再帰的なコピーを行なう と、
ファイルの更新時間や所有者などを保存する
と共に実行してください。
&prompt.root; cp -Rp /etc /etc.old
mergemaster を実行すると、
/ を起点とした一時的なルート環境を構築し、
さまざまなシステム設定ファイルを
(訳注: デフォルトでは /var/tmp/temproot に)
置いていきます。
これらのファイルは現在システムにインストールされているファイルと比較されます。
異なるファイルは &man.diff.1; 形式で示され、
の記号は追加または変更された行を表し、
は完全に削除されたか新しく置き換えられた行を表します。
ファイルの違いの表示方法についてのより詳しい情報は、
&man.diff.1; を参照してください。
次に mergemaster
は違いのあるファイルをそれぞれ示し、
選択可能なオプションを表示します。
ここでは、一時ファイルと呼ばれる新しいファイルを削除するか、
一時ファイルをそのままインストールするか、
一時ファイルと現在インストールされているファイルを統合するか、
もしくは結果をもう一度見るか、
といったオプションから選択できます。
一時ファイルの削除を選ぶと、mergemaster
は現在のファイルを変更しないで新しいバージョンを削除します。
この選択は、お勧めできません。
mergemaster
のプロンプトで ? とタイプすれば、
いつでもヘルプが見られます。
ファイルのスキップを選ぶと、他のすべてのファイルを終えたあと、
もう一度そのファイルが提示されます。
一時ファイルをそのままインストールすることを選ぶと、
現在のファイルを新しいファイルで置き換えます。
ほとんどの手を加えていないファイルは、
これが一番よい選択です。
ファイルの統合を選んだ場合、
テキストエディタが起動され、両方のファイルの中身が提示されます。
画面上に並ぶ両方のファイルを見て新しいファイルを作成するために両方から必要な部分を選択し、
2 つのファイルを統合することができます。
並んでいるファイルを比較するとき、
l で左側の中身を選択し、
r で右側の中身を選択します。
最終出力は左右両方の部分でできたファイルになるでしょう。
このファイルをインストールすることができます。
たいてい、このオプションはユーザが設定を変更したファイルに使われます。
結果をもう一度見る、を選択すると、
ファイルの相異点をもう一度見ることができます。
mergemaster
がシステムファイルの比較を終えたあと、
他のオプションについてのプロンプトが表示されます。
たとえば、
パスワードファイルを再構築するかどうかを尋ねることがあります。
最後に残った一時ファイルを削除するかどうかを尋ねて終了します。
使われなくなったファイル、ライブラリの削除
Anton
Shterenlikht
ベースとなったノートの提供:
Deleting obsolete files and directories
&os; の開発サイクルにおいて、
ファイルやシステムの一部が使われなくなることがあります。
それらの機能が別の場所で実装されたり、
ライブラリのバージョン番号が変わったり、
システムから完全に削除されることがあるためです。
システムのアップデート時に削除が必要になるのは、
古いファイル、ライブラリそしてディレクトリです。
これらのファイルを削除することで、
記憶媒体やバックアップ媒体において不必要な容量を占めている古いファイルが、
システム上に散乱することがなくなります。
また、古いライブラリのセキュリティや安定性に問題があると、
ライブラリを新しくしてシステムを安定な状態にし、
古いライブラリによりシステムがクラッシュすることを防がなければなりません。
使われなくなったファイル、ディレクトリ、ライブラリは
/usr/src/ObsoleteFiles.inc
にまとめられています。以下の手順により、
アップグレードの過程でこれらのファイルを削除できます。
make installworld
と、その後の mergemaster が無事に終わったら、
使われなくなったファイルやライブラリを確認してください。
&prompt.root; cd /usr/src
&prompt.root; make check-old
見つかった古いファイルは、以下のコマンドで削除できます。
&prompt.root; make delete-old
使われなくなったファイルを削除する際、
ファイルごとに確認が求められます。
確認を省略し、自動的にファイルを削除するには、
以下のように BATCH_DELETE_OLD_FILES
を設定してください。
&prompt.root; make -DBATCH_DELETE_OLD_FILES delete-old
yes
をコマンドへパイプでつなげても省略できます。
&prompt.root; yes|make delete-old
Warning
使われなくなったファイルを削除すると、
削除したファイルに依存していたアプリケーションは動かなくなってしまいます。
特に、古いライブラリを削除する場合に起こり得ます。
通常、make delete-old-libs
を実行する前に、
これらの古いライブラリを使っているプログラム、ports、
ライブラリを再構築する必要があります。
共有ライブラリの依存をチェックするユーティリティとして、
sysutils/libchk や
sysutils/bsdadminscripts
が用意されています。
使われなくなった共有ライブラリは、
新しいライブラリと競合し、
以下のようなメッセージを表示することがあります。
/usr/bin/ld: warning: libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5
/usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so, may conflict with librpcsvc.so.5
この問題を解決するには、
ライブラリがどの port によってインストールされたかを調べて下さい。
&prompt.root; pkg which /usr/local/lib/libtiff.so
/usr/local/lib/libtiff.so was installed by package tiff-3.9.4
&prompt.root; pkg which /usr/local/lib/libXext.so
/usr/local/lib/libXext.so was installed by package libXext-1.1.1,1
見つかった port をアンインストールし、
再構築、再インストールしてください。
この過程は ports-mgmt/portmaster
で自動化できます。
すべての ports が再構築され、
古いライブラリがどこにも使われていないことを確認したら、
以下のコマンドで古いライブラリを削除してください。
&prompt.root; make delete-old-libs
もしちょっとした問題があった場合でも、
システムの一部を再構築するのは簡単です。
たとえば、アップグレードや /etc
のマージの途中で誤って
/etc/magic を削除してしまい、
その結果 file
が動作しなくなってしまったような場合には、
次のコマンドを実行して修復してください。
&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all install
よくある質問
変更が行なわれたら、
その度にシステムの再構築が必要になるのでしょうか?
それは変更の内容によります。
たとえば、svn を実行したとき、
次にあげるようなファイルが更新されていたとします。
src/games/cribbage/instr.c
src/games/sail/pl_main.c
src/release/sysinstall/config.c
src/release/sysinstall/media.c
src/share/mk/bsd.port.mk
このときには、改めてシステム全体を再構築する必要はないでしょう。
そのかわり、適切なサブディレクトリに移って
make all install を行ってください。
しかし、たとえば src/lib/libc/stdlib
のような大きな変更が行なわれた場合には、
システム全体を再構築することを検討してください。
2 週間ごとにシステムを再構築して、
その 2 週間分の変更を取り込むユーザもいますし、
変更のあった部分だけ再構築し、
すべての依存関係を確かめたいと考えるユーザもいます。
それらはどのくらいの頻度でアップグレードしたいか、
そして &os.stable; か &os.current;
のどちらを追いかけているのかにもよります。
どうして
signal 11
signal 11
(もしくは他のシグナル番号)
のエラーがたくさん出てコンパイルが失敗するのでしょうか?
これは通常、ハードウェアに問題があることを示しています。
world の再構築は、
ハードウェア (特にメモリ)
に対する負荷耐久試験を行なうための有効な手段です。
本当にこの問題によるものかどうかは、
make
をもう一度実行し、異なる段階で異常終了が発生するか、
ということから確認できます。
このエラーに対応するには、RAM を始めとして、
マシンの部品をメモリから交換して、
どの部分が悪いのかを調べてみてください。
終了したら /usr/obj
を削除してもかまいませんか?
このディレクトリには、
コンパイルの段階で生成された
すべてのオブジェクトファイルが含まれています。
通常 make buildworld の最初の段階では、
このディレクトリを削除して新しくつくり直すようになっています。
構築終了後も /usr/obj
を保存しておいても、あまり意味はありません。
削除すれば、だいたい 2GB
のディスクスペースを解放することができます。
構築を中断した場合、
その構築を途中から再開することはできますか?
それは、問題が起こるまでに、
どれだけの作業を終えているかによります。
一般的に make buildworld は、
基本的なツールや、
システムライブラリの新しいコピーを作成します。
その後、これらのツールやライブラリがインストールされてから、
自分自身の再構築に使われ、もう一度、インストールされます。
システムの残りの部分がその新しいシステムファイルを用いて作り直されます。
再構築の最終段階では、
まったく安全に以下のコマンドを実行することができます。
これは、前回の make buildworld
の作業をやり直しません。
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN all
次のメッセージ
--------------------------------------------------------------
Building everything..
--------------------------------------------------------------
が make buildworld の出力にある場合には、
上のようにしてもほとんど悪影響が現れることはありません。
もしこのメッセージがない場合には、
安全を確保し、後悔するようなことがないよう、
システムの再構築を最初からやり直しましょう。
make world を高速化できますか?
いくつかの方法で build world のプロセスを高速化できます。
たとえば、全体のプロセスは、
シングルユーザモードで動かすことで高速になります。
しかしながら、この方法では、プロセスが完了するまで、
ユーザがシステムにアクセスすることはできません。
ファイルシステムを注意深く設計したり、
ZFS データセットを使うことでも変わります。
/usr/src と
/usr/obj
を、異なるディスク上の別のファイルシステムに置くことを検討してください。
また可能ならば、
異なるディスクコントローラに接続された異なるディスクにファイルシステムを置いてください。
/usr/src
をマウントする時には、
最後にアクセスされた時刻の書き込みを抑制するように、
オプションを付けてマウントしてください。
もし、/usr/src が、
独立したファイルシステムではないときには、
オプションで、/usr
を再マウントしてください。
/usr/obj
のあるファイルシステムを、
オプションをつけてマウントもしくは再マウントしてください。
これによって、ディスクへの書き込みが非同期になります。
つまり、書き込み命令はすぐに完了するのに対し、
実際にデータがディスクに書き込まれるのは、その数秒後になります。
これによって、書き込み処理の一括化が可能になるため、
劇的なパフォーマンスの向上が期待できます。
このオプションを指定すると、ファイルシステムは
壊れやすくなってしまうことに注意してください。
このオプションを付けていて、突然電源が落ちた場合には、
再起動後にファイルシステムが復旧不能になる可能性が
非常に高くなります。
もし、/usr/obj
が、ファイルシステムにある唯一のディレクトリであれば、
これは問題になりません。
しかし、同じファイルシステムに、
他の貴重なデータを置いているときには、
このオプションを有効にする前に、
バックアップをきちんと取っておきましょう。
/etc/make.conf に
NO_PROFILE=true
をセットして、
プロファイル版の作成を無効化してください。
&man.make.1; に
を指定して、複数のプロセスを並列に実行させてください。
これは、単一のプロセッサでも複数のプロセッサでも、
同様に恩恵を得ることができます。
なにか悪いことがあったらどうすればいいですか?
まず、自分の環境に前のビルドの余計なゴミが残っていないことをはっきりと確認してください。
&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandir
ええ、make cleandir
は本当に 2 回実行するのです。
そして、make buildworld を行い、
全プロセスを最初からやり直してください。
まだ問題があれば、エラーと uname -a
の出力を &a.questions; に送ってください。
設定についてさらに質問されても答えられるよう用意してください!
複数のマシンで追いかける
Mike
Meyer
寄稿:
NFS
複数のマシンにインストール
複数のコンピュータで同じソースツリーを追いかけていて、
全部のマシンにソースをダウンロードして全部を再構築するのは、
ディスクスペース、ネットワーク帯域、
そして CPU サイクルの無駄使いです。
解決策は 1 つのマシンに仕事のほとんどをさせ、
残りのマシンは NFS
経由でそれをマウントする、というものです。
このセクションではそのやり方を概観します。
NFS の使い方の詳細については、 をご覧下さい。
まず初めに、同じバイナリで動かそうとするマシンたちを決めます。
このマシンたちのことをビルドセットと呼びます。
それぞれのマシンはカスタムカーネルを持っているかもしれませんが、
同じユーザランドバイナリを動かそうというのです。
このビルドセットから、
ビルドマシンとなるマシンを 1 台選びます。
ベースシステムとカーネルを構築するのはこのマシンになります。
理想的には、このマシンは make buildworld
と make buildkernel
を実行するのに十分な CPU
を持った速いマシンであるべきです。
テストマシン
となるべきマシンも選んでください。
更新されたソフトウェアを使う前にそのマシンでテストするのです。
テストマシンはかなり長い時間落ちていても
だいじょうぶなマシンであったほうがいいでしょう。
ビルドマシンでもかまいませんが、
ビルドマシンである必要はありません。
このビルドセットのマシンはすべて
/usr/obj と
/usr/src
をビルドマシンから FTP
経由でマウントする必要があります。
ビルドセット自体が複数ある場合は、
/usr/src
はひとつのビルドマシン上にあるべきです。
他のマシンからはそれを NFS
マウントするようにしましょう。
ビルドセットのすべてのマシン上の
/etc/make.conf と
/etc/src.conf
がビルドマシンと一致していることを確認してください。つまり、
ビルドマシンはビルドセットのどのマシンもインストールしようとしている
ベースシステムを全部ビルドしなければならないということです。
また、各ビルドマシンは /etc/make.conf
にそれぞれのビルドマシンのカーネル名を
KERNCONF で指定し、
ビルドマシンは自分自身のカーネルから順に全部のカーネル名を
KERNCONF にリストアップしてください。
ビルドマシンは各マシンのカーネル設定ファイルを /usr/src/sys/arch/conf
に持っていなければなりません。
ビルドマシンにて、
に書いてあるようにカーネルとベースシステムを構築してください。
でも、まだビルドマシンにはインストールしないでください。
そのかわり、
ビルドしたカーネルをテストマシンにインストールしてください。
FTP 経由で
/usr/src および /usr/obj
をテストマシンにマウントしてください。
その後、shutdown now
を実行してシングルユーザモードに移行し、
新しいカーネルとベースシステムをインストールし、
いつもするように
mergemaster を実行してください。
終わったら、再起動して通常のマルチユーザ動作に戻します。
テストマシンにあるものすべてがちゃんと動いている確信が得られたら、
同じ手順でビルドセットの他のマシンにも新しいソフトウェアをインストールします。
ports ツリーにも同じ方法が使えます。
最初のステップは、
ビルドセットのすべてのマシンが NFS 経由で
/usr/ports をマウントすることです。
そして、distfiles を共有するように
/etc/make.conf を設定します。
NFS マウントによってマップされる
root
ユーザが何であれ、DISTDIR
はそのユーザが書き込める共通の共有ディレクトリに設定する必要があります。
ports をローカルでビルドする場合には、
各マシンは WRKDIRPREFIX
を自分のマシンのビルドディレクトリに設定しなければなりません。
また、ビルドシステムが packages
をビルドしてビルドセットのコンピュータに配布するのであれば、
DISTDIR と同じようにビルドシステム上の
PACKAGES
ディレクトリも設定してください。
Index: head/ja_JP.eucJP/books/handbook/desktop/chapter.xml
===================================================================
--- head/ja_JP.eucJP/books/handbook/desktop/chapter.xml (revision 48545)
+++ head/ja_JP.eucJP/books/handbook/desktop/chapter.xml (revision 48546)
@@ -1,1182 +1,1182 @@
デスクトップアプリケーション
この章では
&os; は性能や安定性によりサーバとして人気がある一方で、
日々のデスクトップとしての利用にも適しています。
packages や ports から
&os.numports; を超えるアプリケーションを利用できるので、
さまざまなアプリケーションを動かせるようにカスタマイズしたデスクトップを作り上げることができます。
この章では、ウェブブラウザ、生産的なソフトウェア、ドキュメントビューア、
および財務管理ソフトウェアといった、
数多くのデスクトップアプリケーションのインストール方法について説明します。
一から構築するのではなく、
事前に構築されたデスクトップバージョンの FreeBSD
- をお望みのユーザは、pcbsd.org
- ウェブサイト をご覧ください。
+ をお望みのユーザは、
+ pcbsd.org
+ ウェブサイト をご覧ください。
この章の読者は、以下のことを理解しておく必要があります。
package または ports
を用いたサードパーティ製ソフトウェアのインストール方法
()。
X およびウィンドウマネージャのインストール方法
()。
マルチメディア環境を整える方法については
を参照してください。
訳注
この文書は英語で書かれている原文をそのまま邦訳したものです。
必ずしも各アプリケーションで日本語が扱えるとは限らないことに注意してください。
日本語に対応したアプリケーションは、Ports Collection の
japanese ディレクトリにあるかもしれません。
ブラウザ
ブラウザ
web
&os; では Web ブラウザは事前にインストールされていません。
そのかわり、Ports Collection の www
カテゴリには数多くの Web ブラウザ が用意されており、
多くのプログラムを packages からインストールしたり、
Ports Collection からコンパイルできます。
KDE や
GNOME デスクトップ環境には、
それぞれ HTML ブラウザが用意されています。
これらのデスクトップ環境を設定するための情報については
を参照してください。
軽量なブラウザには、
www/dillo2, www/links, および
www/w3m
といったものがあります。
この節では、広く使われている以下の web
ブラウザのインストール方法について説明します。
もし、アプリケーションがリソースを大量に消費したり、
ports からのコンパイルに時間がかかったり、
他の ports に大きく依存する場合には、そのことについても触れます。
アプリケーション名
必要なリソース
port からのインストール
備考
Firefox
中
重
&os;, &linux;
および地域化されたバージョンを利用できます。
Opera
少
軽
&os; と &linux; 版を利用できます。
Konqueror
中
重
KDE
ライブラリを必要とします。
Chromium
中
重
Gtk+ を必要とします。
Firefox
Firefox
Firefox は、
&os; に完全に対応したオープンソースのブラウザです。
標準に準拠した HTML 表示エンジン、タブブラウジング、ポップアップブロック、
拡張性、高い安全性などが特徴です。
Firefox は Mozilla
のコードベースから派生したブラウザです。
最新の Firefox の package
をインストールするには以下のように入力してください。
&prompt.root; pkg install firefox
Firefox 延長サポート版
(ESR: Extended Support Release) を利用したい場合には、
かわりに以下のように入力してください。
&prompt.root; pkg install firefox-esr
ローカライズ版は、www/firefox-i18n
および www/firefox-esr-i18n
から利用できます。
かわりにソースコードから希望の firefox
をコンパイルすることもできます。
この例では www/firefox をビルドしますが、
firefox の部分は、
インストールする ESR やローカライズに置き換えることもできます。
&prompt.root; cd /usr/ports/www/firefox
&prompt.root; make install clean
Firefox と &java; プラグイン
Firefox をインストールしただけでは、
&java; には対応していません。
java/icedtea-web は、
Java アプレットを実行するための、
フリーソフトの web ブラウザのプラグインです。
package からインストールできます。port からコンパイルするには、
以下のようにしてください。
&prompt.root; cd /usr/ports/java/icedtea-web
&prompt.root; make install clean
ports をコンパイルする際のコンフィグレーションオプションは、
デフォルトのままにしてください。
インストールしたら、ブラウザを起動し、ロケーションバーに
about:plugins と入力して
Enter を押してください。
インストールされているプラグイン一覧のページが表示されます。
&java;
プラグインが一覧に追加されているでしょう。
プラグインが一覧に追加されていない場合には、
ユーザごとに以下のコマンドを実行し、ブラウザを再起動してください。
&prompt.user; ln -s /usr/local/lib/IcedTeaPlugin.so \
$HOME/.mozilla/plugins/
Firefox と &adobe; &flash; プラグイン
Flash
&os; 用の &adobe; &flash; プラグインは提供されていませんが、
&linux;
版のプラグインを実行するためのソフトウェア wrapper を利用できます。
この wrapper は、&realplayer;
プラグインといった他のブラウザのプラグインにも対応しています。
プラグインをインストールして有効にするには、
以下を実行してください。
port から www/nspluginwrapper
をインストールしてください。
ライセンスの制限のため package は利用できません。
この port は、emulators/linux_base-c6
を必要とします。
port から www/linux-c6-flashplugin11
をインストールしてください。
ライセンスの制限により、package は利用できません。
プラグインを最初に使う前に、
ユーザごとに以下を実行しておく必要があります。
&prompt.user; nspluginwrapper -v -a -i
プラグインの port がアップデートされ、
再インストールされた際には、
各ユーザは以下を実行する必要があります。
&prompt.user; nspluginwrapper -v -a -u
ブラウザを起動し、ロケーションバーに
about:plugins と入力して
Enter を押してください。
現在利用可能なプラグインの一覧が表示されます。
Firefox と Swfdec &flash; プラグイン
Swfdec は &flash;
アニメーションのデコーダーおよびレンダラーです。
Swfdec-Mozilla は、
Firefox ブラウザにおいて
SWF ファイルを実行するためのプラグインで、
Swfdec ライブラリを利用しています。
package をインストールするには、以下を実行してください。
&prompt.root; pkg install swfdec-plugin
package を利用できない場合は、Ports Collection
からコンパイルしてインストールしてください。
&prompt.root; cd /usr/ports/www/swfdec-plugin
&prompt.root; make install clean
その後、ブラウザを再起動してプラグインを有効にしてください。
Opera
Opera
Opera は、
機能満載で、標準規格に準拠したブラウザで、
軽量で高速です。
メールおよびニュースリーダや、IRC クライアント、
RSS/Atom フィードリーダ、その他いろいろなものが組み込まれています。
&os; ネイティブ版と、&linux;
バイナリ互換機能によって動作するバージョンを利用できます。
以下のコマンドは、&os; 版の Opera
package をインストールします。
&linux; 版をインストールするには、
opera を linux-opera
に置き換えてください。
&prompt.root; pkg install opera
あるいは Ports Collection からインストールしてください。
以下のコマンドで、ネイティブ版がインストールされます。
&prompt.root; cd /usr/ports/www/opera
&prompt.root; make install clean
&linux; 版の Opera
をインストールするには、opera を
linux-opera に置き換えてください。
&adobe; &flash; プラグインをインストールするには、
まず www/linux-c6-flashplugin11
port をコンパイルしてください。
ライセンスの制限により package は利用できません。
その後、www/opera-linuxplugins
をインストールしてください。
以下の例では、両方のアプリケーションを
ports からコンパイルします。
&prompt.root; cd /usr/ports/www/linux-c6-flashplugin11
&prompt.root; make install clean
&prompt.root; cd /usr/ports/www/opera-linuxplugins
&prompt.root; make install clean
インストールが終了したら、
プラグインがインストールされたかどうかをブラウザを起動して確認してください。
ロケーションバーに about:plugins と入力して
Enter を押してください。
現在利用可能なプラグインの一覧が表示されます。
&java; プラグインを追加するには、
に書かれている手順に従ってください。
Konqueror
Konqueror
Konqueror はブラウザであると同時に、
ファイルマネージャおよびマルチメディアビューアの役割も果たします。
x11/kde4-baseapps package または
port に含まれています。
Konqueror は、KHTML とともに、WebKit
にも対応しています。WebKit は Chromium
など最近のブラウザの多くで採用されているレンダリングエンジンです。
&os; の Konqueror で WebKit
を使うには、www/kwebkitpart package または
port をインストールしてください。
以下の例では、port をコンパイルします。
&prompt.root; cd /usr/ports/www/kwebkitpart
&prompt.root; make install clean
Konqueror で、WebKit を有効にするには、
Settings
, Configure Konqueror
をクリックしてください。
General
の設定ページにおいて、
Default web browser engine
の隣の
ドロップダウンメニューをクリックし、WebKit
を KHTML
に変更してください。
Konqueror は
&flash; にも対応しています。
Konqueror に
&flash;
を導入するための How To
ガイドが http://freebsd.kde.org/howtos/konqueror-flash.php
にあります。
Chromium
Chromium
Chromium は、
オープンソースのブラウザのプロジェクトで、
より安全かつより高速、
より安定したウェブブラウジングを目指しています。
Chromium は、タブブラウジング、
ポップアップブロック、拡張機能などの機能を持っています。
Chromium は、Google Chrome
ウェブブラウザがベースとしているオープンソースのプロジェクトです。
Chromium は、
以下のように入力することで package からインストールできます。
&prompt.root; pkg install chromium
または、Ports Collection を用いて
ソースから Chromium
をコンパイルしてインストールできます。
&prompt.root; cd /usr/ports/www/chromium
&prompt.root; make install clean
Chromium の実行可能ファイルは、
/usr/local/bin/chrome です。
/usr/local/bin/chromium ではありません。
-
- Chromium と &java; プラグイン
+
+ Chromium と &java; プラグイン
- Chromium をインストールしただけでは、
- &java; には対応していません。
- &java; プラグインをインストールするには、
-
- に書かれている手順に従ってください。
+ Chromium をインストールしただけでは、
+ &java; には対応していません。
+ &java; プラグインをインストールするには、
+
+ に書かれている手順に従ってください。
- &java; のサポートをインストールしたら、
- Chromium を起動し、アドレスバーに、
- about:plugins と入力してください。
- インストールされているプラグインの一覧に
- IcedTea-Web が追加されているはずです。
+ &java; のサポートをインストールしたら、
+ Chromium を起動し、アドレスバーに、
+ about:plugins と入力してください。
+ インストールされているプラグインの一覧に
+ IcedTea-Web が追加されているはずです。
- Chromium
- に IcedTea-Web プラグインが追加されていない場合には、
- 以下のコマンドを実行し、ブラウザを再起動してください。
+ Chromium
+ に IcedTea-Web プラグインが追加されていない場合には、
+ 以下のコマンドを実行し、ブラウザを再起動してください。
- &prompt.root; mkdir -p /usr/local/share/chromium/plugins
+ &prompt.root; mkdir -p /usr/local/share/chromium/plugins
&prompt.root; ln -s /usr/local/lib/IcedTeaPlugin.so \
/usr/local/share/chromium/plugins/
Chromium と &adobe; &flash; プラグイン
Chromium と &adobe; &flash;
の設定は、
に書かれている手順と同じです。
Chromium
は、他のブラウザのプラグインを用いることができるので、
追加の設定は必要ありません。
生産的なアプリケーション
生産的なアプリケーションということになると、
新しいユーザはしばしばオフィススイートや、
使いやすい文書作成ソフトウェアを求めるでしょう。
デフォルトの生産的なアプリケーションはありませんが、
KDE のような
デスクトップ環境
はオフィススイートを提供しています。
インストールされているウィンドウマネージャにかかわらず、&os; では、
いくつものオフィススイート、
グラフィカルな文書作成ソフトウェアを利用できます。
この節では、
以下の人気のある生産的なソフトウェアのインストール方法について説明します。
もし、アプリケーションがリソースを大量に消費したり、
ports からのコンパイルに時間がかかったり、
もしくは他の ports に大きく依存する場合には、
そのことについても触れます。
アプリケーション名
必要なリソース
port からのインストール
実行に必要となる主な環境
Calligra
少
重
KDE
AbiWord
少
軽
Gtk+ または
GNOME
Gimp
少
重
Gtk+
Apache
OpenOffice
多
莫大
&jdk; および
Mozilla
LibreOffice
やや多
莫大
Gtk+ または
KDE/
GNOME または
&jdk;
Calligra
Calligra
オフィススイート
Calligra
KDE デスクトップには、
KDE
環境以外でも利用可能なオフィススイートがあります。
Calligra には、他のオフィススイートと同様に、
標準的なアプリケーションが含まれています。
Words は文書作成ソフトウェア、
Sheets は表計算ソフトウェア、
Stage
はプレゼンテーションソフトウェア、そして
Karbon は図形描画ソフトウェアです。
&os; では package または port から
editors/calligra をインストール出来ます。
package からインストールするには次のようにします。
&prompt.root; pkg install calligra
package を入手できない場合は、かわりに Ports Collection
を利用してください。
&prompt.root; cd /usr/ports/editors/calligra
&prompt.root; make install clean
AbiWord
AbiWord
AbiWord
は、µsoft; Word
のような見た目や操作感を持つフリーの文書作成ソフトウェアです。
速く、多くの機能を持ち、ユーザフレンドリです。
AbiWord は、
µsoft; .rtf
のような独自仕様を含む多くの形式のファイルを読み書きできます。
AbiWord package
をインストールするには、以下のようにしてください。
&prompt.root; pkg install abiword
package を入手できない場合は、
Ports Collection からコンパイルしてください。
&prompt.root; cd /usr/ports/editors/abiword
&prompt.root; make install clean
GIMP
GIMP
画像を描画したり写真を修正することに関して、
GIMP
は洗練された編集プログラムです。
単純にお絵かきソフトウェアとして使うこともできますし、
高品質な写真の加工ツールとしても使えます。
多くのプラグインに対応しており、
スクリプトインタフェースを特徴としています。
GIMP
はさまざまな形式のファイルを読み書きでき、
スキャナやタブレットとのインタフェースにも対応しています。
package をインストールするには、以下のようにしてください。
&prompt.root; pkg install gimp
もしくは、Ports Collection を利用してください。
&prompt.root; cd /usr/ports/graphics/gimp
&prompt.root; make install clean
Ports Collection の graphics カテゴリ (freebsd.org/ja/ports/graphics.html)
には、GIMP に関連したプラグイン、
ヘルプファイルおよびユーザマニュアルなどがあります。
Apache OpenOffice
Apache OpenOffice
オフィススイート
Apache OpenOffice
Apache OpenOffice は、
Apache Software Foundation
のインキュベータプロジェクトとして開発が行われているオープンソースのオフィススイートです。
Apache OpenOffice
は、完全なオフィススイートに必須のアプリケーション
(文書作成ソフトウェア、表計算ソフトウェア、
プレゼンテーションソフトウェア、そして図形描画ソフトウェア)
をひととおり揃えています。
ユーザインタフェースは他のオフィススイートと似ており、
広く用いられているさまざまな形式のファイルを読み書きできます。
多くの言語で利用でき、インタフェース、スペルチェッカ、
辞書は国際化されています。
Apache OpenOffice
の文書作成ソフトウェアは、ネイティブの XML
ファイル形式を採用することでポータビリティや柔軟性を高めています。
表計算ソフトウェアにはマクロ機能があり、
外部データベースと接続することもできます。
Apache OpenOffice は、
&windows;, &solaris;, &linux;, &os; および &macos; X
において安定してネイティブに動作しています。
Apache OpenOffice
についてのより詳しい情報は、
openoffice.org
をご覧ください。
また、porting.openoffice.org/freebsd/
から、&os; 特有の情報を参照してください。
Apache OpenOffice package
をインストールするには、以下のように入力してください。
&prompt.root; pkg install apache-openoffice
package をインストールしたら、以下のコマンドを入力して
Apache OpenOffice を起動してください。
&prompt.user; openoffice-X.Y.Z
ここで X.Y.Z は、
インストールされている
Apache OpenOffice のバージョン番号です。
Apache OpenOffice
の初回起動時に、いくつかの質問が行われ、
ユーザのホームディレクトリに .openoffice.org
フォルダが作成されます。
希望の Apache OpenOffice の packages
を利用できない場合には、port を利用する方法もあります。
しかしながら、コンパイルには大きなディスクスペースと、
本当にかなり長い時間を必要とします。
&prompt.root; cd /usr/ports/editors/openoffice-4
&prompt.root; make install clean
地域化されたバージョンをビルドするには、
上記のコマンドの代わりに以下を実行して下さい。
&prompt.root; make LOCALIZED_LANG=your_language install clean
your_language
を正しい言語 ISO コードに置き換えてください。
サポートされている言語コードは、同じ port ディレクトリにある
files/Makefile.localized
に書かれています。
LibreOffice
LibreOffice
オフィススイート
LibreOffice
LibreOffice は、documentfoundation.org
が開発しているフリーソフトウェアのオフィススイートです。
他のメジャーなオフィススイートと互換性があり、
さまざまなプラットフォームで利用できます。
Apache OpenOffice.org
からの新しいフォークで、
完全なオフィススイートに必須のアプリケーション
(文書作成ソフトウェア、表計算ソフトウェア、
プレゼンテーションソフトウェア、図形描画ソフトウェア、
データベース管理ソフトウェア、数式エディタ) をすべて揃えています。
多くの言語で利用でき、
インタフェース、スペルチェッカ、辞書は国際化されています。
LibreOffice
の文書作成ソフトウェアは、
ネイティブのファイル形式に XML を採用することで
ポータビリティや柔軟性を高めています。
表計算ソフトウェアにはマクロ機能があり、
外部データベースと接続することもできます。
LibreOffice は、
&windows;, &solaris;, &linux;, &os;, &macos; X
において安定してネイティブに動作しています。
LibreOffice
についての詳しい情報は、libreoffice.org
をご覧ください。
英語版の LibreOffice package
をインストールするには、以下のように入力してください。
&prompt.root; pkg install libreoffice
Ports Collection の edtors カテゴリ (freebsd.org/ja/ports/editors.html)
カテゴリには、地域化された LibreOffice
が用意されています。
地域化された package をインストールするには、
libreoffice を地域化された
package 名に置き換えてください。
package をインストールしたら、以下のコマンドで
LibreOffice を起動してください。
&prompt.user; libreoffice
初回起動時には、いくつかの質問が行われ、
ユーザのホームディレクトリに
.libreoffice フォルダが作成されます。
希望の LibreOffice の packages
を利用できない場合には、port からコンパイルする方法もあります。
しかしながら、コンパイルには大きなディスクスペースと、
本当にかなり長い時間を必要とします。
以下の例では、英語版をコンパイルします。
&prompt.root; cd /usr/ports/editors/libreoffice
&prompt.root; make install clean
地域化されたバージョンをビルドしたいのなら、
希望の言語の port ディレクトリに cd
コマンドで移動してください。
対応している言語は、Ports Collection の editors カテゴリ (freebsd.org/ja/ports/editors.html)
にあります。
ドキュメントビューア
&unix; の出現以降、
いくつかの新しい文書形式が広く使われるようになりました。
基本システムには、それらの文書が要求するビューアがないかもしれません。
この節ではそれらのドキュメントビューアのインストール方法について説明します。
アプリケーション名
必要なリソース
port からのインストール
実行に必要になる主な環境
Xpdf
少
軽
FreeType
gv
少
軽
Xaw3d
GQview
少
軽
Gtk+ または
GNOME
ePDFView
少
軽
Gtk+ または
GNOME
Okular
少
重
KDE
Xpdf
Xpdf
PDF
ビューア
&os; 向けの軽い PDF ビューアを使いたいのなら
Xpdf
を試してみてください。
これは少ないリソースで動作するビューアで、軽くて効率的です。
標準の X フォントを利用し、
他の X ツールキットを必要としません。
Xpdf の
package をインストールするには次のコマンドを入力してください。
&prompt.root; pkg install xpdf
package を入手できない場合は、
Ports Collection を利用してください。
&prompt.root; cd /usr/ports/graphics/xpdf
&prompt.root; make install clean
インストールが完了したら xpdf
を起動してください。
メニューを表示するにはマウスの右ボタンを押してください。
gv
gv
PDF
ビューア
PostScript
ビューア
gv
は &postscript; と PDF のビューアです。これは
ghostview をベースとしていますが、
Xaw3d
ウィジットツールキットによってより良い外観になっています。
gv は向きや用紙のサイズ、
拡大縮小、アンチエイリアスなどたくさんの設定可能な機能を持っています。
ほとんどすべての操作をキーボードかマウスのどちらかだけで行なうことができます。
package から gv
をインストールするには次のようにします。
&prompt.root; pkg install gv
package を利用できない場合には、Ports Collection
を使ってください。
&prompt.root; cd /usr/ports/print/gv
&prompt.root; make install clean
GQview
GQview
GQview
は画像管理ソフトウェアです。
クリックひとつで画像ファイルを開いたり、外部エディタを起動したり、
サムネイル画像を作成できます。
また、スライドショーや基本的なファイル操作機能も備えており、
画像のコレクションの管理や、
重複したファイルを見つけることが簡単にできます。
GQview は全画面表示、
および国際化にも対応しています。
GQview
package をインストールするには次のコマンドを入力してください。
&prompt.root; pkg install gqview
package を入手できない場合は、
Ports Collection を利用してください。
&prompt.root; cd /usr/ports/graphics/gqview
&prompt.root; make install clean
ePDFView
ePDFView
PDF
viewing
ePDFView は軽量な
PDF ドキュメントビューアです。
このビューアは、
Gtk+ および
Poppler ライブラリのみを使います。
このソフトウェアは、現在開発中ですが、ほぼすべての
PDF ファイル (暗号化されたものを含む)
を開くことが可能で、ドキュメントのコピーを保存でき、
CUPS を用いた印刷にも対応しています。
package から ePDFView
をインストールするには以下のようにしてください。
&prompt.root; pkg install epdfview
package が利用できないようでしたら、
Ports Collection を使ってインストールしてください。
&prompt.root; cd /usr/ports/graphics/epdfview
&prompt.root; make install clean
Okular
Okular
PDF
viewing
Okular は、
KDE の KPDF
をベースとした一般的なドキュメントビューアです。
このビューアは、PDF, &postscript;, DjVu,
CHM, XPS, および
ePub といった、多くの形式のファイルを開くことができます。
package で Okular
をインストールするには、以下のようにしてください。
&prompt.root; pkg install okular
package が利用できないようでしたら、
Ports Collection を使ってインストールしてください。
&prompt.root; cd /usr/ports/graphics/okular
&prompt.root; make install clean
財務管理ソフトウェア
&os; のデスクトップで個人的な財務管理ができるように、
強力で簡単に使えるアプリケーションが用意されています。
それらのアプリケーションの中には
Quicken
や Excel
などの広く行き渡った形式のファイルと互換性があるものもあります。
この節では次のアプリケーションについて説明します。
アプリケーション名
必要なリソース
port からのインストール
実行に必要になる主な環境
GnuCash
少
重
GNOME
Gnumeric
少
重
GNOME
KMyMoney
少
重
KDE
GnuCash
GnuCash
GnuCash は、
GNOME の一部で、
使いやすくかつ強力なアプリケーションとしてエンドユーザに提供されています。
GnuCash を使えば、
収入や支出、銀行口座、あるいは株を管理できます。
直観的なインタフェースを特徴としていますが、
高度な機能も提供しています。
GnuCash は洗練された登録機能、
階層構造の勘定システム、多くのキーボードショートカット、
自動補完機能を提供しています。
単一のトランザクションをより小さな要素に分解できます。
GnuCash は、
Quicken
の QIF ファイルの読み込みやマージができます。
また、国際的な日付および通貨形式も扱えます。
GnuCash package
をインストールするには次のようにしてください。
&prompt.root; pkg install gnucash
package が手に入らなければ、Ports Collection
を使ってください。
&prompt.root; cd /usr/ports/finance/gnucash
&prompt.root; make install clean
Gnumeric
Gnumeric
表計算ソフトウェア
Gnumeric
Gnumeric は、
GNOME
コミュニティによって開発されている表計算ソフトウェアです。
セルの書式に従ってユーザの入力を自動的に推測する便利な機能や、
多くのシーケンスに対する自動補完機能があります。
Excel,
Lotus 1-2-3,
Quattro Pro
といった広く行き渡っている多くの形式のファイルを読みこめます。
多くの関数を内蔵しており、
数値、通貨、日付、時間などのよく使うセルの書式が利用できます。
Gnumeric package
をインストールするには次のように入力してください。
&prompt.root; pkg install gnumeric
package が手に入らなければ、Ports Collection
を使ってください。
&prompt.root; cd /usr/ports/math/gnumeric
&prompt.root; make install clean
KMyMoney
KMyMoney
表計算ソフトウェア
KMyMoney
KMyMoney
は、KDE
コミュニティが作成している個人用財務管理アプリケーションです。
KMyMoney は、
商用の個人用財務管理ソフトウェアに見られる重要な機能を提供することを目指しています。
また、使いやすい複式簿記機能も特徴です。
KMyMoney は標準の
Quicken QIF ファイルをインポート可能で、
投資履歴や複数通貨の取扱い、財政状況のレポートを提供します。
package から KMyMoney
をインストールするには次のようにします。
&prompt.root; pkg install kmymoney-kde4
package が手に入らない場合は、
Ports Collection を使ってください。
&prompt.root; cd /usr/ports/finance/kmymoney-kde4
&prompt.root; make install clean
Index: head/ja_JP.eucJP/books/handbook/introduction/chapter.xml
===================================================================
--- head/ja_JP.eucJP/books/handbook/introduction/chapter.xml (revision 48545)
+++ head/ja_JP.eucJP/books/handbook/introduction/chapter.xml (revision 48546)
@@ -1,1345 +1,1345 @@
はじめに
Jim
Mock
再構成、部分的な改訂:
この章では
&os; に興味を持っていただきありがとうございます!
この章では &os; の歴史、目標、開発モデルなど、
&os; プロジェクトに関するさまざまな事柄を扱います。
この章に書かれている話題は、次のようなものです。
&os; とその他のオペレーティングシステムとの違い
&os; プロジェクトの歴史
&os; プロジェクトの目標
&os; オープンソース開発モデルの基本的な考え方
そして、&os;
という名前の由来について
&os; へようこそ!
4.4BSD-Lite
&os; は、4.4BSD-Lite
から派生したオペレーティングシステムで、
Intel (x86 および &itanium;), AMD64,
Sun &ultrasparc; コンピュータに対応しています。
他のアーキテクチャに対する移植も進行中です。
&os; の歴史や、
現在のリリースについても読むことができます。
プロジェクトへの何らかの貢献 (ソースコード、ハードウェア、
資金の提供など) について興味があれば、
&os;
への貢献をご覧ください。
&os; で何ができるの?
&os; には多くの注目すべき機能があります。
例を挙げれば以下のようになります:
優先度を動的に調節する機能を備えることで
アプリケーションとユーザとの間で円滑かつ公平な
コンピュータ資源共有を実現し、
特に高い負荷にも耐えることができる堅牢さを備えた
プリエンプティブマルチタスキング
プリエンプティブマルチタスキング
。
多くの人々が 1 つの &os;
システムをさまざまな目的で同時に使うことを可能にする
マルチユーザ機能
マルチユーザ機能
。
これは例えば、プリンタやテープデバイスといったシステムの周辺機器が、
そのシステムを利用する全てのユーザだけでなく
ネットワーク経由においても自然な形で共有され、
さらに重要なシステム資源の使い過ぎを防ぐために
個々の資源に対する制限がユーザ単位、
グループ単位で設定できる、というようなことを意味しています。
SCTP や DHCP, NFS, NIS, PPP, SLIP, IPsec, IPv6
といった業界標準規格のサポートを含んだ堅固な
TCP/IP ネットワーキング
TCP/IP ネットワーキング
。これによって、&os;
マシンが商用サーバと同じように相互に運用でき、
NFS (リモートファイルアクセス) や、
電子メールサービスのような極めて重要な機能を提供します。
また、WWW や FTP, ルーティング、ファイアウォール (セキュリティ)
サービスを用いてインターネットと接続できます。
アプリケーション (あるいはユーザ) がお互いに干渉できない
ようにするメモリ保護
メモリ保護
機能。
アプリケーションがクラッシュしても、
どのような場合でも他のアプリケーションには影響を与えません。
業界標準である X Window
システム
X Window System
(X11R7) は、
すべてのコンピュータに対しグラフィカルユーザインタフェース (GUI)
を完全なソースコードと共に提供します。
バイナリ互換性
Linux
バイナリ互換性
SCO
バイナリ互換性
SVR4
バイナリ互換性
BSD/OS
バイナリ互換性
NetBSD
Linux や SCO, SVR4, BSDI, NetBSD
用に作られた多くのプログラムとの
バイナリ互換性。
何千ものすぐに実行可能な
アプリケーションが &os; の ports や
packages コレクションで利用可能です。
ここに用意されているものはネットを探し回る必要がありません
インターネット上で入手可能な、
移植が容易な
何千ものアプリケーションを追加できます。&os;
は最も評判のよい商用の &unix;
システムとソースコードレベルで互換性があります。
このため、ほとんどのアプリケーションは、
もしあったとしてもほんの少しの変更でコンパイルすることができます。
デマンドページング仮想メモリ
仮想メモリ
とそれに 付随の VM/buffer キャッシュ
の設計は、
多くのメモリを要求するアプリケーションに対して
効率よくメモリを与えるようにする一方で、
他のユーザに対しても対話的な応答を維持します。
複数の CPU を搭載したマシンにおける
SMP
対称型マルチプロセッシング (SMP)
のサポート。
コンパイラ
C
コンパイラ
C++
完全な C や C++
の開発ツール。進んだ研究や開発のための多くの他の言語も
ports や packages コレクションで提供されています。
システム全体のソースコード
ソースコード
が提供されているので、
要求に合わせて環境を最大限に適合させることができます。
真のオープンシステムが利用できるのですから、
所有権のある解決方法に締めつけられ、
ベンダのなすがままになる必要はありません。
膨大な量の
オンラインドキュメント。
もう書ききれません!
&os; はカリフォルニア大学バークレイ校の Computer Systems
Research Group (CSRG)
Computer Systems Research Group (CSRG)
による 4.4BSD-Lite
4.4BSD-Lite
リリースを基にしており、
BSD システムの開発の優れた伝統を守り続けています。
CSRG による素晴らしい活動に加えて、
&os; プロジェクトは何千時間もの時間を注ぎ込んで、
実際の使用の場において最大の性能と信頼性を
発揮するためにシステムのチューニングをおこなっています。
&os; は、商用のオペレーティングシステムと同等の性能、信頼性を、
他では実現されていない数多くの最新の機能と共に提供しています。
あなたの思いつく限りのアプリケーションは、何でも &os;
で実行できます。ソフトウェア開発からファクトリオートメーション、
在庫制御から遠く離れた人工衛星のアンテナの方向調整まで;
商用 &unix; 製品でできることは、&os; でも十分にできるのです!
また、&os; は世界中の研究センターや大学によって開発される
文字通り何千もの高品質で、たいていはほとんど無料で利用できる
アプリケーションによる恩恵を得ることができます。
商用のアプリケーションも提供されており、
日々増え続けています。
&os; のソースコードは広く提供されているので、
システムも特別なアプリケーションやプロジェクトに合わせて、
いくらでもカスタマイズすることができます。
これは有名な商業ベンダから出ているほとんどのオペレーティング
システムでは不可能なことです。以下に現在 &os; を
使っている人々のアプリケーションの例をいくつか上げます:
インターネットサービス:
&os; に組み込まれている 頑強な TCP/IP
ネットワーキング機能は次のようなさまざまな
インターネットサービスの理想的なプラットフォームになります:
World Wide Web サーバ
web サーバ
(標準、もしくは安全な [SSL])
IPv4 および IPv6 ルーティング
ファイアウォール
ファイアウォール
と NAT
NAT
(IP マスカレード
) ゲートウェイ
FTP サーバ
FTP サーバ
電子メール
email
電子メールサーバ
さらにいろいろ…
教育:
あなたは、計算機科学または関連分野の工学を専攻する学生さんですか?
オペレーティングシステムやコンピュータアーキテクチャ、
ネットワークについて学習するなら、
実際に &os; のソースコードを読んで、
それがどのように動作するのかを学ぶのが一番よい方法です。
また、無料で利用できる CAD や数学、
グラフィックデザインのパッケージがいくつもあるので、
コンピュータに関わる主要な目的が、
他のことをすることにある方にも、
大いに役立ちます。
研究:
システム全体のソースコードが利用できるため、
&os; はオペレーティングシステムの研究だけでなく、
計算機科学の他の部門においても優れたプラットフォームです。
自由に利用できる &os; の特長は、オープンフォーラムで
議論される特別なライセンスの同意や制限について心配することなく、
離れたグループでもアイディアや開発の共有による共同研究を可能にします。
ネットワーキング:
新しいルータ
ルータ
が必要? ネームサーバ (DNS)
DNS サーバ
は?
内部のネットワークを人々から守るファイアウォールは?
&os; はすみに眠っている使われていない PC を簡単に
洗練されたパケットフィルタリング機能を持つ高級なルータに
変えることができます。
組み込み: &os; は、
組み込みシステムを構築する優れたプラットフォームとなります。
embedded
&arm;, &mips; および &powerpc;
プラットフォームへのサポートとともに、
強固なネットワークスタック、最新の機能および
寛容なBSD ライセンス
により、
&os; は、組み込みルータ、
ファイアウォールおよび他のデバイスを構築する優れた基盤となります。
X Window System
GNOME
KDE
デスクトップ:
&os; は、自由に利用できる X11 サーバを使うことによって、
安価なデスクトップとなります。
&os; では、標準的な GNOME および
KDE
グラフィカルユーザインタフェースを含む、
数多くのオープンソースのデスクトップ環境を選択できます。
&os; は、
中央のサーバからディスクレス
でもブート可能であり、
個々のワークステーションを安価で、
容易に管理することさえ可能にします。
ソフトウェア開発:
基本的な &os; システムには、完全な
C/C++
Compiler
コンパイラやデバッガスーツを含む完全な開発ツールがついてきます。
他の多くの言語へのサポートも ports および package
コレクションから利用できます。
&os; は、無料でダウンロードできます。
また、CD-ROM または DVD でも入手可能です。
詳しくは をご覧ください。
&os; はどこに使われていますか?
ユーザ
&os; を利用している大規模サイト
&os; は、
先進的な機能、高いセキュリティ、および定期的なリリースサイクル、
そして寛容なライセンスにより、
多くの商用およびオープンソースのアプライアンス、
デバイスおよび製品を構築するプラットフォームとして利用されています。
世界最大規模の多くの IT 会社が &os; を使っています。
Apache
Apache
- Apache ソフトウェア財団は、
1.4 百万回を超えるコミットというおそらく世界で最も大規模な
SVN リポジトリを含む、数多くの公式のインフラストラクチャで
&os; を使っています。
Apple
Apple
- OS X は、
&os; から、ネットワークスタック、仮想ファイルシステム、
そして多くのユーザランドコンポーネントを取り入れています。
Apple iOS も &os; から取り入れた要素を含んでいます。
Cisco
Cisco
- IronPort
ネットワークセキュリティおよびアンチスパムアプライアンスは、
改造された &os; カーネルで動いています。
Citrix
Citrix
- NetScaler の一連のセキュリティアプライアンスは、
&os; シェルとともに 4-7 レイヤのロードバランス、
コンテントキャシュ、アプリケーションファイアウォール、
セキュリティ VPN
およびモバイルクライド・ネットワークアクセスを提供します。
Dell
KACE
Dell KACE
- KACE システム管理アプライアンスでは、
&os; が用いられています。信頼性、
スケーラビリティおよび継続的な開発をサポートしているコミュニティなどが評価され採用されています。
Experts
Exchange
Experts Exchange
- 公開されているすべてのウェブサーバで
&os; が動いています。
開発と試験のための独立した環境では、
オーバーヘッドのある仮想化ではなく、
jail が幅広く用いられています。
Isilon
Isilon
- Isilon
社のエンタープライズストレージアプライアンスは、&os; ベースです。
寛大な &os; ライセンスのおかげで、Isilon は、
彼らの知的財産物をカーネルに統合することができるため、
オペレーティングシステムではなく、
製品そのものに焦点を当てた開発が可能となっています。
iXsystems
iXsystems
- 統合ストレージアプライアンスの
TrueNAS シリーズは &os; ベースです。
商用の製品に加え、iXsystems は、オープンソースプロジェクトの
PC-BSD および FreeNAS の開発も運営しています。
Juniper
Juniper
- Juniper のすべてのネットワークギア
(ルータ、スイッチ、セキュリティおよびネットワークアプライアンス)
を動かしている JunOS オペレーティングシステムは、
&os; ベースです。
Juniper は、&os;
プロジェクトと商用製品を提供しているベンダとの間で協力関係が成功している数多くのベンダのひとつです。
将来 &os; の新しい機能を JunOS
へと統合する際の複雑さを減らすため、
Juniper で作成された改良点は、&os; に取り込まれています。
McAfee
McAfee
- Sidewinder などの
McAfee エンタープライズファイアウォール製品のベースである
SecurOS は &os; ベースです。
NetApp
NetApp
- ストレージアプライアンスの
Data ONTAP GX シリーズは、&os; ベースです。
NetApp は、新しい BSD ライセンスのハイパーバイザである
bhyve などの数多くの機能を &os;
プロジェクトに還元しています。
Netflix
Netflix
- Netflix が顧客へのストリームムービーに使用している
OpenConnect アプライアンスは、&os; ベースです。
Netflix は、コードベースに対し多大な貢献を行っており、
&os; のメインラインからの差分がゼロになるように作業を行っています。
Netflix OpenConnect アプライアンスは、
北米の全インターネットトラフィックの 32%
の配送を受け持っています。
Sandvine
Sandvine
- Sandvine は、
ハイパフォーマンスでリアルタイムのネットワークプロセッシングプラットフォームのベースに
&os; を使用しています。このプラットフォームは、
彼らのインテリジェントネットワークポリシーコントロール製品を構成しています。
Sony
Sony
- PlayStation 4 のゲームコンソールは、
&os; の改良版が動いています。
Sophos
Sophos
- Sophos Email
アプライアンス製品は、強化された &os; がベースです。
インバウンドメールに対してスパムやウィルススキャンを行う一方で、
アウトバウンドメールがマルウェアではないか、また、
機密情報がアクシデントで漏洩してしまわないようにモニタします。
Spectra Logic
Spectra Logic
- アーカイブグレードストレージアプライアンスの
nTier シリーズは、&os; および OpenZFS が動いています。
The Weather
Channel
The Weather Channel
-
各ローカルケーブルプロバイダのヘッドエンドにインストールされていて、
ローカルの天気予報をケーブル TV ネットワークプログラムに送る
IntelliStar アプライアンスでは &os; が動いています。
Verisign
Verisign
- Verisign は .com および .net
ルートドメインレジストリおよび関連する DNS
インフラストラクチャの運用に責任を持っています。
彼らのインフラストラクチャに一般的な障害点がないように、&os;
を含むさまざまなネットワークオペレーティングシステムに信頼を寄せています。
Voxer
Voxer
- Voxer
のモバイルボイスメッセージのプラットフォームでは、
ZFS が &os; 上で動いています。
Voxer は、Solaris から派生したオペレーティングシステムから、
&os; へと移行しました。優れた文書、
幅広く活動的なコミュニティ、
そして開発者にとって好意的な環境がその理由です。
ZFS および DTrace といった決定的な機能に加え、
&os; では、
ZFS が TRIM に対応しています。
WhatsApp
WhatsApp
- WhatsApp は、サーバあたり同時に 100 万を超える
TCP 接続を扱うことのできるプラットフォームを必要とした際に、
プラットフォームとして &os; を選択しました。
サーバあたり 250 万の接続を超えるようにスケールしています。
Wheel Systems
Wheel Systems
- FUDO セキュリティアプライアンスは、
エンタープライズおよびシステムの管理者に対し、
モニタ、コントロール、レコードおよび
audit コントラクタを提供します。
ZFS, GELI,
Capsicum, HAST および auditdistd といった &os;
の最良なセキュリティ機能がベースとなっています。
また、&os;
は関連したオープンソースプロジェクトを数多く生み出しています。
BSD
Router
BSD Router
-
広く使われているエンタープライズルータの置き換えとなるような
&os; ベースのルータで、標準的な PC
ハードウェアで動作するように設計されています。
FreeNAS
FreeNAS
-
ネットワークファイルサーバアプライアンスとして使用するように設計されたカスタマイズ版の &os; です。
UFS および ZFS ファイルシステムの両方を簡単に管理できるように
python ベースのウェブインタフェースを提供しています。
NFS, SMB/CIFS, AFP, FTP および iSCSI に対応しており、
&os; jail ベースの拡張プラグインシステムも提供しています。
GhostBSD
GhostBSD
- GNOME
デスクトップ環境が搭載されたデスクトップベースの &os;
ディストリビューションです。
mfsBSD
mfsBSD
- メモリから完全に実行可能な &os;
システムのイメージを構築するためのツールキットです。
NAS4Free
NAS4Free
- PHP によるウェブインタフェースを搭載した &os;
ベースのファイルサーバのディストリビューションです。
OPNSense
OPNsense
- OPNsense は、オープンソースの使いやすく構築が簡単な
FreeBSD ベースのファイアウォールおよびルータのプラットフォームです。
OPNsense は、
高価な商用のファイアウォールや標準で利用可能なほとんどの機能を持っています。
オープンで検証可能なソースと共に、
商品が提供している豊富な機能のセットを提供します。
PC-BSD
PC-BSD
- デスクトップユーザに向けたカスタマイズ版の
&os; です。
すべてのユーザが &os; のパワーを経験できるように、
グラフィカルなユーティリティを持っています。
Windows および OS X
ユーザが楽に移行できるように設計されています。
pfSense
pfSense
- 数多くの機能および拡張 IPv6 サポートを持つ
&os; ベースのファイアウォールディストリビューションです。
ZRouter
ZRouter
- &os;
ベースの組み込みデバイス用のオープンソースのファームウェアです。
いつでも購入できるようなルータ上のプロプリエタリのファームウェアの置き換えとなるように設計されています。
&os; は、以下のサイトに代表されるような、
インターネット上で最大クラスのサイトでも利用されています。
Yahoo!
Yahoo!
Yandex
Yandex
Rambler
Rambler
Sina
Sina
Pair
Networks
Pair Networks
Sony
Japan
Sony Japan
Netcraft
Netcraft
Netflix
Netflix
NetEase
NetEase
Weathernews
Weathernews
TELEHOUSE
America
TELEHOUSE America
この他にもあります。Wikipedia にも &os;
ベースの製品のリスト がまとめられています。
&os; プロジェクトについて
以下の節では簡単な歴史やプロジェクトの目標、
開発モデルなど、普段は表にでない話題を提供しています。
&os; 小史
386BSD Patchkit
Hubbard, Jordan
Williams, Nate
Grimes, Rod
FreeBSD プロジェクト
history
&os; プロジェクトは 1993 年の始めに Unofficial
386BSD Patchkit の最後の 3 人のまとめ役によって、部分的に
patchkit から派生する形で開始されました。ここでの
3 人のまとめ役というのは、Nate Williams, Rod Grimes と、
Jordan Hubbard です。
386BSD
このプロジェクトのもともとの目標は、patchkit
という仕組みではもう十分に解決できなくなってしまった 386BSD
の数多くの問題を修正するための、386BSD
の暫定的なスナップショットを作成することでした。
こういった経緯を経ているので、
このプロジェクトの初期の頃の名前は 386BSD 0.5 や
386BSD 暫定版 (Interim) でした。
Jolitz, Bill
386BSD は、Bill Jolitz が (訳注: バークレイ Net/2
テープを基に) 作成したオペレーティングシステムです。当時の
386BSD は、ほぼ一年にわたって放っておかれていた (訳注:
作者がバグの報告を受けても何もしなかった)
というひどい状況に苦しんでいました。
作者の代わりに問題を修正し続けていた patchkit
は日を追うごとに不快なまでに膨張してしまっていました。
このような状況に対して、彼らは暫定的な
クリーンアップ
スナップショットを作成することで
Bill を手助けしようと決めました。しかし、
この計画は唐突に終了してしまいました。Bill Jolitz が、
このプロジェクトに対する受け入れ支持を取り下げることを突然決意し、
なおかつこのプロジェクトの代わりに何をするのかを一切言明しなかったのです。
Greenman, David
Walnut Creek CDROM
たとえ Bill が支持してくれないとしても、
彼ら 3 人の目標には依然としてやる価値があると考えていたため、
David Greenman が考案した名称 &os;
をプロジェクトの名前に採用し、新たなスタートを切りました。
この時点でのプロジェクトの初期目標は、すでにこのシステム
(訳注: 386BSD + Patchkit)
を使っていた利用者たちと相談して決められました。
プロジェクトが実現に向けて軌道に乗ってきたことが明確になった時点で、
Jordan は Walnut Creek CDROM
社に連絡してみました。CD-ROM を使って &os;
を配布することによって、
インターネットに容易に接続できない多くの人々が &os;
を簡単に入手できるようになると考えたからです。Walnut Creek
CDROM 社は &os; を CD
で配布するというアイデアを採用してくれたばかりか、
作業するためのマシンと高速なインターネット回線をプロジェクトに提供してくれました。
当時は海のものとも山のものともわからなかったこのプロジェクトに対して、Walnut
Creek CDROM 社が信じられないほどの信頼を寄せてくれたおかげで、
&os; は短期間のうちにここまで大きく成長したのです。
4.3BSD-Lite
Net/2
U.C. Berkeley
386BSD
Free Software
Foundation
CD-ROM による最初の配布 (そしてネットでの、
ベータ版ではない最初の一般向け配布) は &os; 1.0 で、1993 年
12 月に公開されました。これはカリフォルニア大学バークレイ校の
4.3BSD-Lite (Net/2
) を基とし、386BSD や Free
Software Foundation からも多くの部分を取り入れたものです。
これは初めて公開したものとしては十分に成功しました。続けて 1994 年
5 月に &os; 1.1 を公開し、
非常に大きな成功を収めました。
Novell
U.C. Berkeley
Net/2
AT&T
この時期、
あまり予想していなかった嵐が遠くから接近してきていました。
バークレイ Net/2 テープの法的な位置づけについて、Novell
社とカリフォルニア大学バークレイ校との間の長期にわたる
法廷論争において和解が成立したのです。和解の内容は、Net/2
のかなりの部分が 権利つき (encumbered)
コードであり、それは Novell 社の所有物である、
というバークレイ校側が譲歩したものでした。なお、Novell
社はこれらの権利を裁判が始まる少し前に AT&T
社から買収していました。
和解における譲歩の見返りにバークレイ校が得たのは、
4.4BSD-Lite が最終的に発表された時点で、
4.4BSD-Lite は権利つきではないと公式に宣言されること、
そしてすべての既存の Net/2 の利用者が 4.4BSD-Lite
の利用へと移行することが強く奨励されること、という Novell
社からの ありがたき天からの恵み
でした (訳注:
4.4BSD-Lite はその後 Novell
社のチェックを受けてから公開された)。&os; も Net/2
を利用していましたから、1994 年の 7 月の終わりまでに Net/2 ベースの
&os; の出荷を停止するように言われました。ただし、
このときの合意によって、
私たちは締め切りまでに一回だけ最後の公開をすることを許されました。
そしてそれは &os; 1.1.5.1 となりました。
それから &os; プロジェクトは、まっさらでかなり不完全な
4.4BSD-Lite を基に、文字どおり一から再度作り直すという、
難しくて大変な作業の準備を始めました。Lite
バージョンは、部分的には本当に軽くて、中身がなかったのです。
起動し、
動作できるシステムを実際に作り上げるために必要となるプログラムコードのかなりの部分がバークレイ校の
CSRG (訳注: BSDを作っているグループ) によって
(いろいろな法的要求のせいで)
削除されてしまっていたということと、4.4BSD の Intel
アーキテクチャ対応が元々かなり不完全であったということがその理由です。
この移行作業は結局 1994 年の 11 月までかかりました。
そして 12 月に &os; 2.0 として公開されました。これは、
かなり粗削りなところが残っていたにもかかわらず、
かなりの成功を収めました。そしてその後に、より信頼性が高く、
そしてインストールが簡単になった &os; 2.0.5 が 1995 年の
6 月に公開されました。
これ以降、&os; の安定性、速さや機能は改善され、
リリースが行われてきました。
長期的な開発プロジェクトは 10.X-CURRENT 開発ブランチ
(トランク) で続けられ、
10.X のスナップショットリリースは、開発の進行状況に応じて スナップショットサーバ
より継続して入手できます。
&os; プロジェクトの目標
Jordan
Hubbard
寄稿:
FreeBSD プロジェクト
目標
&os; プロジェクトの目的は、いかなる用途にも使用でき、
何ら制限のないソフトウェアを供給することです。
私たちの多くは、
コード (そしてプロジェクト) に対してかなりの投資をしてきており、
これからも多少の無駄はあっても投資を続けて行くつもりです。ただ、
他の人達にも同じような負担をするように主張しているわけではありません。
&os; に興味を持っている一人の残らず全ての人々に、
目的を限定しないでコードを提供すること。これが、
私たちの最初のそして最大の 任務
であると信じています。そうすれば、コードは可能な限り広く使われ、
最大の恩恵をもたらすことができるでしょう。これが、
私たちが熱烈に支持しているフリーソフトウェアの最も基本的な目的であると、
私は信じています。
GNU General Public License (GPL)
GNU Lesser General Public License (LGPL)
BSD Copyright
私たちのソースツリーに含まれるソースのうち、
GNU 一般公有使用許諾 (GPL) または GNU ライブラリ一般公有使用許諾 (LGPL)
に従っているものについては、多少制限が課せられています。ただし、
ソースコードへのアクセスの保証という、
一般の制限とはいわば逆の制限 (訳注1) です。
GPL ソフトウェアの商利用には、そのライセンスにある
複雑な側面が影響してくることがあります。
ですから私たちは、そうすることが合理的であると判断されたときには、
より制限の少ない、BSD
著作権表示を採用しているソフトウェアを選択するようにしています。
(訳注1) GPL では、「ソースコードを実際に受け取るか、
あるいは、希望しさえすればそれを入手することが可能であること」
を求めています。
&os; の開発モデル
浅見
賢
寄稿:
FreeBSD プロジェクト
開発モデル
&os; の開発は非常に開かれた、柔軟性のあるプロセスです。
貢献者リスト
を見ていただければわかるとおり、
&os; は文字通り世界中の何千という人々の努力によって開発されています。
&os; の開発環境は、
この何千という開発者がインターネット経由で共同作業できるようになっているのです。
新しい開発者はいつでも大歓迎ですので、&a.hackers;
にメールを送ってください。
&a.announce; もありますので、他の &os;
ユーザに自分のやっていることを宣伝したい時にはどうぞ使ってください。
あと、&os; プロジェクトとその開発プロセスについて、
どなたにも知っていていただきたいのは以下のようなことです。
SVN リポジトリ
CVS
CVS リポジトリ
Concurrent Versions System
CVS
Subversion
Subversion リポジトリ
SVN
Subversion
長年にわたり &os; のソースツリーは、
ソースコード管理用のフリーソフトウェアである
CVS
(Concurrent Versions System) によってメンテナンスされてきました。
2008 年 6 月、プロジェクトはソースコード管理のシステムを SVN
(Subversion) に移行しました。
ソースツリーの急速な増加や、
これまでに蓄積された膨大な量の履歴によって、
CVS
の持つ技術的な限界が明かになってきたためです。
ドキュメンテーションプロジェクトと
Ports Collection リポジトリも、それぞれ
2012 年 5 月と 7 月に
CVS から
SVN へと移行しました。
&os; src/ リポジトリを取得するための情報は
ソースツリーの同期 の章を、
&os; Ports Collection を取得するための詳細については
Ports Collection の利用
の章をご覧ください。
ソースツリー管理者
コミッター (committers)
コミッター
は Subversion
ツリーへの書き込み権限を持っている人、
&os; のソースに変更を加えることができる人です
(リポジトリに変更を加えるには、ソースをコントロールする
commit というコマンドを使うので、
これらの人々は英語では committers
と呼ばれます)。
もしバグを見つけたのであれば、障害報告データベース
に提出してください。
&os; メーリングリスト、IRC チャネルまたはフォーラムは、
その問題がバグかどうかを確認する助けとなりますので、
障害報告を提出する前に、
これらを使って確認してください。
FreeBSD コアチーム
&os; コアチーム
コアチーム
は
&os; プロジェクトが会社だとすると取締役会にあたるものです。
コアチームとして一番重要な役割は
&os; プロジェクトが全体としてよい方向に向かっていることを確認することです。
責任感あふれる開発者を上記のソースツリー管理者として招くこと、
また仕事上の都合などでコアチームをやめた人たちの後任を見つけることもコアチームの役割です。
現在のコアチームは &os; 開発者 (committer) の中から
2014 年 7 月に選挙によって選出されました。
コアチームを選出するための選挙は、2 年ごとに行なわれています。
忘れてほしくないのは、多くの開発者同様に、
コアチームのほとんどは &os; に対してボランティアの立場であり、
&os; プロジェクトからは何ら金銭的な支援を受けていない、
ということです。ですから、
ここでの責任
は
保証されたサポート
ではありません。
そういう意味で、上記の取締役会
という例えはあまりよくないかもしれません。むしろ、&os;
のために人生を棒に振ってしまった人の集まりといった方が正しいかも…。
その他のコントリビュータ
最後になりますが、
もっとも重要で多数をしめる開発者はフィードバックやバグフィクスをどんどん送ってくれるユーザ自身です。
&os; の開発に関わっていきたいという人は、
議論の場である &a.hackers; に参加するとよいでしょう。
&os; 関連メーリングリストに関する詳細は、
をご覧ください。
&os;
への貢献者リスト
コントリビュータ
は日に日に長くなっています。
あなたも今日、何か送ることからはじめてみませんか?
もちろん &os; に貢献するには、
コードを書くほかにもいろいろな方法があります。
助けが求められている分野については、&os; プロジェクトのウェブサイト
をご覧ください。
ひとことで言うと、&os;
の開発組織はゆるやかな同心円状になっています。
ともすると中央集権的に見えがちなこの組織は、
&os; のユーザがきちんと管理されたコードベースを
容易に追いかけられるようにデザインされているもので、
貢献したいという人を締め出す意図は全くありません!
私たちの目標は安定したオペレーティングシステムと
簡単にインストールして使うことのできる
アプリケーションを提供することです。
この方法は、それを達成するために非常にうまくはたらきます。
これから &os; の開発にたずさわろうという人に、
私たちが望むことはただ一つです。
&os; の成功を継続的なものにするために、
現在の開発者と同じような情熱を持って接してください!
サードパーティ製プログラム
&os; では基本配布セットに加え、
移植されたソフトウェア集として数千の人気の高いプログラムを提供しています。
この文書を書いている時点で &os.numports;
以上の ports (移植ソフトウェア) が存在します。
ports には http サーバから、ゲーム、言語、
エディタまでありとあらゆるものが含まれています。
ports はオリジナルソースに対する
差分
という形で表現されており、
Ports Collection 全体でも &ports.size; 程度にしかなりません。
ports をコンパイルするには、
インストールしたいと思っているプログラムのディレクトリに移動し、
make install とすると、
あとはすべてシステムがやってくれます。
どの ports もオリジナルの配布セットを動的に取ってくるので、
ディスクは構築したいと思っている
ports の分だけを準備しておけば十分です。
ほとんどの ports は、すでにコンパイルされた状態で
package
として提供されており、
ソースコードからコンパイルしたくない場合、これを使うと
(pkg install
というコマンドで) 簡単にインストールできます。
package と ports に関する詳細は、
をご覧ください。
ドキュメント
最近の &os; では、システムの最初のセットアップ時に、
インストーラ (&man.sysinstall.8; または
&man.bsdinstall.8; のどちらでも)
上で、ドキュメントを
/usr/local/share/doc/freebsd
以下にインストールすることを選択できます。
システムのインストール後でも、
に記述されている
package を使うことで、いつでもドキュメントをインストールできます。
これらのローカルにインストールされたドキュメントは、HTML
ブラウザを使って以下の URL から参照できます。
FreeBSD ハンドブック (英文オリジナル)
/usr/local/share/doc/freebsd/handbook/index.html
FreeBSD に関する FAQ (英文オリジナル)
/usr/local/share/doc/freebsd/faq/index.html
また、http://www.FreeBSD.org/
にはマスタ (かなり頻繁に更新されます) がありますので、
こちらも参照してください。
Index: head/ja_JP.eucJP/books/handbook/multimedia/chapter.xml
===================================================================
--- head/ja_JP.eucJP/books/handbook/multimedia/chapter.xml (revision 48545)
+++ head/ja_JP.eucJP/books/handbook/multimedia/chapter.xml (revision 48546)
@@ -1,1705 +1,1704 @@
マルチメディア
Ross
Lippert
編集:
この章では
&os; は数多くの種類のサウンドカードに対応しており、
&os; システムで原音に忠実な出力を楽しむことができます。
これには録音機能と、MPEG Audio Layer 3 (MP3)
や Waveform Audio File (WAV), Ogg Vorbis
などをはじめとした多くの形式の音楽の再生機能が含まれます。
加えて &os; の Ports Collection には、
録音した音楽を編集したり、音響効果を加えたり、接続された
MIDI 機器を制御するためのアプリケーションが用意されています。
&os; ではビデオファイルおよび DVD
の再生もできます。
&os; の Ports Collection には、さまざまなビデオメディアをエンコード、
変換、再生するアプリケーションが用意されています。
この章では &os; 上でサウンドカード、ビデオの再生、TV チューナカード、
スキャナを設定する方法について説明します。
また、これらのデバイスを使うためのアプリケーションについても説明します。
この章を読むと、以下のことがわかります。
&os; でのサウンドカードの設定方法
サウンドの設定に関するトラブルシューティング
MP3 およびその他の形式の音声を再生、エンコードする方法
&os; システムでのビデオ再生の準備
DVD, .mpg および
.avi ファイルを再生する方法
CD および DVD
の情報をファイルに抽出する方法
TV カードの設定方法
MythTV を &os; にインストールして設定する方法
画像スキャナの設定方法
この章を読む前に、以下のことを理解しておく必要があります。
アプリケーションのインストール方法
()
+
+ サウンドカードの設定
-
- サウンドカードの設定
-
Moses
Moore
寄稿:
+
Marc
Fonvieille
再構成:
PCI
サウンドカード
設定をはじめる前に、サウンドカードのモデル、
そのカードが使用しているチップを確認してください。
&os; は サウンドカードに幅広く対応しています。
使用しているカードが対応しているかどうか、
どの &os; ドライバを使うかについて、
ハードウェアノート
の対応オーディオデバイスの一覧を確認してください。
カーネル
設定
サウンドデバイスを使うためには、
デバイスドライバを読み込まなければいけません。
もっとも簡単な方法は &man.kldload.8;
を使ってサウンドカードのカーネルモジュールを読み込むことです。
次の例は、Intel
仕様のビルトインオーディオチップセットのドライバを読み込む例です。
&prompt.root; kldload snd_hda
このドライバを起動時に読み込むように設定するためには、
/boot/loader.conf にドライバを追加してください。
このドライバの場合は以下の行になります。
snd_hda_load="YES"
他に利用可能な読み込み可能なサウンドモジュールは
/boot/defaults/loader.conf
に記載されています。
どのドライバを利用すればいいか確かでなければ、
snd_driver
モジュールを読み込んでください。
&prompt.root; kldload snd_driver
snd_driver モジュールは、
一般に使用されるカードに対応したドライバをまとめて一度に読み込むメタドライバです。
このドライバを使用すれば、速やかに正しいドライバを探し出すことができます。
/boot/loader.conf ファイルを使用して、
すべてのサウンドドライバを読み込むこともできます。
snd_driver メタドライバの読み込み後に、
どのドライバがサウンドカードに選択されたのかを知るには、
cat /dev/sndstat と入力してください。
サウンドに対応したカスタムカーネルを設定する
この節は、
サウンドカードのドライバをカーネルへ静的に組み込もうと考えているユーザ向けです。
カーネル再構築の詳細は
を参照してください。
サウンドに対応したカスタムカーネルを使うときには、
オーディオフレームワークドライバをカーネルコンフィグレーションファイルに追加してください。
device sound
次に、サウンドカードに対応したドライバを追加します。
前節の Intel 仕様のビルトインオーディオチップセットの例では、
カスタムカーネルコンフィグレーションファイルに以下の行を追加してください。
device snd_hda
ドライバのマニュアルページを読んで、
ドライバが使用するデバイス名を調べてください。
PnP 非対応の ISA サウンドカードでは、
IRQ および I/O ポートの設定を
/boot/device.hints
に指定する必要があるかもしれません。
システムの起動時に、&man.loader.8;
はこのファイルを読み、設定情報をカーネルに渡します。
たとえば、PnP 非対応の古い Creative &soundblaster; 16 (ISA 接続)
には snd_sb16 とともに
&man.snd.sbc.4; ドライバを使用します。
このカードを使用する場合には、
カーネルコンフィグレーションファイルに以下の行を追加してください。
device snd_sbc
device snd_sb16
もしカードが 0x220 I/O port と
IRQ 5 を使用している場合には、
/boot/device.hints
に以下の行を追加してください。
hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"
/boot/device.hints
に用いるべき構文は、&man.sound.4; および、
サウンドカードの各ドライバのマニュアルページに記載されています。
これまでの設定はデフォルトのものです。
カードを使用する状況によっては、
IRQ やその他の設定を変更する必要があるかもしれません。
このカードについての詳細は、
&man.snd.sbc.4; をご覧ください。
サウンドのテスト
必要となるモジュールを読み込むか、カスタムカーネルで再起動すると、
サウンドカードが検出されます。
確認をするには、dmesg | grep pcm と実行してください。
この例は、ビルトイン Conexant CX20590
チップセットを搭載したシステムのものです。
pcm0: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 5 on hdaa0
pcm1: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 6 on hdaa0
pcm2: <Conexant CX20590 (Analog 2.0+HP/2.0)> at nid 31,25 and 35,27 on hdaa1
サウンドカードの状態は、
以下のコマンドを使用して確認することもできます。
&prompt.root; cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <NVIDIA (0x001c) (HDMI/DP 8ch)> (play)
pcm1: <NVIDIA (0x001c) (HDMI/DP 8ch)> (play)
pcm2: <Conexant CX20590 (Analog 2.0+HP/2.0)> (play/rec) default
この出力は、サウンドカードによって異なります。
pcm デバイスがなければ、
適切なデバイスドライバが読み込まれているか、
カーネルに追加されてコンパイルされているかどうかを確認してください。
次の節では、良くある問題とその解決方法をリストアップしています。
すべてうまくいけば、サウンドカードが &os; で機能するでしょう。
CD または DVD
ドライブのオーディオ出力端子がサウンドカードと適切に接続されていれば、
&man.cdcontrol.1; を使ってドライブ内のオーディオ
CD を再生できます。
&prompt.user; cdcontrol -f /dev/acd0 play 1
オーディオ CD
は特別なエンコーディングが行われているため、
&man.mount.8; を使ってマウントすべきではありません。
audio/workman のように、
よりよいインタフェースを提供するさまざまなアプリケーションがあります。
audio/mpg123 port
をインストールして MP3 オーディオファイルを聞くことができます。
手っ取り早くカードをテストするには、
/dev/dsp
デバイスにデータを送ってみてください。
&prompt.user; cat filename > /dev/dsp
ここで filename
は、どのような形式のファイルでも構いません。
このコマンドラインを実行すると雑音が発生するはずです。
これにより、サウンドカードが動作していることを確認できます。
/dev/dsp* デバイスノードは、
必要に応じて自動的に作成されます。
デバイスノードが使用されていない場合には存在せず、
&man.ls.1; の出力に表示されません。
サウンドカードの問題についてのトラブルシューティング
デバイスノード
I/O ポート
IRQ
DSP
は、
良くあるエラーメッセージとその解決法の一覧です。
良くあるエラーメッセージ
エラー
解決方法
sb_dspwr(XX) timed
out
使用する
I/O ポートが適切に設定されていません。
bad irq XX
使用する IRQ が正しく設定されていません。
サウンドカードの IRQ と設定した IRQ
が同じかどうか確かめてください。
xxx: gus pcm not attached, out of
memory
デバイスを使用するのに十分なメモリを確保できません。
xxx: can't open
/dev/dsp!
fstat | grep dsp
と入力して、
他のアプリケーションがデバイスを使用しているか調べてください。
注目すべきトラブルメーカは
esound と
KDE
のサウンド機能です。
最近のグラフィックカードの中には、
HDMI を利用するため、
グラフィックカード自身がサウンドカードを持つものがあります。
このようなサウンドデバイスには、
時としてサウンドカードより若い番号が付けられることがあります。
そのような場合には、
サウンドカードをデフォルトプレイバックデバイスとして利用できません。
このことが原因かどうかを確認するには、dmesg を実行して
pcm を探してください。
以下のような出力を得るかもしれません。
...
hdac0: HDA Driver Revision: 20100226_0142
hdac1: HDA Driver Revision: 20100226_0142
hdac0: HDA Codec #0: NVidia (Unknown)
hdac0: HDA Codec #1: NVidia (Unknown)
hdac0: HDA Codec #2: NVidia (Unknown)
hdac0: HDA Codec #3: NVidia (Unknown)
pcm0: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 0 nid 1 on hdac0
pcm1: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 1 nid 1 on hdac0
pcm2: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 2 nid 1 on hdac0
pcm3: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 3 nid 1 on hdac0
hdac1: HDA Codec #2: Realtek ALC889
pcm4: <HDA Realtek ALC889 PCM #0 Analog> at cad 2 nid 1 on hdac1
pcm5: <HDA Realtek ALC889 PCM #1 Analog> at cad 2 nid 1 on hdac1
pcm6: <HDA Realtek ALC889 PCM #2 Digital> at cad 2 nid 1 on hdac1
pcm7: <HDA Realtek ALC889 PCM #3 Digital> at cad 2 nid 1 on hdac1
...
この例では、グラフィックカード (NVidia)
には、サウンドカード (Realtek ALC889)
より若い番号が付けられています。
サウンドカードをデフォルトのプレイバックデバイスとして利用するには、
hw.snd.default_unit
をプレイバックで使用するユニット番号に変更してください。
&prompt.root; sysctl hw.snd.default_unit=n
ここで、n は使用するサウンドデバイスの番号です。
この例では 4 です。
/etc/sysctl.conf に以下の行を入れると、
設定の変更が常に反映されるようになります。
hw.snd.default_unit=4
-
+
-
-
- 複数音源の利用
+
+
+ 複数音源の利用
-
-
-
- Munish
- Chopra
-
- 寄稿:
-
-
-
+
+
+
+ Munish
+ Chopra
+
+ 寄稿:
+
+
+
- 同時に再生することのできる音源を複数実装していることは、
- 多くの場合望ましいことです。
- &os; では、仮想サウンドチャネル
- を使ってカーネル内でサウンドを合成することにより、
- サウンドカードの再生を多重化することができます。
+ 同時に再生することのできる音源を複数実装していることは、
+ 多くの場合望ましいことです。
+ &os; では、仮想サウンドチャネル
+ を使ってカーネル内でサウンドを合成することにより、
+ サウンドカードの再生を多重化することができます。
- 仮想チャネルの数を決めるのに三つの &man.sysctl.8;
- 変数を設定できます。
+ 仮想チャネルの数を決めるのに三つの &man.sysctl.8;
+ 変数を設定できます。
- &prompt.root; sysctl dev.pcm.0.play.vchans=4
+ &prompt.root; sysctl dev.pcm.0.play.vchans=4
&prompt.root; sysctl dev.pcm.0.rec.vchans=4
&prompt.root; sysctl hw.snd.maxautovchans=4
- この例では四つの仮想チャネルを設定しています。
- これは通常利用する上で十分実用的な数です。
- dev.pcm.0.play.vchans=4 と
- dev.pcm.0.rec.vchans=4 は、
- デバイスが取り付けられた後で設定できます。
- これらは pcm0
- が再生や録音のために持っている仮想チャネルの数です。
- hw.snd.maxautovchans は、
- &man.kldload.8;
- を用いて認識された新しいデバイスの仮想チャネル数です。
- pcm
- モジュールはハードウェアドライバとは独立して読み込むことができるので、
- hw.snd.maxautovchans
- は、オーディオデバイスが取り付けられた時に、
- デバイスに与えられる仮想チャネルの数を表しています。
- より詳細な情報については &man.pcm.4; を参照してください。
+ この例では四つの仮想チャネルを設定しています。
+ これは通常利用する上で十分実用的な数です。
+ dev.pcm.0.play.vchans=4 と
+ dev.pcm.0.rec.vchans=4 は、
+ デバイスが取り付けられた後で設定できます。
+ これらは pcm0
+ が再生や録音のために持っている仮想チャネルの数です。
+ hw.snd.maxautovchans は、
+ &man.kldload.8;
+ を用いて認識された新しいデバイスの仮想チャネル数です。
+ pcm
+ モジュールはハードウェアドライバとは独立して読み込むことができるので、
+ hw.snd.maxautovchans
+ は、オーディオデバイスが取り付けられた時に、
+ デバイスに与えられる仮想チャネルの数を表しています。
+ より詳細な情報については &man.pcm.4; を参照してください。
-
- デバイスを使用しているときに仮想チャンネルの数を変更することはできません。
- まず、ミュージックプレーヤやサウンドデーモンといった
- デバイスを使用しているすべてのプログラムを終了してください。
-
+
+ デバイスを使用しているときに仮想チャンネルの数を変更することはできません。
+ まず、ミュージックプレーヤやサウンドデーモンといった
+ デバイスを使用しているすべてのプログラムを終了してください。
+
-
- /dev/dsp0
- を必要とするプログラムが意識しなくても、
- 適切な pcm
- デバイスが自動的に設定されます。
-
+ /dev/dsp0
+ を必要とするプログラムが意識しなくても、
+ 適切な pcm
+ デバイスが自動的に設定されます。
+
-
+
+
+ ミキサチャネルの初期値を設定する
+
+
+
+ Josef
+ El-Rayes
+
+ 寄稿:
+
+
+
+
+ 各ミキサチャネルの初期値は
+ &man.pcm.4; ドライバのソースコードにハードコーディングされています。
+ &man.mixer.8;
+ および他のサードパーティ製のアプリケーションやデーモンによって、
+ サウンドカードのミキサレベルを変更できますが、
+ 永続的な解決方法ではありません。
+ そのかわり以下の例のように、
+ 適切な値を /boot/device.hints
+ ファイルに記述することによって、
+ ドライバレベルでミキサの初期値を設定することができます。
+
+ hint.pcm.0.vol="50"
+
+ この例では、&man.pcm.4; が読み込まれたと同時に、
+ ボリュームチャネルの初期値を 50
+ に設定します。
+
+
+
+
- ミキサチャネルの初期値を設定する
+ MP3 オーディオ
- Josef
- El-Rayes
+ Chern
+ Lee
- 寄稿:
+ 寄稿:
- 各ミキサチャネルの初期値は
- &man.pcm.4; ドライバのソースコードにハードコーディングされています。
- &man.mixer.8;
- および他のサードパーティ製のアプリケーションやデーモンによって、
- サウンドカードのミキサレベルを変更できますが、
- 永続的な解決方法ではありません。
- そのかわり以下の例のように、
- 適切な値を /boot/device.hints
- ファイルに記述することによって、
- ドライバレベルでミキサの初期値を設定することができます。
+ この節では、&os; で利用できる MP3
+ プレイヤや、オーディオ CD トラックを吸い出す方法、
+ および MP3 のエンコード、
+ デコードの方法について説明します。
- hint.pcm.0.vol="50"
+
+ MP3 プレイヤ
- この例では、&man.pcm.4; が読み込まれたと同時に、
- ボリュームチャネルの初期値を 50
- に設定します。
-
-
+ XMMS は
+ 人気のあるグラフィカルな MP3 プレイヤです。
+ Winamp
+ スキンや追加のプラグインに対応しています。
+ XMMS のプレイリスト、
+ グラフィックイコライザ等のインタフェースは直感的です。
+ Winamp を使いなれている人は簡単に
+ XMMS を使えるでしょう。
+ &os; では、XMMS は
+ multimedia/xmms の
+ port または package からインストールできます。
-
-
- MP3 オーディオ
-
-
-
-
- Chern
- Lee
-
- 寄稿:
-
-
-
-
- この節では、&os; で利用できる MP3
- プレイヤや、オーディオ CD トラックを吸い出す方法、
- および MP3 のエンコード、
- デコードの方法について説明します。
-
-
- MP3 プレイヤ
-
- XMMS は
- 人気のあるグラフィカルな MP3 プレイヤです。
- Winamp
- スキンや追加のプラグインに対応しています。
- XMMS のプレイリスト、
- グラフィックイコライザ等のインタフェースは直感的です。
- Winamp を使いなれている人は簡単に
- XMMS を使えるでしょう。
- &os; では、XMMS は
- multimedia/xmms の
- port または package からインストールできます。
-
audio/mpg123 package もしくは port は、
は代替となる コマンドライン上の MP3
プレイヤです。インストールしたら、再生する MP3
ファイルをコマンドラインから指定してください。
もしシステムが、複数のオーディオデバイスを搭載しているのであれば、
サウンドデバイスを同様に指定してください。
&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatesHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
version 1.18.1; written and copyright by Michael Hipp and others
free software (LGPL) without any warranty but with best wishes
Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
他の MP3 プレイヤも
Ports Collection から利用できます。
CD オーディオトラックの抽出
CD 全体または CD
トラックを MP3
に変換する前に、CD
上のオーディオデータをハードディスク上に抽出する必要があります。
これは raw CD Digital Audio
(CDDA) データを
WAV ファイルにコピーすることで行われます。
sysutils/cdrtools
スイートからインストールされる cdda2wav
ツールを用いて、CD
からオーディオデータを抽出できます。
CD をドライブにいれて次のコマンドを
root 権限で実行すると、
CD 全体をトラックごとに個々の
WAV ファイルに抽出できます。
&prompt.root; cdda2wav -D 0,1,0 -B
この例では、
は SCSI デバイス 0,1,0
が抽出する CD を表します。
cdrecord -scanbus を使って、
システムの適切なデバイスパラメータを取得してください。
個々のトラックを抽出するには、
次のように でトラックを指定してください。
&prompt.root; cdda2wav -D 0,1,0 -t 7
範囲を指定して、
一番目から七番目のトラックまで抽出したい場合、
次のようにします。
&prompt.root; cdda2wav -D 0,1,0 -t 1+7
ATAPI (IDE)
CDROM ドライブから抽出するには、
SCSI
ユニット番号をデバイス名に置き換えて指定します。
たとえば IDE ドライブから七番目のトラックを抽出するには、
次のようにします。
&prompt.root; cdda2wav -D /dev/acd0 -t 7
または、
で説明されているように、dd を使って
ATAPI
ドライブ上のオーディオトラックを展開できます。
MP3 のエンコードとデコード
lame は、
ポピュラーな MP3 エンコーダです。
audio/lame
port からインストールできます。
特許の問題から、package は利用できません。
次のコマンドを実行すると、抽出した WAV ファイル
audio01.wav
を使って
audio01.mp3
に変換します。
&prompt.root; lame -h -b 128 --tt "曲名" --ta "アーティスト名" --tl "アルバム名" \
--ty "年" --tc "コメント" --tg "ジャンル" audio01.wav audio01.mp3
ここで指定している 128 kbits は、MP3
の標準のビットレートです。
160 kbits または 192 kbits のビットレートは、
さらに高音質を提供します。
ビットレートが高くなるにつれて作成される
MP3 ファイルは多くのディスク領域を消費します。
オプションを指定すると
低速高品質
モードとなります。
ではじまるオプションは ID3
タグを設定します。
このタグにはたいてい曲の情報が含まれており、
MP3 ファイルに格納されます。
Lame のマニュアルを参照すれば、
他のエンコーディングのオプションが見つかるでしょう。
MP3 からオーディオ
CD を作成するには、
まず非圧縮のファイル形式に変換しなければなりません。
XMMS
は WAV 形式へ変換できますが、
mpg123 は
raw Pulse-Code Modulation (PCM)
オーディオデータに変換します。
mpg123 を使って
audio01.mp3
を変換するには、PCM
ファイルを指定してください。
&prompt.root; mpg123 -s audio01.mp3 > audio01.pcm
XMMS を使って
MP3 を WAV 形式に変換するには、
以下の手順に従ってください。
XMMS を使って
WAV 形式に変換する
XMMS を起動します。
右クリックで
XMMS メニューを表示します。
Options
から Preferences を選択します。
Output Plugin を Disk Writer Plugin
に変更します。
Configure を押します。
非圧縮ファイルを書き出すディレクトリを入力、
または選択します。
普段通り XMMS
へ MP3 ファイルを読み込みます。
音量は 100% でイコライザの設定はオフにします。
Play を押します。
XMMS
は MP3 を再生しているかのように表示しますが、
音声はきこえません。
実際には MP3 をファイルに出力しています。
終了したら、再び MP3 を聴けるように
Output Plugin を以前のように元に戻すのを忘れないでください。
WAV と PCM 形式は、
cdrecord で利用できます。
WAV ファイルを使用する場合、
それぞれのトラックの先頭に小さなノイズが入るのに気づくでしょう。
これは WAV ファイルのヘッダ情報です。
audio/sox port または package
を使うとヘッダ情報を削除できます。
&prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.raw
&os; での CD 作成の詳しい情報は
を参照してください。
ビデオ再生
Ross
Lippert
寄稿:
ビデオ再生のための設定をはじめる前に、
ビデオカードのモデルおよびチップセットを確認する必要があります。
&xorg;
はさまざまなビデオカードに対応していますが、
すべてのカードがビデオ再生に性能を発揮できるとは限りません。
利用しているビデオカードの &xorg;
サーバが対応している拡張機能のリストを得るには、
&xorg; を実行中に
xdpyinfo を実行してください。
さまざまなプレイヤやオプションを試すのに、
テストファイルとして小さな MPEG ファイルを用意しておくのはよい考えです。
いくつかの DVD アプリケーションは
DVD メディアを
/dev/dvd
として初期設定しているか、ハードコーディングしているので、
次のように適切なデバイスにシンボリックリンクを張っておくと便利かもしれません。
&prompt.root; ln -sf /dev/cd0 /dev/dvd
&man.devfs.5; の仕様により、
このように手動で作成されたリンクはシステムを再起動すると消えてしまいます。
システムの起動時にこれらのシンボリックリンクを自動的に作成するには、
/etc/devfs.conf
に下記の設定を追加してください。
link cd0 dvd
特別な機能を必要とする DVD の抽出には、
DVD デバイスへの書き込み権限が必要です。
&xorg;
インタフェースの使う共有メモリを拡張するために、
以下の &man.sysctl.8; 変数の値を増やすことが推奨されています。
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768
ビデオ機能の決定
XVideo
SDL
DGA
&xorg;
においてビデオ表示性能を改善する方法はいくつかあり、
正しく動作するかどうかはハードウェアに大きく依存しています。
下記に説明したどの方法でも、
ハードウェアが変わると品質が変わるでしょう。
よく知られたビデオインタフェースは次の通りです。
&xorg;:
共有メモリを用いた通常の出力
XVideo: 特別なアクセラレータによって、
drawable オブジェクトに直接ビデオを表示する
&xorg; インタフェースの拡張機能です。
この拡張を使うことで廉価なコンピュータでも高品質の再生が可能になります。
次の節では、
この拡張が動作していることの確認方法について説明します。
SDL: Simple Directmedia Layer は、
さまざまなオペレーティングシステムの間でサウンドとグラフィックスを効果的に利用したクロスプラットホームアプリケーションを開発することを目的としたレイヤです。
SDL
はハードウェアに対する低レベルの抽象的概念を提供し、
時には &xorg;
インタフェースを使用するよりも効果的なことがあります。
&os; では、SDL は、
devel/sdl20 package または port
によりインストールできます。
DGA: Direct Graphics Access は、
プログラムが &xorg;
サーバを介せず直接フレームバッファを変更することを可能にする
&xorg; の拡張機能です。
低レベルのメモリマッピングが実行できることを期待しているので、
この機能を使うプログラムは
root
権限で実行されなければなりません。
DGA 機能拡張は &man.dga.1;
によってテストとベンチマークができます。
dga
実行中はキーボードを押せばいつでもディスプレイ色が変更されます。
中止するには q を押します。
SVGAlib: 低レベルコンソールグラフィックレイヤ
XVideo
この拡張機能が動作しているかどうかを調べるには、
xvinfo を使います。
&prompt.user; xvinfo
以下のような結果が得られたならば、カードは
XVideo に対応しています。
X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0
リストにある形式、YUV2, YUV12 などが XVideo
のすべての実装で存在するとは限りません。
対応している形式が少ないために、
あるプレイヤでは悪影響が出るかもしれないことにも注意してください。
出力が以下のような場合、
X-Video Extension version 2.2
screen #0
no adaptors present
カードはおそらく XVideo に対応していないのでしょう。
このことはディスプレイでビデオを表示するのに、
ビデオカードおよびプロセッサによっては、
計算上の要求を満たすことがより困難になることを意味します。
ビデオを扱う ports および packages
ビデオ ports
ビデオ packages
この節では Ports Collection で利用可能な、
ビデオの再生に使用できるソフトウェアについて紹介します。
MPlayer および
MEncoder
MPlayer
はコマンドラインのビデオプレイヤで、
高速性と柔軟性をもたらすグラフィカルなインタフェースも持っています。
MPlayer
の他のグラフィカルなフロントエンドも
Ports Collection からインストールできます。
MPlayer
MPlayer は
multimedia/mplayer
package または port からインストールできます。
いくつかのコンパイル時のオプションを設定することができ、また、
構築の際にさまざまなハードウェアのチェックがおこなわれます。
そのため、package からインストールを行わず、
port から構築することを好むユーザもいます。
port を構築する際に、メニューのオプションは、port
にコンパイル時にオプションとしてどの形式に対応するかを決定するため、
見ておく必要があります。
オプションが選択されていなければ、
MPlayer
はその形式のビデオ形式を表示することは出来ません。
矢印キーとスペースキーを使って必要な形式を選択してください。
選択が終わったら、Enter を押して、
port の構築とインストールを続けてください。
デフォルトでは、この packege または port は、
mplayer コマンドラインユーティリティと
gmplayer グラフィカルユーティリティを構築します。
ビデオをエンコードする必要があれば、
multimedia/mencoder
port をコンパイルしてください。
ライセンスの制限のため、
MEncoder の
package は利用できません。
MPlayer を初めて起動すると、
各自のホームディレクトリ内に ~/.mplayer
が作成されます。このサブディレクトリには、
ユーザ固有の設定ファイルのデフォルトバージョンが含まれています。
この節では、一般的な使用法についてのみ説明します。
数多くのオプションの完全な説明については、
mplayer(1) のマニュアルに記載されています。
testfile.avi
というファイルを再生するには、以下の例のように、
とともに、
ビデオインタフェースを指定してください。
&prompt.user; mplayer -vo xv testfile.avi
&prompt.user; mplayer -vo sdl testfile.avi
&prompt.user; mplayer -vo x11 testfile.avi
&prompt.root; mplayer -vo dga testfile.avi
&prompt.root; mplayer -vo 'sdl:dga' testfile.avi
ビデオ再生の相対的性能は多くの要因に依存し、
ハードウェアに応じて著しく変わると思われるので、
これらのオプションをすべて試してみる価値はあるでしょう。
DVD を再生するには、
testfile.avi を
に置き換えてください。
<N> には再生するタイトル番号を、
DEVICE
は DVD のデバイスノードを指定します。
たとえば、/dev/dvd
から 2 番目のタイトルを再生するには以下のようにします。
&prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvd
デフォルトの DVD デバイスは、
MPlayer port の構築時に
WITH_DVD_DEVICE=/path/to/desired/device
を追加することでで定義できます。
デフォルトでは、デバイスは
/dev/cd0 です。
詳細はこの port の
Makefile.options をご覧ください。
停止、休止、
再生などをするにはキーバインディングを使ってください。
キーバインディングの一覧を見るには、mplayer -h
を実行するか、もしくは、mplayer(1) を読んでください。
再生に関する追加のオプションがあります。
全画面モードにする オプションと、
性能を向上させる オプションです。
よく使用するオプションについては、各ユーザの
.mplayer/config
に以下のように追加してください。
vo=xv
fs=yes
zoom=yes
mplayer を使って、
DVD タイトルを
.vob に抽出できます。
DVD から
2 番目のタイトルをダンプするには次のようにします。
&prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd
出力された out.vob ファイルは
MPEG 形式です。
&unix; ビデオについて、
高レベルのノウハウを得たいと考えている方は mplayerhq.hu/DOCS
をご覧ください。技術的な情報があります。
このドキュメントは、
バグを報告する前に、読むべきものです。
mencoder
mencoder を使う前に、mplayerhq.hu/DOCS/HTML/en/mencoder.html
を読んでオプションに慣れておくのはよい考えです。
品質向上、低ビットレート、形式変換をする方法が無数にあります。
これらの要素の調節具合で、性能が良かったり悪かったりするなど、
結果に違いが出るかもしれません。
コマンドラインオプションを不適切に組合せると、
mplayer
でさえ再生できない出力ファイルを作成してしまいます。
はじめは単純なファイルのコピーです。
&prompt.user; mencoder input.avi -oac copy -ovc copy -o output.avi
したがって、単にファイルを抽出したいときには、
mplayer に
をつけます。
input.avi
を音声に MPEG3 エンコードを使用して
MPEG4 コーデックに変換するには、まず最初に
audio/lame
port をインストールしてください。
ライセンスの制限により、package は利用できません。
インストールしたら、以下のように入力してください。
&prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi
これは mplayer や
xine
といったアプリケーションで再生可能な出力ファイルを作成します。
DVD タイトルを直接再エンコードするためには、
上記のコマンドラインの
input.avi を
に置き換えて、
root 権限で実行します。
期待する結果を得るには何度か繰り返すことになるので、
かわりにタイトルをファイルにダンプして、
ファイルに対して作業することをおすすめします。
xine ビデオプレイヤ
xine は、
再利用可能な基本ライブラリと、
プラグインで拡張できる実行可能なモジュールを提供するビデオプレイヤです。
multimedia/xine package
または port からインストールできます。
実用上、xine
を使用するには高速なビデオカードとともに高速な CPU があるか、
またはビデオカードが XVideo 拡張に対応している必要があります。
XVideo インタフェースとともに xine
ビデオプレイヤを使うのが最良です。
デフォルトでは、xine プレイヤは
GUI 付きで起動するでしょう。
メニューを使用して特定のファイルを開くことができます。
xine は、
再生するファイル名を指定することで、
コマンドラインから実行することもできます。
&prompt.user; xine -g -p mymovie.avi
xine-project.org/faq
には、より多くの情報やトラブルシューティングがあります。
Transcode ユーティリティ
Transcode は、
ビデオおよびオーディオファイルを再エンコードするためのツール一式です。
Transcode を使えば、stdin/stdout
ストリームインタフェースとともにコマンドラインツールを用いることで、
ビデオファイルの統合や、壊れたファイルの修復ができます。
&os; では、Transcode は、
multimedia/transcode package
もしくは port からインストールできます。
多くのユーザは port からコンパイルすることを好みます。
port では、
コンパイルで有効にするサポートやコーデックを指定するコンパイルオプションのメニューを利用できるためです。
オプションを選択しないと、Transcode
は、その形式をエンコード出来ないでしょう。
矢印キーとスペースバーを使って、
必要とするフォーマットを選択してください。
選択が終わったら、
Enter を押して、port
のコンパイルとインストールを続けてください。
この例では、DivX ファイルを
PAL MPEG-1 (PAL VCD) に変換する使用例を示します。
&prompt.user; transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
&prompt.user; mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa
作成された MPEG ファイル、
output_vcd.mpg は、
MPlayer を使って再生できます。
また、multimedia/vcdimager
および sysutils/cdrdao
といったユーティリティを使って、
ファイルを CD
メディアに書き込むことでビデオ
CD も作成できます。
transcode のマニュアルページに加え、transcoding.org/cgi-bin/transcode
から、更なる情報や使用例を得てください。
- TV カードの設定
+ TV カードの設定
-
-
-
- Josef
- El-Rayes
-
- 原作:
-
-
-
-
-
- Marc
- Fonvieille
-
- 改訂:
-
-
-
+
+
+
+ Josef
+ El-Rayes
+
+ 原作:
+
+
+
+
+
+
+ Marc
+ Fonvieille
+
+ 改訂:
+
+
+
TV カード
TV カードを使用することで、
TV 放送をコンピュータで見ることができます。
これらの多くのカードは RCA
または S-video 入力端子を備えており、
FM ラジオチューナを装備したカードもあります。
&os; は、Brooktree Bt848/849/878/879
をビデオキャプチャチップに採用した PCI TV カードに &man.bktr.4;
ドライバで対応しています。
このドライバは、ほとんどの Pinnacle PCTV ビデオカードに対応しています。
TV カードを購入する前に、対応しているチューナの一覧について、
&man.bktr.4; を参照してください。
ドライバを読み込む
カードを使用するには、&man.bktr.4;
ドライバを読み込む必要があります。
起動時に自動的に読み込むためには、
/boot/loader.conf
に以下の行を追加してください。
bktr_load="YES"
あるいは、カスタムカーネルに TV
ビデオカードへのサポートを静的に組み込むこともできます。
この場合には、
次の行をカーネルコンフィギュレーションファイルに追加してください。
device bktr
device iicbus
device iicbb
device smbus
カードコンポーネントは I2C バス経由で連結されているため、
&man.bktr.4; ドライバに加えてこれらのデバイスが必要になります。
編集したら新しいカーネルを構築し、インストールします。
チューナが適切に検出されたかどうかを確認するため、
システムを再起動してください。
起動時のメッセージに TV カードが以下のように認識されるでしょう。
bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.
これらのメッセージはハードウェアに応じて異なります。
必要であれば、&man.sysctl.8; や、
カーネルコンフィギュレーションファイルオプションで、
検知されたいくつかのパラメータを変更できます。
たとえば、チューナを Philips SECAM
チューナとして検知されるようにするには、
カーネルコンフィギュレーションファイルに以下の行を追加します。
options OVERRIDE_TUNER=6
または、直接 &man.sysctl.8; を使用して変更します。
&prompt.root; sysctl hw.bt848.tuner=6
利用可能な &man.sysctl.8;
パラメータおよびカーネルオプションについては &man.bktr.4;
を参照してください。
便利なアプリケーション
TV カードを使用するためには、
以下のアプリケーションの一つをインストールする必要があります。
multimedia/fxtv
はウィンドウ内に TV 映像を映します。
画像/音声/ビデオを取り込むこともできます。
multimedia/xawtv
も同様の機能を持った TV アプリケーションです。
audio/xmradio
は TV カードに搭載された FM
ラジオチューナを使用するためのアプリケーションです。
他にも多くのアプリケーションが &os; の
Ports Collection に収録されています。
トラブルシューティング
TV カードに関する問題が起きたときには、&man.bktr.4;
が本当にビデオキャプチャチップおよびチューナに対応しているか、
オプションが正しく設定されているかどうかをまず確認してください。
TV カードに関するサポートや質問に関しては、
&a.multimedia.name;
メーリングリストを参照してください。
MythTV
MythTV は、広く使われているオープンソースの Personal Video Recorder
(PVR) アプリケーションです。
この節では、&os; に MythTV をインストールし、
設定する方法について説明します。
MythTV の使用法に関するより詳細な情報については、mythtv.org/wiki
をご覧ください。
MythTV は、フロントエンドおよびバックエンドを必要とします。
これらは、同じシステム上でも、
異なるコンピュータ上でも動かすことが可能です。
フロントエンドについては、
multimedia/mythtv-frontend package または port
から &os; にインストールできます。
で説明されているように、
&xorg;
をインストールして設定する必要もあります。
このシステムは X-Video Motion Compensation
(XvMC) に対応し、
オプションとして、Linux Infrared Remote Control
(LIRC)-互換のリモートに対応したビデオカードを持っていることが理想的です。
&os; にバックエンドとフロントエンドの両方をインストールするには、
multimedia/mythtv package または port
を使ってください。
&mysql; データベースサーバも必要となりますが、
自動的に依存でインストールされます。オプションで、
チューナカードと録音したデータを保存するためのストレージが必要です。
ハードウェア
MythTV は、
エンコーダやチューナなどのビデオ入力デバイスへのアクセスに
Video for Linux (V4L) を用います。
&os; では、USB DVB-S/C/T
カードにおいて最もよく動作します。
なぜならば、このカードは、
V4L ユーザランドアプリケーションを提供する
multimedia/webcamd package または port
により良くサポートされているためです。
webcamd により対応している
Digital Video Broadcasting (DVB)
カードは、MythTV で動作するはずです。
動作することが知られているカードの一覧が
wiki.freebsd.org/WebcamCompat
にあります。
Hauppauge カードのドライバもまた、
multimedia/pvr250
および multimedia/pvrxxx
port として利用可能ですが、
標準的ではないドライバのインタフェースを提供しており、
0.23 より後の MythTV では動作しません。
ライセンスの制限により、package は利用できません。
そのため、これらの ports はコンパイルをしなければなりません。
wiki.freebsd.org/HTPC
ページは、DVB
ドライバのすべての一覧を提供しています。
MythTV バックエンドの設定
port を使って MythTV をインストールしてください。
&prompt.root; cd /usr/ports/multimedia/mythtv
&prompt.root; make install
インストールが終わったら、
MythTV データベースを設定してください。
&prompt.root; mysql -uroot -p < /usr/local/share/mythtv/database/mc.sql
その後、バックエンドを設定してください。
&prompt.root; mythtv-setup
最後にバックエンドを起動してください。
&prompt.root; echo 'mythbackend_enable="YES"' >> /etc/rc.conf
&prompt.root; service mythbackend start
画像スキャナ
Marc
Fonvieille
寄稿:
画像スキャナ
&os; では、画像スキャナに対するアクセスは
SANE (Scanner Access Now Easy)
によって実現されており、
&os; の Ports Collection で提供されています。
SANE
はスキャナのハードウェアにアクセスするために
&os; デバイスドライバを使用します。
&os; は
SCSI 接続および USB
接続のスキャナのどちらにも対応しています。
スキャナのインタフェースに依存して、異なるドライバが必要となります。
設定を始める前に、
SANE
がスキャナに対応していることを確認してください。
対応しているスキャナに関してのより詳細な情報については、
http://www.sane-project.org/sane-supported-devices.html
をご覧ください。
この節では、&os;
がどのようにしてスキャナを認識するかについて説明します。
その後、&os; システム上で SANE
を設定して使用する方法の概要について説明します。
スキャナの確認
GENERIC カーネルには USB
スキャナに対応するためのデバイスドライバが搭載されています。
カスタムカーネルを使用する際には、
以下の行がカーネルコンフィグレーションファイルにあることを確認してください。
device usb
device uhci
device ohci
device ehci
USB スキャナが認識されたかを確認するには、
スキャナを接続して、dmesg を利用し、
システムメッセージバッファで、
スキャナが認識されているかどうかを確認してください。
認識されていたら、以下のようなメッセージが表示されます。
ugen0.2: <EPSON> at usbus0
この例では、&epson.perfection; 1650
USB スキャナが
/dev/ugen0.2
上で認識されています。
スキャナのインタフェースが SCSI であれば、
どの SCSI
コントローラボードを使用するかを知ることが重要です。
使用する SCSI チップセットによって、
カスタムカーネルコンフィグレーションファイルを調整する必要があります。
GENERIC カーネルは、
一般に使用される SCSI
コントローラのほとんどに対応しています。
/usr/src/sys/conf/NOTES ファイルを読んで、
適切な行をカーネルコンフィグレーションファイルに追加してください。
また、SCSI アダプタドライバに加えて、
以下の行をカスタムカーネルコンフィグレーションファイルに記述する必要があります。
device scbus
device pass
デバイスがメッセージバッファに出力されていることを確認してください。
pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfers
システムを起動する際にスキャナの電源を入れてなければ、
camcontrol を使用して
SCSI バスをスキャンし、
以下のように手動でデバイスを検出させることもできます。
&prompt.root; camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successful
すると、スキャナは SCSI
デバイスの一覧に現れるでしょう。
&prompt.root; camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
&os; における SCSI デバイスについての詳細は、
&man.scsi.4; および &man.camcontrol.8; をご覧ください。
SANE の設定
SANE システムは、
二つの部分、すなわちバックエンド
(graphics/sane-backends)
とフロントエンド
(graphics/sane-frontends
もしくは、graphics/xsane)
に分割されています。
バックエンドはスキャナに対するアクセスを提供します。
どのバックエンドが画像スキャナに対応しているかについては、http://www.sane-project.org/sane-supported-devices.html
を参照してください。
フロントエンドはグラフィカルなスキャニングインタフェースを提供します。
graphics/sane-frontends は、
xscanimage をインストールし、一方、
graphics/xsane は、
xsane をインストールします。
graphics/sane-backends
port または package をインストールしたら、
sane-find-scanner コマンドを使用して、
SANE
システムで検出されているスキャナを確認してください。
&prompt.root; sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
この出力から、
スキャナインタフェースの種類と
システムに接続されているスキャナが使用するデバイスノードがわかります。
ベンダ名や製品のモデル名は表示されないかも知れません。
いくつかの USB
スキャナではファームウェアを読み込む必要がある場合があります。
詳細については、sane-find-scanner(1) および
sane(7) を参照してください。
次に、スキャナがフロントエンドで認識されるか調べてください。
SANE のバックエンドには
scanimage が付属します。
このコマンドを使用すると、
デバイスの一覧を表示したり画像を取得することができます。
スキャナデバイスの一覧を表示するには、
オプションを使ってください。
以下の最初の例は、SCSI スキャナ用のもので、
次の例は、USB スキャナ用のものです。
&prompt.root; scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
&prompt.root; scanimage -L
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner
2 番目の出力の中で、
'epson2:libusb:/dev/usb:/dev/ugen0.2'
がスキャナが使用するバックエンド名
(epson2) および
/dev/ugen0.2 は、デバイスノードです。
scanimage がスキャナの認識に失敗した場合には、
以下のようなメッセージが表示されます。
&prompt.root; scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
このような場合には、/usr/local/etc/sane.d/
にあるバックエンドの設定ファイルを編集して、
使用するスキャナデバイスを設定してください。
例えば、認識されなかったスキャナのモデルが、
&epson.perfection; 1650 で、epson2
バックエンドを使っているのであれば、
/usr/local/etc/sane.d/epson2.conf
を編集してください。
編集作業を行う際には、
使用するインタフェースとデバイスノードを指定する行を追加します。
この例では、以下の行を追加します。
usb /dev/ugen0.2
編集を保存し、
適切なバックエンド名とデバイスノードでスキャナが認識されたかどうかを確認してください。
&prompt.root; scanimage -L
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner
scanimage -L
を実行してスキャナが認識されたことがわかれば、設定は終了です。
スキャナを使用する準備ができました。
scanimage
を使用してコマンドラインから画像を取得することができますが、
GUI を使用して画像を取得できるとより望ましいでしょう。
graphics/sane-frontends
package および port は、シンプルですが、
効率的なグラフィカルインタフェース
xscanimage
をインストールします。
一方、graphics/xsane
package または port からインストールされる
xsane は、
広く使われているもう一つのグラフィカルなスキャニングフロントエンドです。
Xsane には、さまざまなスキャニングモード、
色補正、バッチスキャンなど先進的な機能があります。
これらのアプリケーションの両方とも GIMP
のプラグインとして使用することができます。
スキャナの許可属性
スキャナにアクセスするには、
ユーザはスキャナが使用するデバイスノードへの読み込み権限と書き込み権限が必要です。
今回の例では、USB スキャナは
/dev/ugen0.2 デバイスノードを使用しています。
このデバイスノードは、
/dev/usb/0.2.0 へのシンボリックリンクです
シンボリックリンクとデバイスノードは、
それぞれ wheel および
operator
グループが所有しています。
ユーザをこれらのグループに加えると、
スキャナを使用できるようになりますが、
ユーザを wheel
に追加することは、セキュリティの観点からお勧めできません。
良い方法は、
スキャナデバイスにアクセスできるグループを作成することです。
この例では、usb
という名前のグループを作成します。
&prompt.root; pw groupadd usb
その後、シンボリックリンク /dev/ugen0.2
および、/dev/usb/0.2.0 デバイスノードに対して、
usb
グループが利用できるように書き込みの許可属性
0660 または 0664
を設定してください。
/etc/devfs.rules
に次の行を追加すれば設定できます。
[system=5]
add path ugen0.2 mode 0660 group usb
add path usb/0.2.0 mode 0666 group usb
最後に、スキャナを利用するユーザを usb
グループに追加してスキャナを利用できるようにしてください。
&prompt.root; pw groupmod usb -m joe
詳細については、&man.pw.8; をご覧ください。
Index: head/ja_JP.eucJP/books/handbook/pgpkeys/chapter.xml
===================================================================
--- head/ja_JP.eucJP/books/handbook/pgpkeys/chapter.xml (revision 48545)
+++ head/ja_JP.eucJP/books/handbook/pgpkeys/chapter.xml (revision 48546)
@@ -1,42 +1,43 @@
PGP 公開鍵
pgp公開鍵
FreeBSD.org
オフィサの PGP 公開鍵を以下に示します。
これらの公開鍵は、署名を検証したり、
オフィサに暗号メールを送る必要がある場合に使用できます。
すべての &os; 公開鍵の一覧は、
PGP
Keys にあります。
また、完全なキーリングは
https://www.FreeBSD.org/doc/pgpkeyring.txt からダウンロードできます。
+ xlink:href="https://www.FreeBSD.org/doc/pgpkeyring.txt">https://www.FreeBSD.org/doc/pgpkeyring.txt
+ からダウンロードできます。
オフィサ
§ion.pgpkeys-officers;
Index: head/ja_JP.eucJP/books/handbook/x11/chapter.xml
===================================================================
--- head/ja_JP.eucJP/books/handbook/x11/chapter.xml (revision 48545)
+++ head/ja_JP.eucJP/books/handbook/x11/chapter.xml (revision 48546)
@@ -1,2208 +1,2209 @@
X Window System
この章では
bsdinstall を用いた &os;
のインストールでは、
グラフィカルユーザインタフェースは自動的にはインストールされません。
この章では、グラフィカル環境で使われるオープンソースの
X Window System を提供する &xorg;
のインストールおよび設定方法について説明します。
その後、
デスクトップ環境およびウィンドウマネージャの探し方およびインストール方法について説明します。
自動的に &xorg; を設定し、
インストール時にウィンドウマネージャを選択できるようなインストール方法を希望するユーザは、
pcbsd.org
ウェブサイトを参照してください。
&xorg;
が対応するビデオハードウェアについてのより多くの情報は、
x.org
のウェブサイトをご覧ください。
この章を読めば以下のことがわかります。
X Window System のさまざまなコンポーネントと、
それらが互いにどのように連携しているか。
&xorg;
のインストールおよび設定方法
さまざまなウィンドウマネージャおよびデスクトップ環境のインストールおよび設定方法
&xorg;
での &truetype; フォントの使い方
GUI ログイン (XDM)
の設定方法
この章を読み始める前に以下のことを理解しておく必要があります。
で説明されているサードパーティ製ソフトウェアのインストール方法
用語の説明
X Window System のさまざまなコンポーネントについての詳細や、
それらがどのようにやり取りするかについてすべて理解する必要はありませんが、
これらのコンポーネントについて基本的なことを知っていると、
強力な武器になるでしょう。
X サーバ
X は最初からネットワークを意識してデザインされており、
クライアント - サーバ
モデルを採用しています。
このモデルでは、X サーバ
はキーボードやモニタ、
マウスが接続されたコンピュータ上で動きます。
このサーバはディスプレイの表示を管理したり、キーボード、
マウスからの入力を処理したり、
タブレットやビデオプロジェクタ等の他の装置からの入出力を処理します。
これは、ある人々を混乱させることがあります。
X での用語は彼らが想定するものとは正反対だからです。
彼らは X サーバ
は地下にある大きなパワフルなマシンであり、
X クライアント
が自分たちのデスク上にあると想像するのです。
X クライアント
XTerm や
Firefox などの各 X アプリケーションは、
クライアント
になります。
クライアントは この座標にウィンドウを描いてください
といったメッセージをサーバへ送り、サーバは
ユーザが OK ボタンを押しました
といったメッセージを送り返します。
家庭や小さなオフィスのような環境では、X サーバと
X クライアントは通常同じコンピュータ上で動いています。
X サーバを非力なコンピュータで動かし、
X アプリケーションをより高性能なマシンで動かすことも可能です。
この場合、
X のクライアントとサーバの通信はネットワーク越しに行なわれます。
ウィンドウマネージャ
X はスクリーン上でウィンドウがどのように見えるべきか、
マウスでそれらをどうやって動かすか、
ウィンドウ間を移動するのにどういうキーストロークを使うべきか、
各ウィンドウのタイトルバーはどのように見えるべきか、
クローズボタンを持つべきかどうか、
といったことは規定しません。そのかわりに、X
ではそういったことを ウィンドウマネージャ
と呼ばれるアプリケーションに任せます。ウィンドウマネージャはたくさん
あります。
これらのウィンドウマネージャの見た目や使い勝手はそれぞれ異なっています。
バーチャルデスクトップをサポートしているものもありますし、
デスクトップを操作するキーストロークをカスタマイズできたり、
スタート
ボタンやそれに類するものを持っているものもあります。
テーマに対応しており、
デスクトップの見た目や使い勝手を完全に変えられるものもあります。
ウィンドウマネージャは Ports Collection の
x11-wm カテゴリに用意されています。
それぞれのウィンドウマネージャは異なる設定機構を備えています。
手で設定ファイルを編集しなければならないものや、
設定作業のほとんどを GUI ツールで行うことができるものもあります。
デスクトップ環境
KDE や
GNOME は、デスクトップ環境です。
これらは、共通のデスクトップのタスクを実行するための完全なアプリケーションスイートを含んでいます。
オフィススイート、ウェブブラウザやゲームを含んでいるものもあります。
フォーカスポリシ
ウィンドウマネージャは、
マウスのフォーカスポリシに責任を持ちます。
このポリシは、どのウィンドウがアクティブにキーストロークを
受け付けるようにするための方法を提供し、
そして、どのウィンドウがアクティブなのかを示します。
よく知られているフォーカスポリシは
click-to-focus
と呼ばれるものです。
このポリシは、
あるウィンドウ内でマウスをクリックすればそのウィンドウがアクティブになる、
というものです。
focus-follows-mouse
ポリシでは、
マウスポインタの下にいるウィンドウがフォーカスされるというものです。
フォーカスを変えるには他のウィンドウにマウスポインタを動かすだけです。
マウスがルートウィンドウに移動した時には、
このウィンドウがフォーカスされます。
sloppy-focus
モデルでは、
マウスがルートウィンドウに移動した時には、
直前に使われていたウィンドウがフォーカスされています。
sloppy-focus では、
ポインタが別のウィンドウに移った時のみフォーカスが変わり、
現在のウィンドウから出ただけでは変わりません。
click-to-focus
ポリシでは、
マウスクリックによりアクティブなウィンドウが選択されます。
ウィンドウは前面に表示され、他のすべてのウィンドウの前にきます。
ポインタが別のウィンドウ上に移動した時でも、
すべてのキーストロークがこのウィンドウに届きます。
それぞれのウィンドウマネージャは、
それぞれのフォーカスポリシに対応しています。
すべてのものは click-to-focus をサポートしていますし、
多くのものは他の方法もサポートしています。
どのフォーカスモデルを利用可能かどうかについては、
ウィンドウマネージャのドキュメントをご覧ください。
ウィジェット
ウィジェットはクリック可能であったり、
他の方法で操作可能なすべてのユーザインタフェース用アイテムを指す用語です。
ボタンやチェックボックス、ラジオボタン、アイコン、リスト、などがそうです。
ウィジェットツールキットはグラフィカルアプリケーションを作成するために使われます。
KDE で使われている Qt や
GNOME プロジェクトで使われている GTK+
といった有名なウィジェットセットがあります。
そのため、アプリケーションのルックアンドフィールは、
アプリケーションを作成するのに使われたウィジェットツールキットに依存し、
異なります。
&xorg; のインストール
&os; では、&xorg; を
package または port からインストールできます。
Ports Collection からビルドしてインストールするには、
以下のように実行してください。
&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install clean
バイナリ package を使うとより早くインストールできますが、
カスタマイズのためのオプションは少なくなります。
&prompt.root; pkg install xorg
どちらの方法でも、完全な
&xorg; システムがインストールされます。
ほとんどのユーザにとってはベストな選択となります。
経験のあるユーザ向けの最小の X システムは、x11/xorg-minimal です。
ほとんどのドキュメント、
ライブラリおよびアプリケーションはインストールされません。
アプリケーションによってはこれらの追加の要素が機能する上で必要となります。
&xorg; の設定
Warren
Block
寄稿:
&xorg;
&xorg;
クィックスタート
&xorg; は、
標準的なほとんどのビデオカード、
キーボード、ポインティングデバイスに対応しています。
これらのデバイスは、自動的に検出されるため、
手動の設定は必要ありません。
もし、使用しているコンピュータですでに
&xorg; が使われているのであれば、
コンフィグレーションファイルを移動するか、削除してください。
&prompt.root; mv /etc/X11/xorg.conf ~/xorg.conf.etc
&prompt.root; mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc
3D アクセラレータを利用できるシステムでは、
&xorg; を実行するユーザを
video または
wheel グループに追加して、
使用できるようにしてください。
ユーザ jru
をどちらのグループでも利用できるようにするには以下のように実行してください。
&prompt.root; pw groupmod video -m jru || pw groupmod wheel -m jru
デフォルトでは TWM
ウィンドウマネージャがインストールされています。
&xorg; が起動すると、
このウィンドウマネージャが立ち上がります。
&prompt.user; startx
古いバージョンの &os; では、
テキストコンソールに戻れるようにするために、
システムコンソールは &man.vt.4; に設定する必要があります。
を参照してください。
Accelerated Video のためのユーザグループ
ビデオカードの 3D アクセラレータを有効にするには、
/dev/dri へのアクセスが必要となります。
通常は、X を実行するユーザを
video または wheel
グループに追加するするだけです。
ここでは、&man.pw.8; を使ってユーザ
slurms を
video グループ、または
video グループが存在しない時に、
wheel グループに追加しています。
&prompt.root; pw groupmod video -m slurms || pw groupmod wheel -m slurms
Kernel Mode Setting (KMS)
コンピュータが、コンソールの表示から、
X 用の高解像度の表示へと切り替える時には、
ビデオの出力 mode
が設定されている必要があります。
最近の &xorg; では、
カーネル内部のシステムを使って効率的にこれらのモードの変換をしています。
古いバージョンの &os; では、
KMS システムを用いない
&man.sc.4; が使用されています。
X を閉じた後、システムコンソールは動作をしていても、
表示に黒になります。
新しい &man.vt.4; コンソールではこの問題は起こりません。
以下の行を /boot/loader.conf に追加して
&man.vt.4; を有効にしてください。
kern.vty=vt
コンフィグレーションファイル
ディレクトリ
&xorg; は、
複数のディレクトリから設定ファイルを探します。
&os; において、設定ファイルのディレクトリは、
/usr/local/etc/X11/
が推奨されます。
このディレクトリを使うことで、
アプリケーションのファイルをオペレーティングシステムとは区別する事になります。
昔のコンフィグレーションファイルの置き場である
/etc/X11/ も機能します。
しかしながら、この場所に置くと、アプリケーションファイルと
&os; システムのファイルが混ざってしまうため、推奨されません。
単一または複数ファイル
複数のファイルを用いて、
各ファイルが特定の部分を設定するようにすると、
古い単一の xorg.conf
を用いるよりも設定が簡単になります。
これらのファイルは、
メインのコンフィグレーションファイルのディレクトリの
xorg.conf.d/ サブディレクトリに置かれます。
フルパスは、一般的に
/usr/local/etc/X11/xorg.conf.d/
となります。
これらのファイルの例は、この節の後半で説明します。
古い単一の xorg.conf も機能しますが、
xorg.conf.d/
サブディレクトリに複数のファイルで設定する形式に比べると、
柔軟ではなく、わかりにくいものとなります。
ビデオカード
&intel;
Iron Lake (HD Graphics) および
Sandy Bridge (HD Graphics 2000) を含む
Ivy Bridge (HD Graphics 2500, 4000, および
P4000) までのほとんどの &intel;
グラフィックスは、3D acceleration に対応しています。
ドライバ名: intel
参考情報については をご覧ください。
+ xlink:href="https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units"/> をご覧ください。
&amd; Radeon
ATI/Radeon: 2D および 3D acceleration は、
HD6000 シリーズまでのほとんどの
Radeon カードで対応しています。
ドライバ名: radeon
参考情報については をご覧ください。
+ xlink:href="https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units"/>
+ をご覧ください。
NVIDIA
NVIDIA: いくつかの NVIDIA ドライバが
Ports Collection の x11
カテゴリから利用できます。
ビデオカードのモデルに対応するドライバをインストールしてください。
参考情報については をご覧ください。
ハイブリッドグラフィックス
ノートブックコンピュータによっては、
チップセットまたはプロセッサに組み込まれているグラフィックプロセッサユニットの他に、
追加でそれらを持つものがあります。
Optimus は、
&intel; と NVIDIA ハードウェアを組み合わせています。
Switchable Graphics または、
Hybrid Graphics は、
&intel; または &amd; プロセッサと &amd; Radeon
GPU を組み合わせています。
これらのハイブリッドなグラフィックシステムの実装は、
システムごとに異なるので、
&os; の &xorg; は、
これらのすべてのバージョンについて対応しているわけではありません。
コンピュータによっては、
片方のグラフィックアダプタを無効にしたり、
標準のビデオカードドライバの一つとともに使われる
discrete モードを選択できるような
BIOS オプションを提供しています。
たとえば、Optimus システムでは、NVIDIA GPU
を無効にできるものがあります。
その後、&intel; ビデオカードは、
&intel; ドライバで利用できます。
BIOS の設定は、
コンピュータのモデルに依存します。
システムによっては、両方の GPU
を有効にできますが、
そのようなシステムの機能を利用するには、
Device セッションにおいて、
メインの GPU
のみを使用するようなコンフィグレーションファイルを作成ことで十分です。
他のビデオカード
Ports Collection の
x11-drivers ディレクトリには、
あまり使用されないようなドライバも用意されています。
特定のドライバによりサポートされていないようなカードでも、
x11-drivers/xf86-video-vesa
で使用できるかもしれません。
このドライバは、x11/xorg
によりインストールされます。
手動でインストールするには、
x11-drivers/xf86-video-vesa
としてインストールしてください。
ビデオカードに対して、特定のドライバが見つからない場合には、
&xorg;
はこのドライバを使うことを試みます。
x11-drivers/xf86-video-scfb
も同様に、多くの UEFI および &arm;
コンピュータで動くような、
使用するカードを特定していないビデオドライバです。
ファイルでビデオドライバを設定する。
コンフィグレーションファイルにおいて
&intel; ドライバを設定するには、以下のようにしてください。
ファイルにおいて &intel; ビデオドライバを選択する。
/usr/local/etc/X11/xorg.conf.d/driver-intel.conf
Section "Device"
Identifier "Card0"
Driver "intel"
# BusID "PCI:1:0:0"
EndSection
1つ以上のビデオカードが存在する場合には、
BusID 行のコメントを外し、
希望するカードを選択するように設定できます。
ビデオカードバス ID は、
pciconf -lv | grep -B3
display で表示できます。
コンフィグレーションファイルで、Radeon
ドライバを設定するには以下のようにしてください。
ファイルにおいて Radeon ビデオドライバを設定する。
/usr/local/etc/X11/xorg.conf.d/driver-radeon.conf
Section "Device"
Identifier "Card0"
Driver "radeon"
EndSection
コンフィグレーションファイルで VESA
ドライバを設定するには、以下の用にしてください。
ファイルで VESA
ビデオドライバを設定する。
/usr/local/etc/X11/xorg.conf.d/driver-vesa.conf
Section "Device"
Identifier "Card0"
Driver "vesa"
EndSection
モニタ
ほとんどすべてのモニタは、Extended Display
Identification Data standard (EDID)
に対応しています。
&xorg; は
EDID を使ってモニタと通信し、
対応している解像度とリフレッシュレートを検出します。
そのため、モニタを使用するのに最も適切な設定が選択されます。
モニタにより対応している他の解像度は、
コンフィグレーションファイルに希望する解像度を設定する、
または X サーバを起動後、&man.xrandr.1;
により選択が可能となります。
&man.xrandr.1; の使用
パラメータを与えずに &man.xrandr.1; を実行すると、
ビデオ出力と検出されているモニタのモードを確認できます。
&prompt.user; xrandr
Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192
DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm
1920x1200 59.95*+
1600x1200 60.00
1280x1024 85.02 75.02 60.02
1280x960 60.00
1152x864 75.00
1024x768 85.00 75.08 70.07 60.00
832x624 74.55
800x600 75.00 60.32
640x480 75.00 60.00
720x400 70.08
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
この出力からは、リフレッシュレート約 60 Hz で、
スクリーン解像度 1920x1200 ピクセルの表示に
DVI-0 出力が使用されていることが分かります。
また、DisplayPort-0 および
HDMI-0 インタフェースには、
モニタは接続されていません。
&man.xrandr.1; を使用して、
他のディスプレイモードを選択できます。
たとえば、60 Hz で、1280x1024 の表示に変更するには、
以下のように実行してください。
&prompt.user; xrandr --mode 1280x1024 --rate 60
ノートブックコンピュータの外部出力を使用して、
ビデオプロジェクタに接続することがよく行われます。
出力端子のタイプおよび番号は、デバイスごとに異なります。
また、各端子の名前もドライバごとに異なります。
あるドライバが HDMI-1 と呼ぶ出力が、
別のドライバでは HDMI1
と呼ばれることもあります。
そのため、最初に &man.xrandr.1; を実行して、
利用可能な出力のすべての一覧を表示してください。
&prompt.user; xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
1366x768 60.04*+
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
VGA1 connected (normal left inverted right x axis y axis)
1280x1024 60.02 + 75.02
1280x960 60.00
1152x864 75.00
1024x768 75.08 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00
720x400 70.08
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
この出力からは、組み込みパネルの
LVDS1, 外部出力の
VGA1, HDMI1, そして
DP1 端子の 4 つの出力を確認できます。
プロジェクタは
VGA1 出力に接続されています。
情報を得られたので、&man.xrandr.1;
を使ってプロジェクタの標準の解像度に設定し、
デスクトップの右側にスペースを追加できます。
&prompt.user; xrandr --output VGA1 --auto --right-of LVDS1
この設定において、--auto は、
EDID
により検出された解像度とリフレッシュレートを選択します。
解像度を正しく検出できていない場合には、
--auto のかわりに、
--mode を使うことで、
解像度を固定値を与えることにより設定できます。
たとえば、ほとんどのプロジェクタでは
1024x768 の解像度で使用できるので、
この場合には、--mode 1024x768
のように設定できます。
&man.xrandr.1; は、X を起動する際に、
適切なモードを設定するように、しばしば
.xinitrc から実行されます。
モニタ解像度をファイルで設定する。
コンフィグレーションファイルでスクリーンの解像度を
1024x768 と設定するには以下のようにしてください。
スクリーンの解像度をファイルで設定する。
/usr/local/etc/X11/xorg.conf.d/screen-resolution.conf
Section "Screen"
Identifier "Screen0"
Device "Card0"
SubSection "Display"
Modes "1024x768"
EndSubSection
EndSection
EDID
を持っていないモニタもあります。その場合には、
モニタが対応している周波数の範囲を、
HorizSync および
VertRefresh
で、指定することで設定できます。
手動でモニタの周波数を設定する。
/usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf
Section "Monitor"
Identifier "Monitor0"
HorizSync 30-83 # kHz
VertRefresh 50-76 # Hz
EndSection
入力デバイス
キーボード
キーボードレイアウト
キーボード上の標準化されたキーの位置を
レイアウト と呼びます。
レイアウトと他の調整可能なパラメータについては、
&man.xkeyboard-config.7; にまとめられています。
アメリカ合衆国のレイアウトがデフォルトです。
他のレイアウトを選択するには、
InputClass で、
XkbLayout および
XkbVariant オプションを設定してください。
クラスに対応するすべての入力デバイスに適用できます。
以下の例では、 oss
キー配置のフランス語のキーボードレイアウトを選択します。
キーボードレイアウトを選択する。
/usr/local/etc/X11/xorg.conf.d/keyboard-fr-oss.conf
Section "InputClass"
Identifier "KeyboardDefaults"
Driver "keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "fr"
Option "XkbVariant" "oss"
EndSection
複数のキーボードレイアウトを選択する。
アメリカ合衆国、スペイン、
ウクライナのキーボードレイアウトを、
Alt
Shift
によって切り替えるようにするには以下のように設定します。
レイアウトスイッチングコントロールや現在のレイアウトインディケータを改良するには、
x11/xxkb または、
x11/sbxkb を使ってください。
/usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf
Section "InputClass"
Identifier "All Keyboards"
MatchIsKeyboard "yes"
Option "XkbLayout" "us, es, ua"
EndSection
キーボードから &xorg;
を終了する。
X をキーの組み合わせで終了できるように設定できます。
デフォルトでは、幾つかのアプリケーションで、
キーボードコマンドと衝突してしまう可能性があるため、
このキーの組み合わせは設定されていません。
このオプションを有効にするには、
キーボードの InputDevice
セクションを変更してください。
キーボードからの X の終了を有効にする。
/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf
Section "InputClass"
Identifier "KeyboardDefaults"
Driver "keyboard"
MatchIsKeyboard "on"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
マウスおよびポインティングデバイス
コンフィグレーションオプションにより、
多くのマウスパラメータを調整できます。
すべての一覧については、&man.mousedrv.4x; をご覧ください。
マウスボタン
xorg.conf
のマウス InputDevice セクションで、
マウスのボタンの数を設定できます。
ボタンの数を 7 に設定するには、
以下のように設定してください。
マウスボタンの数を設定する。
/usr/local/etc/X11/xorg.conf.d/mouse0-buttons.conf
Section "InputDevice"
Identifier "Mouse0"
Option "Buttons" "7"
EndSection
手動による設定
ハードウェアによっては、&xorg;
の自動設定で適切な設定が行われなかったり、
自動設定とは別の設定にしたいときがあります。
そのような場合のため、
カスタムコンフィグレーションファイルを作成できます。
検出されたハードウェアをベースとした、
&xorg;
のコンフィグレーションファイルを作成できます。
このファイルは、
カスタムコンフィグレーションファイルの最初の出発点として有用です。
以下のようにすると xorg.conf
が生成されます。
&prompt.root; Xorg -configure
このコンフィグレーションファイルは、
/root/xorg.conf.new として保存されます。
必要となる変更を行った後、このファイルをテストしてください。
&prompt.root; Xorg -config /root/xorg.conf.new
新しい設定を調整してテストしたら、
ファイルに分割して、標準の場所である、
/usr/local/etc/X11/xorg.conf.d/
に置いてください。
&xorg; でのフォントの使用
Type1 フォント
&xorg;
に付いてくるデフォルトのフォントは、
通常のデスクトップパブリッシングアプリケーションにとっては理想的とは言えない程度のものです。
文字を大きくするとジャギーになりプロフェッショナルとは言えないようなものになりますし、
小さなフォントは頭が悪そうに見えます。
しかし、世の中には質の高い Type1 (&postscript;)
フォントがいくつかあり、
&xorg;
ではそれらを簡単に利用することができます。
例えば、URW フォントコレクション
(x11-fonts/urwfonts)
には高品質の Type1 フォント (Times Roman, Helvetica, Palatino など)
が含まれています。freefont コレクション
(x11-fonts/freefonts)
にはもっとたくさんのフォントが含まれていますが、
それらは Gimp
のようなグラフィックソフトウェアで使用するためのものであり、
スクリーンフォントとしては十分ではありません。
さらに、&xorg;
は簡単に &truetype; フォントを使うように設定することも可能です。
詳しくは、&man.X.7; のマニュアルページか
を参照してください。
上記の Type1 フォントコレクションを Ports Collection
から入れる場合には次のコマンドを実行してください。
&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install clean
freefont や他のコレクションでも同じようにします。
X サーバがこれらのフォントを検出できるようにするには
X サーバ設定ファイル (/etc/X11/xorg.conf)
の適切な場所に次のような行を加えます。
FontPath "/usr/local/share/fonts/urwfonts/"
別の方法としては、
X のセッション中に次のようなコマンドラインを実行します。
&prompt.user; xset fp+ /usr/local/share/fonts/urwfonts
&prompt.user; xset fp rehash
これは動くのですが、X
のセッションが終了すると消えてしまいます。
消えないようにするには X の起動時に読み込まれるファイル
(通常の startx セッションの場合は
~/.xinitrc, XDM
のようなグラフィカルなログインマネージャを通してログインする時は
~/.xsession) に加えておきます。
三番目の方法は新しい
/usr/local/etc/fonts/local.conf
ファイルを使うことです。
これに関しては をご覧ください。
&truetype; フォント
TrueType フォント
フォント
TrueType
&xorg; には、
&truetype; フォントのレンダリング機能が組み込まれています。
この機能を実現するために 2 つの異なるモジュールがあります。
ここでは、freetype
の方が他のフォントレンダリングバックエンドと整合性が高いので、
このモジュールを使うことにします。
freetype モジュールを使うためには
/etc/X11/xorg.conf ファイルの
"Module"
セクションに以下の行を追加するだけです。
Load "freetype"
さて、まずは &truetype; フォント用のディレクトリ
(例えば /usr/local/share/fonts/TrueType)
を作り、そこに &truetype; フォントをすべて放り込みましょう。
&apple; &mac; の &truetype;
フォントは、そのままでは使うことができませんので注意してください。
&xorg; で使うには
&unix;/&ms-dos;/&windows; 用のフォーマットでなければなりません。
ファイルを置いたら mkfontdir を使って
fonts.dir ファイルを作り、
X のフォントレンダラが新しいファイルがイントールされたことを分かるようにしてください。
mkfontdir は package
からインストールできます。
&prompt.root; pkg install mkfontdir
その後、ディレクトリに X
フォントファイルのインデックスを作成してください。
&prompt.root; cd /usr/local/share/fonts/TrueType
&prompt.root; mkfontdir
次に &truetype;
フォントのディレクトリをフォントパスに追加します。
の場合と同じように、
&prompt.user; xset fp+ /usr/local/share/fonts/TrueType
&prompt.user; xset fp rehash
とするか、もしくは xorg.conf
ファイルに FontPath 行を追加します。
これで Gimp や
Apache OpenOffice
といったすべての X アプリケーションから
&truetype; フォントを使うことができます。
(高解像度なディスプレイで見るウェブページ上のテキストみたいな)
とても小さなフォントや
(&staroffice; にあるような)
非常に大きなフォントもかなり綺麗に見えるようになることでしょう。
フォントのアンチエイリアス
フォントのアンチエイリアス
フォント
アンチエイリアス
/usr/local/share/fonts/ と
~/.fonts/ にあるすべての
&xorg; のフォントが、Xft
に対応しているアプリケーションで自動的にアンチエイリアス表示できるようになりました。
KDE, GNOME および
Firefox
のような最新のアプリケーションは、Xft に対応しています。
どのフォントがアンチエイリアスされるかを制御するため、
もしくはアンチエイリアスの特性を設定するために、
/usr/local/etc/fonts/local.conf
ファイルを作成 (すでに存在しているのなら編集) します。
多くの Xft フォントシステムの高度な機能をこのファイルを使って調整できます。
この節ではいくつか簡単なところだけを紹介します。
詳しくは、&man.fonts-conf.5; をご覧ください。
XML
このファイルは XML 形式でなければなりません。
大文字小文字の区別に注意を払い、
すべてのタグが正しく閉じられているか確認してください。
ファイルは一般的な XML ヘッダで始まり、DOCTYPE 定義と
<fontconfig>
タグがその後にきます。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
すでに説明したように、
/usr/local/share/fonts/ と
~/.fonts/ にあるすべてのフォントは
Xft 対応のアプリケーションで利用できます。
これら 2 つ以外に別のディレクトリを追加したいのなら、
/usr/local/etc/fonts/local.conf
に以下のような行を追加します。
<dir>/path/to/my/fonts</dir>
新しいフォント、
そして特に新しいフォントディレクトリを追加したら、
以下のコマンドを実行してフォントキャッシュを再構築してください。
&prompt.root; fc-cache -f
アンチエイリアスをかけることによって境界が少しぼやけ、
そのためにとても小さなテキストはさらに読みやすくなり、
大きなフォントでは ギザギザ
が消えるのです。
しかし、普通のテキストにかけた場合には目が疲れてしまうこともあります。
14 ポイント以下のサイズのフォントについて、
アンチエイリアスをかけないようにするには次の行を加えます。
<match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
フォント
スペーシング
いくつかの等幅フォントは、
アンチエイリアスをかけるとスペーシングがうまくいかなくなる場合があります。
特に KDE でその傾向があるようです。
解決策の一つとして、そういったフォントのスペーシングを
100 に設定する方法があります。
そうするためには次の行を加えてください。
<match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
(これは固定サイズのフォントに "mono"
という一般的な別名をつけます) そして以下を追加します。
<match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match>
Helvetica の様なある種のフォントは、
アンチエイリアスすると問題が起こるでしょう。
たいてい、フォントが縦に半分に切られて表示されます。
最悪の場合、アプリケーションがクラッシュします。
これを回避するには、以下を local.conf
に追加します。
<match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match>
local.conf の編集を終えたら、
ファイルの末尾が </fontconfig>
タグで終わるようにしてください。
これを行わなければ、変更は無視されるでしょう。
最後に、ユーザは自分だけの設定を各自の
.fonts.conf ファイルに追加できます。
これを行うためには、それぞれのユーザが単に
~/.fonts.conf を作成するだけです。
このファイルも XML 形式でなければなりません。
LCD スクリーン
フォント
LCD スクリーン
最後に一つ。LCD
スクリーンではサブピクセルサンプリングが必要な場合があります。
これは、基本的には (水平方向に分かれている) 赤、緑、
青の各コンポーネントを別々に扱うことによって水平方向の解像度を良くするというもので、
劇的な結果が得られます。
これを有効にするには local.conf
ファイルに次の行を加えます。
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
ディスプレイの種類にもよりますが、
rgb ではなく
bgr や vrgb、もしくは
vbgr の場合もあるので、
試してみて最も良いものを使ってください。
X ディスプレイマネージャ
Seth
Kingsley
寄稿:
X ディスプレイマネージャ
&xorg; は、
ログインセッションの管理に用いることのできる
X ディスプレイマネージャ XDM
を提供しています。XDM
はどのディスプレイサーバに接続するかを選択でき、
ログイン名とパスワードの組み合わせなど認証情報を入力できるグラフィカルなインタフェースを提供しています。
この章では、&os; 上での X
ディスプレイマネージャの設定方法について説明します。
デスクトップ環境によっては、
各環境独自のグラフィカルログインマネージャを提供しています。
GNOME ディスプレイマネージャの設定方法については、 を参照してください。
また、KDE ディスプレイマネージャの設定方法については、 を参照してください。
XDM の設定
XDM をインストールするには、
x11/xdm package または port
を使ってください。
インストール後、コンピュータの起動時に、
XDM を起動するように設定するには、
/etc/ttys
の以下のエントリを変更してください。
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure
off の部分を
on に変更して、保存してください。
このエントリの ttyv8 は、
XDM が
9 番目の仮想端末で起動することを示しています。
XDM の設定用ディレクトリは
/usr/local/lib/X11/xdm です。
このディレクトリには XDM
の振る舞いや見た目を変更するために用いられるファイルや、
XDM
の動作中にデスクトップを設定するためのスクリプトやプログラムがあります。
には、
これらのフィアルの機能についてまとめられています。
これらのファイルの正確な文法や使用方法については、&man.xdm.1;
に記述されています。
XDM 設定ファイル
ファイル
説明
Xaccess
XDM
に接続するためのプロトコルは X Display
Manager Connection Protocol (XDMCP)
と呼ばれます。
このファイルにはリモートのマシンからの
XDMCP
接続をコントロールするためのルールセットが書かれます。
デフォルトでは、どのクライアントからの接続も拒否します。
Xresources
このファイルは、XDM
ディスプレイの chooser およびログインスクリーンを設定します。
デフォルトの設定は、シンプルな長方形のログインウィンドウで、
コンピュータのホスト名がログインウィンドウの上部に大きなフォントで表示され、
その下に Login:
および Password:
のプロンプトが表示されます。
このファイルのフォーマットは &xorg;
のドキュメントで記述されている
app-defaults ファイルのものと同じです。
Xservers
これは、chooser
がログインの選択肢として提供するローカルおよびリモートのディスプレイの一覧です。
Xsession
XDM
でユーザのログイン時に実行されるデフォルトのセッションスクリプトです。
通常、各ユーザは ~/.xsession
というカスタマイズしたセッションスクリプトを持っており、
こちらが優先されます。
Xsetup_*
これらは chooser
やログインインタフェースが表示される前に自動的に実行されるアプリケーションです。
それぞれのディスプレイに対して、Xsetup_*
(* はローカルのディスプレイ番号)
という名前のついたスクリプトがあります。
典型的な使い方は xconsole
のようなバックグラウンドで動かすプログラムを一つか二つ起動することです。
xdm-config
このマシンで動いているすべてのディスプレイのグローバルな設定
xdm-errors
このファイルにはサーバプログラムからのエラーが書き出されます。
XDM
が起動しようとしているディスプレイがなんらかの理由でハングした場合、
このファイルのエラーメッセージを見てください。
これらのメッセージは各ユーザの
~/.xsession-errors
ファイルにもセッション毎に書き出されます。
xdm-pid
現在動いている XDM
のプロセス ID。
リモートアクセスの設定
デフォルトでは、XDM
を使ってログインできるのは、同じシステムのユーザのみです。
あるディスプレイサーバに他のシステムのユーザが接続できるようにするためには、
アクセスコントロールのルールを編集し、
コネクションリスナを有効にする必要があります。
XDM
が他のリモートコネクションを待ち受けるようにするためには、
xdm-config の
DisplayManager.requestPort
行を、行頭に !
を置くことでコメントアウトしてください。
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0
変更点を保存して、XDM
を再起動してください。リモートアクセスを制限するには、
/usr/local/lib/X11/xdm/Xaccess
にある例を参考にしたり、詳細について
&man.xdm.1; を参照してください。
デスクトップ環境
Valentino
Vaschetto
寄稿:
この節では、良く使われている 3 つのデスクトップ環境を
&os; 上でにインストールする方法について解説します。
デスクトップ環境とは、
単なるウィンドウマネージャから完全なデスクトップアプリケーションスイートまでカバーします。
Ports Collection の x11-wm カテゴリには、
100 を超えるデスクトップ環境が用意されています。
GNOME
GNOME
GNOME
はユーザフレンドリなデスクトップ環境です。
アプリケーションを起動したりステータスを表示するパネル、
デスクトップ、ツールおよびアプリケーション群、
そしてアプリケーションが互いにうまくやり取りできるような仕組みが含まれています。
&os; 上の GNOME
に関するもっと詳しい情報は、http://www.FreeBSD.org/gnome.
で見ることができます。
このウェブサイトには、&os; での GNOME
のインストール、設定、管理に関する多くの情報があります。
このデスクトップ環境は、package からインストールできます。
&prompt.root; pkg install gnome2
ports から GNOME
を構築するには、以下のコマンドを実行してください。
GNOME は大きなアプリケーションなので、
コンパイルには高速のコンピュータでも時間がかかります。
&prompt.root; cd /usr/ports/x11/gnome2
&prompt.root; make install clean
GNOME を使用するには、
/proc
ファイルシステムをマウントする必要があります。
以下を /etc/fstab に追加して、
システムの起動中にこのファイルシステムをマウントするように設定してください。
proc /proc procfs rw 0 0
GNOME は、
メッセージバスおよびハードウェアアブストラクションに
D-Bus および
HAL を使います。
これらのアプリケーションは、GNOME
の依存として自動的にインストールされます。
/etc/rc.conf の中で、
システムの起動時にスタートするように有効にしてください。
dbus_enable="YES"
hald_enable="YES"
インストール後、
GNOME を起動するように
&xorg; を設定してください。
最も簡単な方法は、GNOME ディスプレイマネージャ
GDM を使うことです。
GDM は、
GNOME package または port
の一部としてインストールされます。
有効にするには、以下の行を /etc/rc.conf
に追加してください。
gdm_enable="YES"
GNOME のすべてのサービスを、
起動するようにしておくと良いでしょう。
このように設定するには、以下の行を /etc/rc.conf
に追加してください。
gnome_enable="YES"
システムを再起動すると、GDM
が自動的に起動します。
GNOME を起動するもう一つの方法は、
.xinitrc を適切に設定した後で、
コマンドラインから startx と入力する方法です。
.xinitrc が既にある場合には、
ウィンドウマネージャを起動する行を
/usr/local/bin/gnome-session
を起動するように変更してください。
このファイルが存在しなければ、
次のコマンドで作成してください。
&prompt.user; echo "exec /usr/local/bin/gnome-session" > ~/.xinitrc
3 つめの方法は、XDM
をディスプレイマネージャとして使う方法です。
この場合は、実行可能な .xsession
というファイルを作成してください。
&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "exec /usr/local/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsession
KDE
KDE
KDE
はもう一つの使いやすいデスクトップ環境です。
このデスクトップは、統一されたルックアンドフィール、
標準化されたメニューおよびツールバー、
キーバインディング、カラースキーム、国際化、
一元化されたダイアログベースのデスクトップ設定とともに、
アプリケーションのスイートを提供します。
KDE の詳細については http://www.kde.org/
をご覧ください。
KDE に関する
&os; 特有の情報については、http://freebsd.kde.org
をご覧ください。
KDE package
をインストールするには以下のように実行してください。
&prompt.root; pkg install x11/kde4
KDE port
を構築するには、以下のコマンドを使ってください。
port のインストールでは、
インストールするアプリケーションを選択するためのメニューが表示されます。
KDE は大きなアプリケーションなので、
高速のコンピュータでもコンパイルには時間がかかります。
&prompt.root; cd /usr/ports/x11/kde4
&prompt.root; make install clean
KDE
ディスプレイマネージャ
KDE では、
/proc
ファイルシステムをマウントする必要があります。
以下の行を /etc/fstab に追加して、
システム起動時にこのファイルシステムが自動的にマウントされるように設定してください。
proc /proc procfs rw 0 0
KDE は、
メッセージバスおよびハードウェアアブストラクションに
D-Bus および
HAL を使います。
これらのアプリケーションは、KDE
の依存として自動的にインストールされます。
/etc/rc.conf の中で、
システムの起動時にスタートするように有効にしてください。
dbus_enable="YES"
hald_enable="YES"
KDE をインストールすると、
KDE のディスプレイマネージャ KDM
もインストールされます。
このディスプレイマネージャを有効にするには、以下の行を
/etc/rc.conf に追加してください。
kdm4_enable="YES"
KDE を起動するもう一つの方法は、
コマンドラインから startx を実行する方法です。
このコマンドを実行するには、~/.xinitrc
に以下の行を追加してください。
exec /usr/local/bin/startkde
KDE を起動する 3 つめの方法は、
XDM を利用する方法です。
この方法を使うには、以下のようにして実行可能な
~/.xsession を作成してください。
&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "exec /usr/local/bin/startkde" >> ~/.xsession
&prompt.user; chmod +x ~/.xsession
KDE を起動した後は、
ビルトインヘルプシステムから、
さまざまなメニューおよびアプリケーションの使用方法などのより詳しい情報を参照できます。
Xfce
Xfce は
GNOME で使われている
GTK+ ツールキットをベースにしたデスクトップ環境ですが、より軽量、
シンプルでかつ効率的でありながら使いやすいデスクトップ環境です。
すべての設定が可能で、メニュー、
アプレットおよびアプリケーションランチャを含むメインパネル、
ファイルマネージャ、サウンドマネージャを提供し、
テーマに対応しています。
速くて軽く、効率的なため、古いマシンや遅いマシン、
メモリの限られたマシンに向いています。
Xfce に関する詳しい情報は http://www.xfce.org
で得られます。
Xfce package
をインストールするには、次のように実行してください。
&prompt.root; pkg install xfce
また、port を構築するには以下のようにしてください。
&prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install clean
GNOME や
KDE とは異なり、
Xfce は、
ログインマネージャを提供していません。
コマンドラインから startx を実行して
Xfce を起動するには、
以下のように Xfce のエントリを
~/.xinitrc に追加してください。
&prompt.user; echo "exec /usr/local/bin/startxfce4 --with-ck-launch" > ~/.xinitrc
もう一つの方法は XDM
を用いる方法です。この方法を使うには、
実行可能な .xsession を作成してください。
&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "exec /usr/local/bin/startxfce4 --with-ck-launch" >> ~/.xsession
&prompt.user; chmod +x ~/.xsession
Compiz Fusion のインストール
魅力的な 3D 効果を使うと、
デスクトップコンピュータを使う楽しさがさらに増えることでしょう。
Compiz Fusion
のインストールは簡単ですが、設定の際には、port
の文書には記載されていないような作業が必要となることがあります。
&os; nVidia ドライバの設定
デスクトップ効果は、
グラフィックカードに極めて高い負荷をかけることがあります。
nVidia ベースのグラフィックカードにおいて、
良いパフォーマンスを出すには、
プロプリエタリなドライバが必要となります。
他のグラフィックカードを使っているユーザは、この節を飛ばし、
xorg.conf の設定に進んでください。
必要となる nVidia ドライバについては、
この問題に関する
FAQ を参照して決めてください。
使用しているカードに対する適切なドライバが決まれば、
インストール作業は他の package
をインストールするのと同じように簡単です。
たとえば、
最新のドライバをインストールするには以下のように実行してください。
&prompt.root; pkg install x11/nvidia-driver
このドライバはカーネルモジュールを作成するので、
このモジュールをシステムの起動時に読み込むように設定してください。
以下の行を /boot/loader.conf
に追加してください。
nvidia_load="YES"
動作しているカーネルに、
カーネルモジュールを今すぐ読み込ませるには、
kldload nvidia
のようなコマンドを実行してください。
しかしながら、&xorg;
のバージョンによっては、
起動時にドライバが読み込まれていないと正しく動かないもありますので、
注意してください。/boot/loader.conf
を編集後は、再起動してください。
読み込まれたカーネルモジュールを使うには、
通常は、xorg.conf
ファイルの一つの行をプロプリエタリなドライバを使うように変更するだけです。
/etc/X11/xorg.conf において、
以下の行を探し出してください。
Driver "nv"
この行を以下のように変更してください。
Driver "nvidia"
いつものように GUI を起動すると、nVidia
のスプラッシュが表示されます。
すべてはこれまで通りに動作するはずです。
デスクトップ効果のための xorg.conf の設定
Compiz Fusion を有効にするには
/etc/X11/xorg.conf
を変更する必要があります。
コンポジット効果を有効にするには、
以下のセクションを追加してください。
Section "Extensions"
Option "Composite" "Enable"
EndSection
以下のような Screen
セクションの場所を見つけてください。
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
...
(Monitor
の後に)
次の二つの行を追加してください。
DefaultDepth 24
Option "AddARGBGLXVisuals" "True"
あなたが使用したいと考えているスクリーン解像度に対応する
Subsection
を探してください。
たとえば、1280x1024 を使用する予定であれば、
次のようなセクションを探してください。
もし希望の解像度の subsection がなければ、
手動でそのエントリを追加してください。
SubSection "Display"
Viewport 0 0
Modes "1280x1024"
EndSubSection
デスクトップコンポジットで
24 ビットのカラーが必要であれば、上述の subsection
を以下のように変更してください。
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024"
EndSubSection
最後に、Module
セクションに
glx
および extmod
モジュールが読み込まれるように設定されていることを確認してください。
Section "Module"
Load "extmod"
Load "glx"
...
前述の設定は、
x11/nvidia-xconfig を
(root 権限で) 実行することで自動的に設定できます。
&prompt.root; nvidia-xconfig --add-argb-glx-visuals
&prompt.root; nvidia-xconfig --composite
&prompt.root; nvidia-xconfig --depth=24
Compiz Fusion のインストールおよび設定
Compiz Fusion のインストールは、
他の package と同様に簡単です。
&prompt.root; pkg install x11-wm/compiz-fusion
インストールが終了したら、グラフィックデスクトップを起動して、
端末から以下のコマンドを通常のユーザで実行してください。
&prompt.user; compiz --replace --sm-disable --ignore-desktop-hints ccp &
&prompt.user; emerald --replace &
使っているウィンドウマネージャ (GNOME
では、Metacity) が、
Compiz Fusion に置き換えられるため、
画面は数秒間ちらつきます。
Emerald がウィンドウデコレーション
(たとえば、閉じる、最小化、最大化ボタンタイトルバーなど)
を取り扱います。
このコマンドをスクリプトに変換して、
(たとえば GNOME デスクトップの
Sessions
に追加して)
起動時に自動的に実行されるようにすることもできます。
#! /bin/sh
compiz --replace --sm-disable --ignore-desktop-hints ccp &
emerald --replace &
これを、たとえば start-compiz
という名前でホームディレクトリに保存して、
以下のように実行可能にしてください。
&prompt.user; chmod +x ~/start-compiz
GUI を使って、このスクリプトを
(GNOME デスクトップの
System,
Preferences,
Sessions にある)
Startup Programs に追加してください。
すべての希望する効果と設定を選択するには、
(もう一度通常のユーザで)
Compiz Config Settings Manager
を実行してください。
&prompt.user; ccsm
GNOME では、
System,
Preferences
メニューから選択することも出来ます。
ビルドの際に gconf support
を選択していたのであれば、
gconf-editor を使って
apps/compiz 以下を見ることで、
これらの設定を確認することも出来ます。
トラブルシューティング
もしマウスが動作しなければ、
先へ進む前にマウスの設定を行う必要があります。
最近の Xorg では、デバイスの自動認識のため、
xorg.conf の
InputDevice セクションは無視されます。
古い設定の記述を利用するには、
このファイルの ServerLayout もしくは、
ServerFlags
セクションに以下の行を追加してください。
Option "AutoAddDevices" "false"
これで、以前のバージョンのように、入力デバイスを
(キーボードレイアウトの変更のように)
必要なオプションを用いて設定できるようになります。
すでに説明したように、デフォルトで
hald
デーモンがキーボードを自動的に認識します。
キーボードレイアウトやモデルを正しく認識しない場合でも、
GNOME,
KDE もしくは
Xfce
のようなデスクトップ環境が、
キーボードの設定ツールを提供しています。
しかしながら、
&man.setxkbmap.1; ユーティリティや
hald の設定ルールを利用することで、
キーボードのプロパティを直接設定できます。
たとえば、フランス語のレイアウトの PC 102
キーボードを使いたい場合には、
hald のキーボード設定ファイル
x11-input.fdi を作成し、
/usr/local/etc/hal/fdi/policy
ディレクトリに保存してください。
このファイルは以下を含んでいる必要があります。
<?xml version="1.0" encoding="iso-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_options.XkbModel" type="string">pc102</merge>
<merge key="input.x11_options.XkbLayout" type="string">fr</merge>
</match>
</device>
</deviceinfo>
このファイルがすでに存在する場合には、
キーボードの設定に関する部分をただ単にコピーし、
ファイルに追加してください。
hald
がこのファイルを読み込むように、
コンピュータを再起動してください。
X 端末やスクリプトから以下のコマンドラインを実行することでも、
同様に設定できます。
&prompt.user; setxkbmap -model pc102 -layout fr
/usr/local/share/X11/xkb/rules/base.lst
には、利用可能なキーボード、
レイアウトおよびオプションの一覧があります。
&xorg;
のチューニング
xorg.conf.new
設定ファイルを好みに合うように調整できます。
&man.emacs.1; や &man.ee.1;
のようなテキストエディタでファイルを開いてください。
古いモニタや、通常とは異なるモデルで、
同期周波数の自動認識に対応していない場合には、
以下のような設定を xorg.conf.new の
"Monitor"
セクションの下に加えてください。
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSection
ほとんどのモニタは同期周波数の自動認識に対応しているので、
これらの値を手動で入力する必要はありません。
自動認識に対応していないモニタでは、
ダメージの可能性を避けるため、
メーカーが提供している値のみを入力してください。
X はモニタが対応していれば DPMS (Energy Star)
機能を使うことができます。
&man.xset.1; プログラムでタイムアウトをコントロールしたり、
強制的にスタンバイ、サスペンドや電源オフにすることができます。
モニタの DPMS 機能を有効にしたい場合は、
"Monitor"
セクションに次の行を加えてください。
Option "DPMS"
xorg.conf
xorg.conf.new
設定ファイルはエディタで開いたままにしておき、
デフォルトの解像度と色数を好みで選んでください。
"Screen"
セクションで定義されます。
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSection
DefaultDepth というキーワードは
実行時のデフォルトの色数について記述するためのものです。
&man.Xorg.1; のコマンドラインスイッチ
が使用された場合はそちらが優先されます。
Modes というキーワードは、
与えられた色数におけるデフォルトの解像度を記述しておくためのものです。
ターゲットのシステムのグラフィックハードウェアによって定義されている、
VESA スタンダードモードのみがサポートされていることに注意してください。
上の例ではデフォルトの色数はピクセルあたり 24 ビットであり、
この色数での解像度は 1024 ピクセル× 768 ピクセルです。
最後に、設定ファイルを保存し、
上の例にあるようにテストしてみてください。
トラブルシューティングの過程で助けとなるツールのひとつに
&xorg; のログファイルがあります。
これには、&xorg;
サーバが検知したデバイスそれぞれについての情報があります。
&xorg; のログファイル名は
/var/log/Xorg.0.log
という形式です。実際のログファイル名は
Xorg.0.log から
Xorg.8.log のように変わります。
すべてうまくいったなら、設定ファイルを &man.Xorg.1;
が見つけることができる共通の場所に置きます。
これは、通常は /etc/X11/xorg.conf や
/usr/local/etc/X11/xorg.conf です。
&prompt.root; cp xorg.conf.new /etc/X11/xorg.conf
これで &xorg; の設定は完了です。
&man.startx.1; ユーティリティで
&xorg; を起動できます。
&man.xdm.1; を使って &xorg;
サーバを起動することもできます。
&intel; i810
グラフィックチップセットの設定
Intel i810 graphic chipset
&intel; i810 統合チップセットを設定するには、
&xorg; にカードを制御させるために
AGP プログラミングインタフェースである
agpgart が必要になります。
詳しくは、&man.agp.4;
ドライバのマニュアルページをご覧ください。
このドライバを用いることで、
他のグラフィックボードと同様に設定を行うことができるようになります。
カーネルに &man.agp.4; ドライバが組み込まれていないシステムでは、
このモジュールを &man.kldload.8;
を使って読み込もうとしても動作しないことに注意してください。
このドライバは、
起動時にカーネル内に存在するようにカーネル内部に組み込むか、
/boot/loader.conf
を使わなければなりません。
ワイドスクリーンフラットパネルの追加
ワイドスクリーンフラットパネルコンフィグレーション
この節では、設定に関する幾分高度な知識を必要とします。
これまでに述べた標準ツールを使って設定に失敗する場合は、
ログファイルを参照してください。
ログファイルには、
設定のために有用な情報が十分含まれています。
テキストエディタを使用する必要があるでしょう。
現在のワイドスクリーン
(WSXGA, WSXGA+, WUXGA, WXGA, WXGA+ など) は、
16:10 や 10:9 形式、または
(問題を含む可能性のある) 他のアスペクト比に対応しています。
以下は、16:10 アスペクト比のスクリーン解像度の例です。
2560x1600
1920x1200
1680x1050
1440x900
1280x800
これらの解像度のひとつを以下のように
"Screen" セクション の
可能な Mode に追加してください。
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1680x1050"
EndSubSection
EndSection
&xorg; は、I2C/DDC
情報を通してワイドスクリーンの解像度に関する情報を取得できるので、
モニタの周波数や解像度の範囲を把握しています。
もし、これらの ModeLines
がドライバに存在しないのであれば、
&xorg;
にヒントを与えなけれならないでしょう。
ModeLine
を手動で設定するのに十分な情報を
/var/log/Xorg.0.log
から得ることができます。
以下のような情報を探してください。
(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz
これは EDID と呼ばれる情報です。
この情報を用いて ModeLine
を作成するには、
正しい順番に数字を入力するだけです。
ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>
この例では Monitor セクション の
ModeLine
は以下のようになります。
Section "Monitor"
Identifier "Monitor1"
VendorName "Bigname"
ModelName "BestModel"
ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option "DPMS"
EndSection
以上の簡単な編集作業が終わったら、
新しいワイドスクリーンモニタ上で X が動作するでしょう。
Compiz Fusion 使用時のトラブルシューティング
Compiz Fusion
をインストールし、説明されたようにコマンドを実行すると、
ウィンドウのタイトルバーやボタンが表示されません。
何が問題でしょうか?
おそらく /etc/X11/xorg.conf
の設定が行われていていないのでしょう。
このファイルを詳細に確認してください。特に
DefaultDepth および
AddARGBGLXVisuals
ディレクティブを確認してください。
Compiz Fusion
を起動するコマンドを実行すると、X サーバがクラッシュし、
コンソールに戻ります。何が問題でしょうか?
/var/log/Xorg.0.log
ファイルを確認すると、
X の起動時のエラーメッセージを探し出すことができます。
多くの場合は、以下のようなものです。
(EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X
(EE) NVIDIA(0): log file that the GLX module has been loaded in your X
(EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If
(EE) NVIDIA(0): you continue to encounter problems, Please try
(EE) NVIDIA(0): reinstalling the NVIDIA driver.
これは通常 &xorg;
をアップグレードした時に起きる現象です。
x11/nvidia-driver package
をインストールして glx を再構築してください。