1.14 -> 1.15	printing/chapter.sgml
	1.19 -> 1.20	linuxemu/chapter.sgml

Submitted by:	Hiroki Sato <hrs@geocities.co.jp>
Reviewed by:	kuriyama
This commit is contained in:
Jun Kuriyama 1999-09-29 15:40:34 +00:00
parent 8a59ad6780
commit 268caa2ee2
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=5768
2 changed files with 122 additions and 26 deletions
ja_JP.eucJP/books/handbook
linuxemu
printing

View file

@ -2,8 +2,8 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.19
$FreeBSD: doc/ja_JP.eucJP/books/handbook/linuxemu/chapter.sgml,v 1.4 1999/09/23 14:25:15 kuriyama Exp $
Original revision: 1.20
$FreeBSD: doc/ja_JP.eucJP/books/handbook/linuxemu/chapter.sgml,v 1.5 1999/09/24 15:12:37 kuriyama Exp $
-->
<chapter id="linuxemu">
@ -73,7 +73,7 @@ options SYSVSHM</programlisting>
options "COMPAT_43"</programlisting>
<para>LKM
を使用せずエミュレータをカーネルに静的リンクしたい場合は, 以下の行を追加します.</para>
を使用せずエミュレータをカーネルにスタティックリンクしたい場合は, 以下の行を追加します.</para>
<programlisting>
options LINUX</programlisting>
@ -127,14 +127,15 @@ linux</programlisting>
</sect2>
<sect2>
<title>2.2-RELEASE への Linux エミュレーションのインストール</title>
<title>2.2.2-RELEASE およびそれ以降の 2.2 系列への
Linux エミュレーションのインストール</title>
<para><literal>options LINUX</literal> や <literal>options
COMPAT_LINUX</literal> を指定する必要はなくなりました.
Linux エミュレーションは
LKM(&ldquo;ローダブルカーネルモジュール&rdquo;) を使用して,
リブートせず簡単にインストールできます. スタートアッ
プファイルで以下のように指定します.</para>
LKM(&ldquo;Loadable Kernel Module&rdquo;)
を使用しているため, インストールの際に再起動する必要はありません.
ただし, スタートアップファイルで以下のように指定する必要があります.</para>
<orderedlist>
<listitem>
@ -175,7 +176,63 @@ EXEC 0 4 f09e6000 001c f09ec010 1 linux_mod</screen>
options LINUX</programlisting>
をカーネルの設定ファイルに指定して,
エミュレータをスタティックにリンク
エミュレータをスタティックリンク
してください.
<link linkend="kernelconfig">
FreeBSDカーネルのコンフィグレーション</link>
の節の記述にしたがって config と,
新しいカーネルのインストールをおこ
なってください.</para>
</sect2>
<sect2>
<title>3.0-RELEASE 以降への
Linux エミュレーションのインストール</title>
<para><literal>options LINUX</literal> や <literal>options
COMPAT_LINUX</literal> を指定する必要はなくなりました.
Linux エミュレーションは
KLD オブジェクト(&ldquo;Kernel LoaDable object&rdquo;)
を使用しているため, インストールの際に再起動する必要はありません.
ただし, スタートアップファイルで以下のように指定する必要があります.</para>
<orderedlist>
<listitem>
<para><filename>/etc/rc.conf</filename>
に以下の行が必要です.</para>
<programlisting>
linux_enable=YES</programlisting>
</listitem>
<listitem>
<para>これは結果的に, <filename>/etc/rc.i386</filename>
の以下の指定を有効にします.</para>
<programlisting>
# Start the Linux binary emulation if requested.
if [ "X${linux_enable}" = X"YES" ]; then echo -n '
linux'; linux &gt; /dev/null 2&gt;&amp;1
fi</programlisting>
</listitem>
</orderedlist>
<para>KLD がきちんとロードされたかどうかを確認するには, kldstat
を使用します.</para>
<screen>&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.ko</screen>
<para>
何らかの理由で, Linux KLD がロードできない場合は,
<programlisting>
options LINUX</programlisting>
をカーネルの設定ファイルに指定して,
エミュレータをスタティックリンク
してください.
<link linkend="kernelconfig">
FreeBSDカーネルのコンフィグレーション</link>
@ -203,7 +260,7 @@ options LINUX</programlisting>
<para>これで, Linux
エミュレータが動作するようになったはずです. 伝説(とメー
ルのアーカイブ <!-- smiley --> :-) によれば, Linux
エミュレーションは, ZMAGIC ライブラ リとリンクされている
エミュレーションは, ZMAGIC ライブラリとリンクされている
Linux バイナリに対して, 最もうまく動作するようで す.
Slackware V2.0 などに使われている QMAGIC ライブラリだと,
エミュレータが胸やけするかもしれません.
@ -218,13 +275,13 @@ options LINUX</programlisting>
<para>&ldquo;ports&rdquo;
ディストリビューションが手元にない場合は, 手動でライブラ
リをインストールする必要があります. プログラムが必要とする
Linux のシェ アードライブラリとランタイムリンカが必要です.
Linux のシェアードライブラリとランタイムリンカが必要です.
また Linux ライブラリ の用の``shadow root'' ディレクトリ,
<filename>/compat/linux</filename>, を作成する必要があ
ります. FreeBSD で動作する Linux
のプログラムが使用するシェアードライ
ブラリは,まずこのファイルツリーから検索されます. 例えば,
Linux のプロ グラムが <filename>/lib/libc.so</filename>
Linux のプログラムが <filename>/lib/libc.so</filename>
をロードしようとした場合には, FreeBSD は, まず
<filename>/compat/linux/lib/libc.so</filename>
を開こうとします. 存在にしなかった場合には, 次に
@ -245,7 +302,7 @@ options LINUX</programlisting>
<para>Linux のプログラムが必要とする
シェアードライブラリを探す必要があるのは, FreeBSD
のシステムに Linux
のプログラムをインストールする最初の数回だ けでしょう.
のプログラムをインストールする最初の数回だけでしょう.
それが過ぎれば, 十分な Linux のシェアードライブラリがシス
テムにインストールされ, 新しくインストールした Linux
のバイナリも, 余
@ -262,7 +319,7 @@ options LINUX</programlisting>
そしてどこで入手できるか, どのように探したらよいでしょうか?
基本的には, 以下の2種類の方法があり
ます(以下の手順にしたがう場合には,
必要なインストール作業をおこなう FreeBSD シ ステム上で root
必要なインストール作業をおこなう FreeBSD システム上で root
として作業をおこなう必要があります).</para>
<para>Linux システムを使用でき,
@ -283,7 +340,7 @@ libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
<filename>/compat/linux</filename> の下 に置き,
最初のカラムに示されるファイル名から
シンボリックリンクを張る必 要があります. すなわち, FreeBSD
のシステムで, 以下のようなファイルが必 要となります.</para>
のシステムで, 以下のようなファイルが必要となります.</para>
<!-- kuriyama - Here of English ver. should be checked. -->
<screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
@ -316,9 +373,9 @@ libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
<para>このように最後の番号が1つか2つ古いだけならば, 普通は
<filename>/lib/libc.so.4.6.29</filename>
をコピーする必要はありません. わずかに古いライブラ リでも,
をコピーする必要はありません. わずかに古いライブラリでも,
プログラムは動作するはずだからです. もちろん,
新しいライブラリ と置き換えて,
新しいライブラリと置き換えて,
以下のようにしても構いません.</para>
<screen>/compat/linux/lib/libc.so.4.6.29
@ -331,7 +388,7 @@ libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
なことに注意してください. FreeBSD のランタイムリンカは,
メジャーリビジョ
ン番号の一致したライブラリを検索しますから,
ユーザが気にする必要はあり ません.</para>
ユーザが気にする必要はありません.</para>
</note>
</sect3>
@ -1052,7 +1109,9 @@ richc.isdn.bcm.tmc.edu 9845-03452-90255</screen>
</para>
<para>
さて, どちらを本来の FreeBSD ABI と呼ぶべきなのでしょうか?
さて, どちらを本来の FreeBSD ABI(訳注: Applications Binary Interface;
同じ CPU を利用したコンピュータ間でバイナリを共有するための規約のこと)
と呼ぶべきなのでしょうか?
実は, どちらが本来のものであるかということを論ずることに意味はありません.
基本的に, FreeBSD <emphasis>グルー</emphasis>関数群はカーネルの中に静的にリンクされていて,
Linux <emphasis>グルー</emphasis>関数群は静的にリンクすることも,

View file

@ -2,8 +2,8 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.14
$FreeBSD$
Original revision: 1.15
$FreeBSD: doc/ja_JP.eucJP/books/handbook/printing/chapter.sgml,v 1.3 1999/09/06 06:53:33 peter Exp $
-->
<chapter id="printing">
@ -1592,8 +1592,7 @@ exit 2</programlisting>
# Installed in /usr/local/libexec/hpif
#
# Simply copies stdin to stdout. Ignores all filter arguments.
# Tells printer to treat LF as CR+LF. Writes a form feed character
# after printing job.
# Tells printer to treat LF as CR+LF. Ejects the page when done.
printf "\033&amp;k2G" &amp;&amp; cat &amp;&amp; printf "\f" &amp;&amp; exit 0
exit 2</programlisting>
@ -3144,7 +3143,20 @@ first_two_chars=`expr "$first_line" : '\(..\)'`
if [ "$first_two_chars" = "%!" ]; then
#
# It is PostScript; use Ghostscript to scan-convert and print it
# It is PostScript; use Ghostscript to scan-convert and print it.
#
# Note that PostScript files are actually interpreted programs,
# and those programs are allowed to write to stdout, which will
# mess up the printed output. So, we redirect stdout to stderr
# and then make descriptor 3 go to stdout, and have Ghostscript
# write its output there. Exercise for the clever reader:
# capture the stderr output from Ghostscript and mail it back to
# the user originating the print job.
#
exec 3&gt;&amp;1 1&gt;&amp;2
/usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
-sOutputFile=/dev/fd/3 - &amp;&amp; exit 0
#
/usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \
&amp;&amp; exit 0
@ -3154,7 +3166,7 @@ else
# Plain text or HP/PCL, so just print it directly; print a form
# at the end to eject the last page.
#
echo "$first_line" &amp;&amp; cat &amp;&amp; printf "\f" &amp;&amp; exit 0
echo $first_line &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp; exit 0
fi
exit 2</programlisting>
@ -3476,7 +3488,7 @@ exec grops</programlisting>
# Installed in /usr/local/libexec/hprf
#
printf "\033&amp;k2G" &amp;&amp; fpr &amp;&amp; printf "\f" &amp;&amp; exit 0
printf "\033&amp;k2G" &amp;&amp; fpr &amp;&amp; printf "\033&amp;l0H" &amp;&amp; exit 0
exit 2</programlisting>
<para>そして, このフィルタを使用可能にするため, 以下の行を
@ -5385,7 +5397,32 @@ total 337.00 154 $ 6.74</screen>
</listitem>
</varlistentry>
<varlistentry><term>»ä¤ÎºÊ, Mary Kelly <email>urquhart@argyre.colorado.edu</email></term>
<varlistentry>
<term>&a.jfieber;</term>
<listitem>
<para> Ghostscript を使って PostScript プリンタをシミュレートしている
FreeBSD システムに対し, Windows95 から印刷した際に
正しく出力されなかった不具合のデバッグと,
この文書の修正に関して助言してくれたことに.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Stephen Montgomery-Smith
<email>stephen@math.missouri.edu</email></term>
<listitem>
<para>HP 製プリンタにおける最後の改ページ指定を,
"\f" ではなく "\033&amp;l0H" を使うよう提案してくれたことに.
前者には余分に一枚白紙を出力してしまう場合があるという,
後者にない現象があります.</para>
</listitem>
</varlistentry>
<varlistentry><term>私の妻, Mary Kelly
<email>urquhart@argyre.colorado.edu</email></term>
<listitem>
<para>彼女と一緒にいるよりもずっと長い時間を FreeBSD のため
に費やすことを許してくれたことに.</para>