<!--
     The FreeBSD Russian Documentation Project

     $FreeBSD$
     $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/serialcomms/chapter.sgml,v 1.5 2004/01/19 12:08:25 den Exp $

     Original revision: 1.84
-->

<chapter id="serialcomms">
  <title>Последовательные соединения</title>

  <sect1 id="serial-synopsis">
    <title>Краткое описание</title>

    <indexterm><primary>последовательные соединения</primary></indexterm>
    <para>В &unix; всегда была поддержка последовательных соединений.
      Фактически, самые первые &unix; машины использовали последовательные
      линии для пользовательского ввода/вывода.  Многое изменилось с тех
      пор, когда среднестатистический <quote>терминал</quote> состоял из
      10-символов-в-секунду последовательного принтера и клавиатуры.
      Эта глава рассказывает о некоторых способах, которыми FreeBSD
      использует последовательные соединения.</para>

    <para>Прочитав эту главу, вы узнаете:</para>
    <itemizedlist>
      <listitem><para>Как подсоединить терминалы к системе
	  FreeBSD.</para></listitem>
      <listitem><para>Как использовать модем для дозвона на
	  удаленные хосты.</para></listitem>
      <listitem><para>Как разрешить удаленным пользователям
	  входить в вашу систему с помощью модема.</para></listitem>
      <listitem><para>Как загрузить систему с последовательной
	  консоли.</para></listitem>
    </itemizedlist>

    <para>Перед прочтением этой главы вам потребуется:</para>
    <itemizedlist>
      <listitem><para>Узнать как настраивать и устанавливать новое ядро (<xref
	linkend="kernelconfig">).</para></listitem>
      <listitem><para>Понять, что такое права доступа и процессы &unix; (<xref
	linkend="basics">).</para></listitem>
      <listitem><para>Кроме этого вам потребуется техническое руководство на
	последовательное оборудование (модем или мультипортовую карту),
	которую вы хотите использовать с FreeBSD.</para></listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="serial">
    <title>Введение</title>

    <!-- XXX Write me! -->

    <sect2 id="serial-terminology">
      <title>Терминология</title>

      <variablelist>
	<indexterm><primary>bits-per-second</primary></indexterm>
	<indexterm><primary>бит-в-секунду</primary></indexterm>
	<varlistentry>
	  <term>bps</term>
	  <listitem>
	    <para>Бит в секунду (Bits per Second) &mdash; скорость
	      передачи данных</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>DTE</term>
	  <indexterm><primary>DTE</primary></indexterm>
	  <listitem>
	    <para>Терминальное оборудование (Data Terminal Equipment)
	      &mdash; например, ваш компьютер</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>DCE</term>
	  <indexterm><primary>DCE</primary></indexterm>
	  <listitem>
	    <para>Оборудование связи (Data Communications Equipment)
	      &mdash; ваш модем</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RS-232</term>
	  <indexterm><primary>кабели RS-232C</primary></indexterm>
	  <listitem>
	    <para>Стандарт EIA для аппаратных последовательных
	      соединений</para>
	  </listitem>
	</varlistentry>
      </variablelist>

      <para>При упоминании скорости передачи данных, в этой главе
	не используется термин <quote>бод</quote> (<quote>baud</quote>).
	Бод означает количество электрических импульсов, которые могут
	быть переданы за период времени, а <quote>bps</quote> это
	<emphasis>корректный</emphasis> термин для использования
	(он хотя бы не создает столько проблем как предыдущий).</para>
    </sect2>

    <sect2 id="serial-cables-ports">
      <title>Кабели и порты</title>

      <para>Для подсоединения модема или терминала к системе FreeBSD
	потребуется последовательный порт и подходящий кабель
	для последовательного устройства.  Если вы уже знаете о
	аппаратном обеспечении и требуемых кабелях, можете
	пропустить этот раздел.</para>

      <sect3 id="term-cables">
	<title>Кабели</title>

	<para>Есть несколько различных видов последовательных кабелей.  Два
	  наиболее часто используемых в нашей ситуации типа это нуль-модемный
	  и стандартный (<quote>прямой</quote>) RS-232 кабель.  Документация
	  на оборудование должна описывать тип требуемого кабеля.</para>

	<sect4 id="term-cables-null">
	  <title>Нуль-модемные кабели</title>

	  <indexterm>
	    <primary>нуль-модемный кабель</primary>
	  </indexterm>
	  <para>Нуль модемный кабель пропускает некоторые сигналы, такие как
	    <quote>signal ground</quote>, напрямую, а другие
	    <quote>заворачивает</quote>.  Например, контакт
	    <quote>send data</quote> на одном конце соединяется с контактом
	    <quote>receive data</quote> на другом.</para>

	  <para>Если вы изготавливаете собственный кабели, то можете сделать
	    собственный кабель для использования с терминалами.  Эта таблица
	    показывает названия сигналов RS-232C и номера контактов на
	    разъеме DB-25.</para>

	  <informaltable frame="none">
	    <tgroup cols="5">
	      <thead>
		<row>
		  <entry>Сигнал</entry>
		  <entry>Контакт</entry>
		  <entry></entry>
		  <entry>Контакт</entry>
		  <entry>Сигнал</entry>
		</row>
	      </thead>

	      <tbody>
		<row>
		  <entry>SG</entry>
		  <entry>7</entry>
		  <entry>соединен с</entry>
		  <entry>7</entry>
		  <entry>SG</entry>
		</row>

		<row>
		  <entry>TxD</entry>
		  <entry>2</entry>
		  <entry>соединен с</entry>
		  <entry>3</entry>
		  <entry>RxD</entry>
		</row>

		<row>
		  <entry>RxD</entry>
		  <entry>3</entry>
		  <entry>соединен с</entry>
		  <entry>2</entry>
		  <entry>TxD</entry>
		</row>

		<row>
		  <entry>RTS</entry>
		  <entry>4</entry>
		  <entry>соединен с</entry>
		  <entry>5</entry>
		  <entry>CTS</entry>
		</row>

		<row>
		  <entry>CTS</entry>
		  <entry>5</entry>
		  <entry>соединен с</entry>
		  <entry>4</entry>
		  <entry>RTS</entry>
		</row>

		<row>
		  <entry>DTR</entry>
		  <entry>20</entry>
		  <entry>соединен с</entry>
		  <entry>6</entry>
		  <entry>DSR</entry>
		</row>

		<row>
		  <entry>DCD</entry>
		  <entry>8</entry>
		  <entry></entry>
		  <entry>6</entry>
		  <entry>DSR</entry>
		</row>

		<row>
		  <entry>DSR</entry>
		  <entry>6</entry>
		  <entry>соединен с</entry>
		  <entry>20</entry>
		  <entry>DTR</entry>
		</row>
	      </tbody>
	    </tgroup>
	  </informaltable>

	  <note>
	    <para>Соедините <quote>Data Set Ready</quote> (DSR) и
	      <quote>Data Carrier Detect</quote> (DCD) внутри корпуса
	      коннектора, а затем подключите к <quote>Data Terminal
	        Ready</quote> (DTR) на другой стороне.</para>
	  </note>
	</sect4>

	<sect4 id="term-cables-std">
	  <title>Стандартные кабели RS-232C</title>
	  <indexterm><primary>кабели RS-232C</primary></indexterm>

	  <para>Стандартный последовательный кабель пропускает все RS-232C
	    сигналы напрямую.  Так, <quote>send data</quote> на одном конце
	    кабеля соединяется с контактом <quote>send data</quote> на другом
	    конце.  Этот тип кабеля предназначен для подсоединения модема,
	    а также подходит для некоторых терминалов.</para>
	</sect4>
      </sect3>

      <sect3 id="term-ports">
	<title>Порты</title>

	<para>Последовательные порты это устройства, через которые данные
	  передаются между компьютером с FreeBSD и терминалом.  Этот
	  раздел описывает типы существующих портов и их адресацию в
	  FreeBSD.</para>

	<sect4 id="term-portkinds">
	  <title>Типы портов</title>

	  <para>Существует несколько типов последовательных портов.  Перед
	    изготовлением кабеля, вам потребуется убедиться, что он
	    подходит к портам терминала и системы FreeBSD.</para>

	  <para>Большинство терминалов используют порты DB25.  Персональные
	    компьютеры, включая PC под управлением FreeBSD, используют порты
	    DB25 или DB9.  Если у вас есть мультипортовая последовательная
	    карта для PC, там могут быть RJ-12 или RJ-45 порты.</para>

	  <para>Обратитесь к сопровождающей документации на оборудование
	    за информацией об используемых портах.  Можно также определить
	    тип используемых портов по их внешнему виду.</para>
	</sect4>

	<sect4 id="term-portnames">
	  <title>Имена портов</title>

	  <para>В FreeBSD доступ к каждому последовательному порту может быть
	    получен через файл в каталоге <filename>/dev</filename>.
	    Есть два различных типа файлов:</para>

	  <itemizedlist>
	    <listitem>
	      <para>Порты входящих соединений (dial-in) называются
		<filename>/dev/ttyd<replaceable>N</replaceable></filename>,
		где <replaceable>N</replaceable> это номер порта начиная
		с нуля.  Обычно, порты входящих соединений используются для
		терминалов.  Для корректной работы этим портам требуется,
		чтобы последовательный кабель передавал сигнал data carrier
		detect (DCD).</para>
	    </listitem>

	    <listitem>
	      <para>Порты исходящих соединений (call-out) называются
		<filename>/dev/cuaa<replaceable>N</replaceable></filename>.
		Они обычно используются не для терминалов, а только для
		модемов.  Вы можете использовать эти порты если
		последовательный кабель или терминал не поддерживает сигнал
		DCD.</para>
	    </listitem>
	  </itemizedlist>

	  <para>Если вы соединили терминал с первым последовательным портом
	    (<devicename>COM1</devicename> в &ms-dos;), используйте
	    <filename>/dev/ttyd0</filename> для доступа к терминалу.  Если
	    терминал соединен со вторым последовательным портом (известным
	    также как <devicename>COM2</devicename>), используйте
	    <filename>/dev/ttyd1</filename>, и так далее.</para>

	</sect4>
      </sect3>
    </sect2>

    <sect2>
      <title>Настройка ядра</title>

      <para>FreeBSD c настройками по умолчанию поддерживает
	последовательные порты.  В мире &ms-dos; они известны как
	<devicename>COM1</devicename>,
	<devicename>COM2</devicename>,
	<devicename>COM3</devicename>, и
	<devicename>COM4</devicename>.  На данный момент в FreeBSD
	есть поддержка как <quote>простых</quote> мультипортовых
	карт с последовательными интерфейсами, таких как
	BocaBoard 1008 и 2016, так и более <quote>умных</quote>
	мультипортовых карт, например карт Digiboard и
	Stallion Technologies.  Тем не менее, ядро по умолчанию
	определяет только стандартные COM порты.</para>

      <para>Чтобы увидеть, как ядро определяет последовательные
	порты, просмотрите сообщения, выводимые во время загрузки ядра,
	или используйте команду <command>/sbin/dmesg</command> для
	вывода сообщений ядра еще раз.  В частности, обратите внимание
	на сообщения, начинающиеся с символов
	<literal>sio</literal>.</para>

      <tip><para>Для просмотра только тех сообщений, которые содержат
	слово <literal>sio</literal>, используйте команду:</para>

      <screen>&prompt.root; <userinput>/sbin/dmesg | grep 'sio'</userinput></screen>
      </tip>

      <para>Например, в системе с четырьмя последовательными портами,
	появятся такие специфичные для последовательных портов
	сообщения:</para>

      <screen>sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A</screen>

      <para>Если ядро не распознает все последовательные порты,
	вам возможно потребуется настроить ядро FreeBSD.
	За детальной информацией по настройке ядра обращайтесь
	к главе <xref linkend="kernelconfig">.</para>

      <para>Строки соответствующих устройств в файле конфигурации
	ядра FreeBSD&nbsp;4.X будут выглядеть примерно так:</para>

      <programlisting>device		sio0	at isa? port IO_COM1 irq 4
device		sio1	at isa? port IO_COM2 irq 3
device		sio2	at isa? port IO_COM3 irq 5
device		sio3	at isa? port IO_COM4 irq 9</programlisting>

      <para>и примерно так для FreeBSD&nbsp;5.X:</para>

      <programlisting>device		sio</programlisting>

      <para>Вы можете закомментировать или полностью удалить эти
	строки для отсутствующих устройств в FreeBSD&nbsp;4.X;
	в FreeBSD&nbsp;5.X вам потребуется отредактировать файл
	<filename>/boot/device.hints</filename> для настройки
	последовательных портов.  Обратитесь к странице справочника
	&man.sio.4; за дополнительной информацией о настройке
	последовательных портов и мультипортовых карт. Будьте
	осторожны при использовании настроек, которые работали
	в предыдущих версиях FreeBSD, поскольку флаги устройств
	и синтаксис изменились в новых версиях.</para>

      <note>
	<para><literal>port IO_COM1</literal> это синоним для
	  <literal>port 0x3f8</literal>, <literal>IO_COM2</literal> для
	  <literal>0x2f8</literal>, <literal>IO_COM3</literal> для
	  <literal>0x3e8</literal>, и <literal>IO_COM4</literal> для
	  <literal>0x2e8</literal>.  Это наиболее часто используемые
	  для соответствующих последовательных портов адреса.
	  Наиболее часто используемые прерывания 4, 3, 5, и 9.
	  Имейте ввиду, что обычные последовательные порты <emphasis>не
	  могут</emphasis> совместно использовать прерывания на ISA PC
	  (на мультипортовых картах есть электроника, позволяющая всем
	  чипам 16550A на плате совместно использовать одно или два
	  IRQ).</para>
      </note>

    </sect2>

    <sect2>
      <title>Специальные файлы устройств</title>

      <para>К большинству устройств ядра можно получить доступ через
	<quote>специальные файлы устройств</quote>, расположенные в
	каталоге <filename>/dev</filename>.  К устройствам
	<devicename>sio</devicename> можно получить доступ через
	<filename>/dev/ttyd<replaceable>N</replaceable></filename>
	(устройства входящих вызовов, dial-in)
	и <filename>/dev/cuaa<replaceable>N</replaceable></filename>
	(устройства исходящих вызовов, call-out).
	FreeBSD предоставляет также устройства инициализации
	(<filename>/dev/ttyid<replaceable>N</replaceable></filename> и
	<filename>/dev/cuaia<replaceable>N</replaceable></filename>),
	устройства блокировки
	(<filename>/dev/ttyld<replaceable>N</replaceable></filename> и
	<filename>/dev/cuala<replaceable>N</replaceable></filename>).
	Первые используются для инициализации параметров порта при
	каждом его открытии (таких как <literal>crtscts</literal>
	для модемов, использующих сигналы <literal>RTS/CTS</literal>
	для управления потоком).  Устройства блокировки используются
	для установки флага блокировки на порт и предотвращения
	изменения определенных параметров пользователями или
	программами; обратитесь к страницам справочника &man.termios.4;,
	&man.sio.4; и &man.stty.1; соответственно за информацией о
	параметрах терминала, блокировании и инициализации устройств и
	настройке терминала.</para>

      <sect3>
	<title>Создание специальных файлов устройств</title>

	<note><para>FreeBSD&nbsp;5.0 включает файловую систему
	  &man.devfs.5;, которая автоматически создает файлы
	  устройств по мере необходимости.  Если вы работаете
	  с версией FreeBSD, поддерживающей <literal>devfs</literal>
	  просто пропустите этот раздел.</para></note>

	<para>В каталоге <filename>/dev</filename> находится shell скрипт,
	  называющийся <command>MAKEDEV</command>, который управляет
	  специальными файлами устройств.  Чтобы использовать
	  <command>MAKEDEV</command> для создания специальных файлов
	  устройств исходящих соединений для порта
	  <devicename>COM1</devicename> (порт 0), зайдите
	  (<command>cd</command>) в каталог <filename>/dev</filename> и
	  выполните команду <command>MAKEDEV ttyd0</command>.
	  Точно так же, для создания специальных файлов устройств
	  исходящих соединений для порта <devicename>COM2</devicename>
	  (порт 1), используйте <command>MAKEDEV ttyd1</command>.</para>

	<para><command>MAKEDEV</command> создаст не только специальный файл
	  устройства
	  <devicename>/dev/ttyd<replaceable>N</replaceable></devicename>
	  но также
	  <devicename>/dev/cuaa<replaceable>N</replaceable></devicename>,
	  <devicename>/dev/cuaia<replaceable>N</replaceable></devicename>,
	  <devicename>/dev/cuala<replaceable>N</replaceable></devicename>,
	  <devicename>/dev/ttyld<replaceable>N</replaceable></devicename>,
	  и
	  <devicename>/dev/ttyid<replaceable>N</replaceable></devicename>.
	</para>

	<para>После создания специальных файлов устройств, обязательно
	  проверьте права на файлы (особенно на файлы
	  <filename>/dev/cua*</filename>), чтобы убедиться, что только те
	  пользователи, которым дан доступ на эти файлы, могут читать и писать
	  в них &mdash; возможно, вы не хотите, чтобы обычные пользователи
	  использовали модемы для звонков.  Права по умолчанию на
	  <filename>/dev/cua*</filename> должны подойти:</para>

	<screen>crw-rw----    1 uucp     dialer    28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw----    1 uucp     dialer    28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw----    1 uucp     dialer    28, 193 Feb 15 14:38 /dev/cuala1</screen>

	<para>Эти права позволяют пользователю <username>uucp</username> и
	  пользователям из группы <username>dialer</username> использовать
	  устройства исходящих вызовов.</para>
      </sect3>
    </sect2>

    <sect2 id="serial-hw-config">
      <title>Настройка последовательных портов</title>

    <indexterm><primary><devicename>ttyd</devicename></primary></indexterm>
    <indexterm><primary><devicename>cuaa</devicename></primary></indexterm>

    <para>Устройство <devicename>ttyd<replaceable>N</replaceable></devicename>
      (или
      <devicename>cuaa<replaceable>N</replaceable></devicename>) это обычное
      устройство, которое потребуется открыть для приложений.  Когда процесс
      открывает устройство применяются настройки ввода/вывода терминала по
      умолчанию.  Вы можете посмотреть эти настройки с помощью команды</para>

    <screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen>

    <para>Если вы измените настройки устройства, они будут действовать до его
      закрытия.  После повторного открытия, оно вернется к настройкам по
      умолчанию.  Для изменения настроек по умолчанию, вы можете открыть и
      изменить установки <quote>начального состояния</quote> устройства.
      Например, для включения по умолчанию режима <option>CLOCAL</option>,
      8-битного соединения и контроля передачи <option>XON/XOFF</option> для
      <devicename>ttyd5</devicename>, выполните:</para>

    <screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen>

    <indexterm>
      <primary>rc files</primary>
      <secondary><filename>rc.serial</filename></secondary>
    </indexterm>

    <!-- XXX; /etc/rc.serial is gone in 5.1.
      How do you set default parameters for these devices in 5.X ? -->

    <para>Инициализация последовательных устройств контролируется
      файлом <filename>/etc/rc.serial</filename>.  Этот файл
      определяет настройки последовательных устройств по
      умолчанию.</para>

    <para>Для предотвращения изменения программами отдельных установок,
      настройте <quote>состояние блокировки</quote> устройства.
      Например, для установки значения скорости
      <devicename>ttyd5</devicename> в 57600&nbsp;bps, выполните:</para>

    <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>

    <para>Теперь приложение, открывающее <devicename>ttyd5</devicename> и
      пытающееся изменить скорость порта, получит скорость
      57600&nbsp;bps.</para>

    <indexterm>
      <primary><command>MAKEDEV</command></primary>
    </indexterm>
    <para>И конечно, сделайте запись начальных значений и состояния
      блокировки устройств доступной только учетной записи
      <username>root</username>.</para>
    </sect2>
  </sect1>

  <sect1 id="term">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Sean</firstname>
	  <surname>Kelly</surname>
	  <contrib>Предоставил </contrib>
	</author>
	<!-- 28 July 1996 -->
      </authorgroup>
    </sect1info>
    <title>Терминалы</title>

    <indexterm><primary>терминалы</primary></indexterm>

    <para>Терминалы предоставляют удобный и дешевый способ доступа к
      системе FreeBSD, когда вы не сидите за консолью компьютера и
      не подключены к сети.  Этот раздел описывает использование
      терминалов в FreeBSD.</para>

    <sect2 id="term-uses">
      <title>Пользователи и типы терминалов</title>

      <para>В первых системах &unix; не было консолей.  Вместо этого,
	пользователи входили и запускали программы через терминалы, которые
	были подключены к последовательным портам компьютеров.  Это очень
	похоже на использование модема и программного обеспечения терминала
	для дозвона до удаленной системы и выполнения только-текстовой
	работы.</para>

      <para>Консоли современных PC поддерживают высококачественную графику,
	но возможность входа по последовательному порту на сегодняшний
	день все еще доступна почти в каждой &unix; подобной операционной
	системе; FreeBSD не исключение. Используя терминал, подключенный к
	неиспользуемому последовательному порту, вы можете войти и запустить
	текстовую программу, которую обычно запускаете в текстовой консоли
	или в окне <command>xterm</command> системы X Window.</para>

      <para>Для корпоративных пользователей, вы можете подсоединить множество
	терминалов к системе FreeBSD и поставить их на столы пользователей.
	Для домашнего пользователя, устаревший IBM PC или &macintosh; может
	быть подключен в качестве терминала к более мощному компьютеру
	под управлением FreeBSD.  Вы можете превратить однопользовательский
	компьютер в мощную многопользовательскую систему.</para>

      <para>В FreeBSD три вида терминалов:</para>

      <itemizedlist>
	<listitem>
	  <para><link linkend="term-dumb">Простые (dumb) терминалы</link></para>
	</listitem>

	<listitem>
	  <para><link linkend="term-pcs">PC, работающие в качестве терминалов</link></para>
	</listitem>

	<listitem>
	  <para><link linkend="term-x">X терминалы</link></para>
	</listitem>
      </itemizedlist>

      <para>В оставшейся части раздела описывается каждый вид.</para>

      <sect3 id="term-dumb">
	<title>Простые терминалы</title>

	<para>Простые терминалы это специализированное оборудование,
	  позволяющее соединять компьютеры через последовательные
	  линии.  Они называются <quote>простыми</quote>, поскольку
	  их вычислительных возможностей хватает только для
	  отображения, отправки и получения текста.  Вы не сможете
	  запустить на них никаких программ.  Компьютер, к которому
	  подсоединяется терминал, предоставляет все возможности
	  для запуска текстовых редакторов, компиляторов, почтовых
	  программ, игр и так далее.</para>

	<para>Есть сотни видов простых терминалов, изготовленных
	  различными производителями, включая DEC VT-100 и
	  Wyse WY-75.  Почти любой терминал может работать с
	  FreeBSD.  Некоторые high-end терминалы даже могут отображать
	  графику, но только отдельные программные пакеты могут
	  получить преимущество от этих расширенных возможностей.</para>

	<para>Простые терминалы популярны в рабочей среде, где не требуется
	  доступ к графическим приложениям, например тем, которые
	  предоставляет система X Window.</para>
      </sect3>

      <sect3 id="term-pcs">
	<title>PC, работающие в качестве терминалов</title>

	<para>Если <link linkend="term-dumb">простые терминалы</link> могут
	  только отображать, отправлять и получать текст, возможностей
	  абсолютно любого персонального компьютера хватит для работы
	  в роли простого терминала.  Все, что вам потребуется, это
	  подходящий кабель и какая-нибудь программа <emphasis>эмулятора
	  терминала</emphasis>.</para>

	<para>Это популярная домашняя конфигурация.  Например, когда ваша
	  вторая половина занята работой на системной консоли FreeBSD,
	  вы можете одновременно выполнять только-текстовую работу
	  с менее мощного персонального компьютера, подключенного к
	  системе FreeBSD.</para>
      </sect3>

      <sect3 id="term-x">
	<title>X терминалы</title>

	<para>X терминалы это наиболее сложный тип существующих терминалов.
	  Вместо подключения к последовательному порту, они обычно
	  подключаются к сети, например Ethernet. Вместо работы только с
	  текстовыми приложениями, они могут отображать любое X
	  приложение.</para>

	<para>Мы представляем X терминалы только ради полноты описания.
	  Тем не менее, эта глава <emphasis>не</emphasis> охватывает
	  установку, настройку или использование X терминалов.</para>
      </sect3>
    </sect2>

    <sect2 id="term-config">
      <title>Настройка</title>

      <para>Этот раздел описывает, что нужно сделать для настройки системы
	FreeBSD и включения входа в систему через терминал.
	Предполагается, что вы уже подключили терминал и настроили ядро
	для включения поддержки последовательного порта, к которому он
	подключен.</para>

      <para>Обратитесь к главе <xref linkend="boot"> за информацией о
	процессе <command>init</command>, отвечающем за контроль над
	всеми процессами и за инициализацию системы во время загрузки.
	Одна из задач, выполняемых <command>init</command> &mdash;
	чтение файла <filename>/etc/ttys</filename> и запуск процесса
	<command>getty</command> на доступных терминалах.  Процесс
	<command>getty</command> отвечает за чтение имени пользователя
	и запуск программы <command>login</command>.</para>

      <para>Таким образом, для настройки терминалов в системе FreeBSD
	необходимо выполнить следующие действия под
	<username>root</username>:</para>

      <procedure>
	<step>
	  <para>Добавить строку к <filename>/etc/ttys</filename> для файла
	    из каталога <filename>/dev</filename>, представляющего
	    последовательный порт, если этой строки еще нет.</para>
	</step>

	<step>
	  <para>Настроить запуск команды <command>/usr/libexec/getty</command>
	    на этом порту и указать соответствующий тип
	    <replaceable>getty</replaceable> в файле
	    <filename>/etc/gettytab</filename>.</para>
	</step>

	<step>
	  <para>Указать тип терминала по умолчанию.</para>
	</step>

	<step>
	  <para>Переключить порт в состояние <quote>on</quote>
	    (<quote>включен</quote>)</para>
	</step>

	<step>
	  <para>Указать, должен ли порт быть
	    <quote>secure</quote> (<quote>безопасным</quote>)</para>
	</step>

	<step>
	  <para>Заставить <command>init</command> перечитать файл
	    <filename>/etc/ttys</filename>.</para>
	</step>
      </procedure>

      <para>Опционально, вы можете настроить свой тип
	<replaceable>getty</replaceable> для использования на шаге 2,
	добавив описание в файл <filename>/etc/gettytab</filename>.
	За описанием обратитесь к страницам справочника
	&man.gettytab.5; и &man.getty.8;.</para>

      <sect3 id="term-etcttys">
	<title>Добавление строки в <filename>/etc/ttys</filename></title>

	<para>В файле <filename>/etc/ttys</filename> находится список всех
	  портов системы FreeBSD, на которые возможен вход.  Например, там
	  находится первая виртуальная консоль <filename>ttyv0</filename>.
	  Вы можете войти на консоль с помощью этой записи.
	  Файл содержит записи и для других виртуальных консолей,
	  последовательных портов, и псевдо-терминалов.  Название файла
	  последовательного порта из каталога <filename>/dev</filename>
	  приводится без префикса <filename>/dev</filename> (например,
	  устройство <devicename>/dev/ttyv0</devicename> будет записано
	  как <devicename>ttyv0</devicename>).</para>

	<para>Установка FreeBSD по умолчанию включает файл
	  <filename>/etc/ttys</filename> с поддержкой первых четырех
	  последовательных портов: от <filename>ttyd0</filename> до
	  <filename>ttyd3</filename>.  Если вы подключаете терминал
	  к одному из этих портов, добавлять записи терминалов не
	  потребуется.</para>

	<example id="ex-etc-ttys">
	  <title>Добавление записей терминалов в
	    <filename>/etc/ttys</filename></title>

	  <para>Предположим, вы хотите подключить два терминала к
	    системе: Wyse-50 и старый 286 IBM PC с эмулятором
	    терминала VT-100.  Мы подключаем Wyse к второму
	    последовательному порту и 286 к шестому последовательному
	    порту (порт на мультипортовой карте).  Соответствующие
	    строки в <filename>/etc/ttys</filename> будут выглядеть
	    так:</para>

	  <programlisting>ttyd1<co
	      id="co-ttys-line1col1">  "/usr/libexec/getty std.38400"<co
	      id="co-ttys-line1col2">  wy50<co
	      id="co-ttys-line1col3">  on<co
	      id="co-ttys-line1col4">  insecure<co
	      id="co-ttys-line1col5">
ttyd5   "/usr/libexec/getty std.19200"  vt100  on  insecure
	  </programlisting>

	  <calloutlist>
	    <callout arearefs="co-ttys-line1col1">
	      <para>Первое поле, как правило, указывает имя специального
		файла терминала, в соответствии с его именем в
	      <filename>/dev</filename>.</para>
	    </callout>
	    <callout arearefs="co-ttys-line1col2">

	      <para>Второе поле &mdash; это команда, исполняемая для этого
		терминала, обычно &man.getty.8;.  <command>getty</command>
		инициализирует и открывает линию, устанавливает ее
		скорость, приглашает пользователя к вводу
		имени пользователя, а затем выполняет программу
		&man.login.1;.</para>

	      <para>Программа <command>getty</command> принимает один
		(опциональный) параметр в командной строке, тип
		<replaceable>getty</replaceable>.  Тип
		<replaceable>getty</replaceable> определяет характеристики
		терминальной линии, такие как значение bps и четность.
		Программа <command>getty</command> считывает эти характеристики
		из файла <filename>/etc/gettytab</filename>.</para>

	      <para>Файл <filename>/etc/gettytab</filename> содержит
		множество записей для терминалов, как для старых так и для
		новых.  Почти во всех случаях запись, начинающаяся с
		текста <literal>std</literal>, предназначена для работы
		с аппаратными терминалами.  Эти записи игнорируют четность.
		Запись <literal>std</literal> есть для каждого значения
		bps от 110 до 115200.  Конечно, вы можете добавить
		собственные записи в этот файл.  Страница справочника
		&man.gettytab.5; содержит дополнительную информацию.</para>

	      <para>При установке типа <replaceable>getty</replaceable>
		в файле <filename>/etc/ttys</filename> убедитесь в наличии
		соответствующей записи терминала.</para>

	      <para>Например, Wyse-50 не использует четность и соединяется на
		38400&nbsp;bps.  286&nbsp;PC не использует четность и
		соединяется на 19200&nbsp;bps.</para>

	    </callout>

	    <callout arearefs="co-ttys-line1col3">

	      <para>Третье поле определяет тип терминала, обычно
		подключаемого к этой линии tty.  Для портов входящих
		соединений обычно используется значение
		<literal>unknown</literal> или <literal>dialup</literal>,
		поскольку пользователь может подключить практически
		любой тип терминала или программу.  Для аппаратных
		терминалов тип не меняется, поэтому вы можете поместить
		в это поле определенный тип терминала из базы данных
		&man.termcap.5;.</para>

	      <para>Например, Wyse-50 использует реальный тип терминала,
		а 286 PC, работающий с <application>Procomm</application>,
		настроен на эмуляцию VT-100.</para>

	    </callout>

	    <callout arearefs="co-ttys-line1col4">
	      <para>Четвертое поле определяет должен ли порт быть включен.
		Размещение здесь <literal>on</literal> укажет процессу
		<command>init</command> запустить программу, указанную
		во втором поле, <command>getty</command>.  Если вы
		поместите <literal>off</literal> в это поле, команда
		<command>getty</command> не будет запущена и вход
		на этот порт станет невозможен.</para>
	    </callout>

	    <callout arearefs="co-ttys-line1col5">
	      <para>Последнее поле используется, чтобы указать, является
		ли порт безопасным.  Пометка порта безопасным означает,
		что вы доверяете ему достаточно для того, чтобы разрешить
		учетной записи <username>root</username> (или любой
		учетной записи с UID 0) входить с этого порта.  Небезопасные
		порты не разрешат вход <username>root</username>.
		На небезопасном порту пользователи должны войти с
		через непривилегированную учетную запись, а затем
		использовать &man.su.1; или подобный механизм для
		получения привилегий суперпользователя.</para>

	      <para>Настоятельно рекомендуется использовать
		<quote>insecure</quote> даже для терминалов, находящихся за
		закрытыми дверями.  Довольно легко использовать
		<command>su</command> после входа, если вам потребуются
		привилегии суперпользователя.</para>
	    </callout>
	  </calloutlist>
	</example>
      </sect3>

      <sect3 id="term-hup">
	<title>Заставьте <command>init</command> перечитать
	  <filename>/etc/ttys</filename></title>

	<para>После выполнения необходимых изменений в файле
	  <filename>/etc/ttys</filename>, вам потребуется отправить сигнал
	  SIGHUP (hangup) процессу <command>init</command>, чтобы заставить
	  его перечитать его файл настройки.  Например:</para>

	<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>

	<note>
	  <para><command>init</command> это всегда первый из запущенных в
	    в системе процессов, поэтому его PID всегда 1.</para>
	</note>

	<para>Если все установлено правильно, все кабели на месте и
	  терминалы включены, процесс <command>getty</command> должен
	  быть запущен на каждом терминале и вы увидите приглашение
	  ко входу на каждом терминале.</para>
      </sect3>
    </sect2>

    <sect2 id="term-debug">
      <title>Решение проблем с соединением</title>

      <para>Даже при самом внимательном отношении к деталям, при настройке
	терминала все же могут возникнуть проблемы.  В этом разделе
	приведен список симптомов и предлагается несколько решений.</para>

      <sect3>
	<title>Не появляется приглашение ко входу</title>

	<para>Убедитесь, что терминал подключен и его питание включено.
	  Убедитесь, что эмулятор терминала запущен на соответствующем
	  порту.</para>

	<para>Убедитесь, что кабель хорошо подключен и к терминалу и к
	  компьютеру с FreeBSD.  Убедитесь, что правильно выбран тип
	  кабеля.</para>

	<para>Убедитесь, что терминал и FreeBSD имеют одинаковые установки
	  значения bps и четности.  Если у вас видео терминал, убедитесь,
	  что контраст и яркость включены.  Если это принт-терминал,
	  убедитесь, что бумага и чернила в порядке.</para>

	<para>Убедитесь, что процесс <command>getty</command> запущен
	  и обслуживает терминал.  Например, для получения списка запущенных
	  процессов <command>getty</command> с помощью <command>ps</command>,
	  выполните:</para>

	<screen>&prompt.root; <userinput>ps -axww|grep getty</userinput></screen>

	<para>Вы должны увидеть строку для соответствующего терминала.
	  Например, если <command>getty</command> запущена на втором
	  последовательном порту <literal>ttyd1</literal> и использует
	  запись <literal>std.38400</literal> из файла
	  <filename>/etc/gettytab</filename>, отобразится следующее:</para>

	<screen>22189  d1  Is+    0:00.03 /usr/libexec/getty std.38400 ttyd1</screen>

	<para>Если процесс <command>getty</command> не запущен, убедитесь,
	  что вы включили порт в <filename>/etc/ttys</filename>.  Не забудьте
	  также запустить <command>kill -HUP 1</command> после
	  изменения файла <filename>ttys</filename>.</para>

	<para>Если процесс <command>getty</command> запущен, но на терминале
	  по-прежнему не отображается приглашение ко входу, или если
	  приглашение отображается, но войти невозможно, терминал
	  или кабель, возможно, не поддерживают квитирование связи.
	  Попробуйте изменить поле в <filename>/etc/ttys</filename>
	  с <literal>std.38400</literal> на <literal>3wire.38400</literal>.
	  Запись <literal>3wire</literal> похожа на
	  <literal>std</literal>, но игнорирует квитирование связи.
	  Вам может потребоваться уменьшить скорость соединения или
	  включить программный контроль передачи при использовании
	  <literal>3wire</literal> для предотвращения переполнений
	  буфера.</para>

      </sect3>

      <sect3>
	<title>Вместо приглашения ко входу на экране появляется
	  <quote>мусор</quote></title>

	<para>Убедитесь, что терминал и FreeBSD имеют одинаковые установки
	  значения bps и четности.  Проверьте процесс
	  <command>getty</command>, чтобы убедиться, что используется
	  подходящий тип <replaceable>getty</replaceable>.  Если это не так,
	  отредактируйте <filename>/etc/ttys</filename> и запустите
	  <command>kill -HUP 1</command>.</para>

      </sect3>

      <sect3>
	<title>Символы появляются дважды, пароль отображается при
	  вводе</title>

	<para>Переключите терминал (или программу эмулятора терминала)
	  с <quote>half duplex</quote> или <quote>local echo</quote> на
	  <quote>full duplex</quote>.</para>

      </sect3>
    </sect2>
  </sect1>

  <sect1 id="dialup">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Guy</firstname>
	  <surname>Helmer</surname>
	  <contrib>Предоставил </contrib>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <firstname>Sean</firstname>
	  <surname>Kelly</surname>
	  <contrib>Дополнил </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>Входящие соединения по модему</title>
    <indexterm><primary>входящие соединения</primary></indexterm>

    <para>Настройка системы FreeBSD для поддержки входящих соединений
      очень похожа на подсоединение терминалов за исключением того,
      что вы работаете с модемами вместо терминалов.</para>

      <sect2>
	<title>Внешние и внутренние модемы</title>

	<para>Внешние модемы более удобны для дозвона, поскольку легко могут
	  быть настроены с помощью параметров, сохраняемых в энергонезависимой
	  памяти.  На них обычно есть индикаторы, отображающие состояние
	  основных RS-232 сигналов.  Мигающие индикаторы впечатляют,
	  но кроме того они также очень полезны для индикации правильной
	  работы модема.</para>

	<para>Внутренние модемы обычно не снабжаются энергонезависимой
	  памятью, поэтому их настройка может ограничиваться установкой
	  DIP переключателей.  Если на внутреннем модеме есть индикаторы,
	  их обычно сложно увидеть при закрытой крышке корпуса.</para>

      <sect3>
	<title>Модемы и кабели</title>
	<indexterm><primary>модем</primary></indexterm>

	<para>Если вы используете внешний модем, несомненно потребуется
	  подходящий кабель.  Стандартный RS-232C кабель должен подойти, если
	  подключены все обычные сигналы:</para>

	<itemizedlist>
	  <listitem>
	    <para>Transmitted Data (<acronym>SD</acronym>)</para>
	  </listitem>

	  <listitem>
	    <para>Received Data (<acronym>RD</acronym>)</para>
	  </listitem>

	  <listitem>
	    <para>Request to Send (<acronym>RTS</acronym>)</para>
	  </listitem>

	  <listitem>
	    <para>Clear to Send (<acronym>CTS</acronym>)</para>
	  </listitem>

	  <listitem>
	    <para>Data Set Ready (<acronym>DSR</acronym>)</para>
	  </listitem>

	  <listitem>
	    <para>Data Terminal Ready (<acronym>DTR</acronym>)</para>
	  </listitem>

	  <listitem>
	    <para>Carrier Detect (<acronym>CD</acronym>)</para>
	  </listitem>

	  <listitem>
	    <para>Signal Ground (<acronym>SG</acronym>)</para>
	  </listitem>
	</itemizedlist>

	<para>FreeBSD требуются сигналы <acronym>RTS</acronym> и
	  <acronym>CTS</acronym> для контроля передачи на скоростях выше
	  2400&nbsp;bps, сигнал <acronym>CD</acronym> для определения, был ли
	  ответ на сигнал или произошло отключение линии, и сигнал
	  <acronym>DTR</acronym> для сброса модема после завершения
	  сессии.  Некоторые кабели не поддерживают все необходимые
	  сигналы, поэтому, если вы столкнулись с проблемами, например,
	  если сессия не завершается после отсоединения линии, причиной
	  возможно являются проблемы с кабелем.</para>

	<para>Как и другие &unix; подобные операционные системы, FreeBSD
	  использует аппаратные сигналы для определения того, был ли
	  ответ на звонок или линия была отключена и требуется
	  завершить работу модема и сбросить его в начальное состояние.
	  FreeBSD избегает отправлять команды модему или просматривать
	  отчеты о статусе от модема.  Если вы знакомы с настройкой
	  BBS, это может показаться неудобным.</para>
      </sect3>
      </sect2>

      <sect2>
	<title>Рекомендации по последовательным интерфейсам</title>

	<para>FreeBSD поддерживает интерфейсы, основанные на NS8250, NS16450,
	  NS16550, и NS16550A EIA RS-232C (CCITT V.24).  Устройства 8250 и
	  16450 снабжены односимвольным буфером.  Устройство 16550 снабжено
	  16-ти символьным буфером, который повышает производительность
	  системы.  (Ошибки в 16550 делают невозможным использование
	  16-символьного буфера, поэтому используйте 16550A если возможно).
	  Поскольку устройства с односимвольным буфером предъявляют большие
	  требования к операционной системе, чем с 16-ти символьным буфером,
	  предпочтительны устройства на 16550A.  Если в системе много
	  активных последовательных портов или нагрузка велика,
	  устройства на 16550A лучше подходят для поддержки соединений с
	  малым количеством ошибок.</para>
      </sect2>

    <sect2>
      <title>Краткий обзор</title>

      <indexterm><primary>getty</primary></indexterm>
      <para>Как и с терминалами, <command>init</command> запускает процесс
	<command>getty</command> на каждом настроенном для входящих
	звонков последовательном порту.  Например, если модем подключен
	к <filename>/dev/ttyd0</filename>, команда <command>ps ax</command>
	может вывести следующее:</para>

      <screen> 4850 ??  I      0:00.09 /usr/libexec/getty V19200 ttyd0</screen>

      <para>Когда пользователь дозванивается на подключенный модем, модем
	выдает сигнал <acronym>CD</acronym> (Carrier Detect).
	Ядро определяет, что несущая обнаружена и завершает открытие порта
	командой <command>getty</command>.  <command>getty</command>
	отправляет приглашение <prompt>login:</prompt> на указанной скорости.
	<command>getty</command> ожидает в ответ набор символов, и, как
	правило, получает неправильный набор (обычно это происходит
	из-за того, что скорость соединения модема отличается от скорости
	<command>getty</command>).  <command>getty</command> пробует
	подобрать скорость линии до тех пор, пока не получит правильный
	набор символов.</para>

      <indexterm>
	<primary><command>/usr/bin/login</command></primary>
      </indexterm>
      <para>После того, как будет введено имя пользователя,
	<command>getty</command> выполняет
	<filename>/usr/bin/login</filename>, которая завершает вход,
	запрашивая пароль пользователя и запуская оболочку.</para>
    </sect2>

    <sect2>
      <title>Файлы настройки</title>

      <para>Есть три файла настройки системы в каталоге
	<filename>/etc</filename>, которые возможно потребуется
	отредактировать для включения удаленного доступа по модему в FreeBSD.
	Первый, <filename>/etc/gettytab</filename>, содержит информацию по
	настройке даемона <filename>/usr/libexec/getty</filename>.
	Второй, <filename>/etc/ttys</filename>, содержит информацию,
	указывающую <filename>/sbin/init</filename> на каких устройствах
	<filename>tty</filename> должны быть запущены процессы
	<command>getty</command>.  Наконец, вы можете поместить команды
	инициализации портов в скрипт /etc/rc.serial.</para>

      <para>В &unix; есть две школы настройки модемов для входящих соединений.
	Одна предпочитает настраивать модемы и системы так, что не
	важно на какой скорости подсоединяется удаленный пользователь.
	Локальный интерфейс RS-232 компьютер-модем работает на жестко
	заданной скорости.  Преимущество этой настройки в том, что
	удаленный пользователь всегда сразу видит приглашение ко входу.
	Обратная сторона в том, что система не знает, какова на самом
	деле скорость передачи данных, поэтому полноэкранные программы,
	такие как Emacs, не настраивают свои методы отображения на экране
	для работы с медленными соединениями.</para>

      <para>Другая школа настраивает интерфейс RS-232 для работы с различной
	скоростью в зависимости от скорости подсоединения удаленного
	пользователя.  Например, соединение модемов по протоколу V.32bis
	(14.4&nbsp;Кбит/с) установит скорость порта RS-232 равной
	19.2&nbsp;Кбит/с, а соединение на скорости 2400&nbsp;бит/с
	установит скорость RS-232 равной 2400&nbsp;бит/с. Поскольку
	<command>getty</command> не понимает сообщений модема о
	скорости соединения, <command>getty</command> выдает
	приглашение <prompt>login:</prompt> на установленной по умолчанию
	скорости и считывает символы, полученные в ответе. Если пользователь
	видит <quote>мусор</quote> вместо приглашения ко входу, это означает,
	что нужно нажимать <keycode>Enter</keycode> до тех пор, пока не
	появится приглашение ко входу.  Если скорости не совпадают,
	<command>getty</command> получает все, что вводит пользователь, в
	виде <quote>мусора</quote>, пробует переключиться на другую скорость
	и выдает приглашение <prompt>login:</prompt> опять.  Эта процедура
	может продолжаться до отвращения, но обычно требуется одно или два
	нажатия клавиши перед появлением нормально выглядящего приглашения.
	Очевидно, эта последовательность входа не так хороша, как метод
	с фиксированной скоростью, но при низкой скорости соединения
	работать с полноэкранными программами станет проще.</para>

      <para>В этом разделе делается попытка дать сбалансированную информацию
	для настройки, но предпочтение будет отдано установке скорости
	соединения с модемом в соответствие скорости подключения.</para>

      <sect3>
	<title><filename>/etc/gettytab</filename></title>

  <indexterm>
    <primary><filename>/etc/gettytab</filename></primary>
  </indexterm>
	<para><filename>/etc/gettytab</filename> это файл в стиле
	  &man.termcap.5;, содержащей информацию по настройке &man.getty.8;.
	  Пожалуйста, обратитесь к странице справочника &man.gettytab.5;
	  за полной информацией о формате файла и за списком
	  возможностей <command>getty</command>.</para>

	<sect4>
	  <title>Настройка фиксированной скорости</title>

	  <para>Если вы зафиксировали скорость соединения модема на
	    определенной скорости, редактировать файл
	    <filename>/etc/gettytab</filename> скорее всего не
	    потребуется.</para>
	</sect4>

	<sect4>
	  <title>Настройка изменяемой скорости</title>

	<para>Вам потребуется сделать запись в
	    <filename>/etc/gettytab</filename> для предоставления
	    <command>getty</command> информации о скоростях, которые
	    предполагается использовать для модема.  Если у вас
	    2400&nbsp;бит/с модем, возможно, подойдет существующая
	    запись <literal>D2400</literal>.</para>

	  <programlisting>#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
        :nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
        :nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
        :nx=D2400:tc=300-baud:</programlisting>

	  <para>Если у вас более скоростной модем, вам возможно потребуется
	    добавить запись в <filename>/etc/gettytab</filename>; вот запись,
	    которую вы можете использовать для 14.4&nbsp;Кбит/с модема с
	    максимальной скоростью интерфейса 19.2&nbsp;Кбит/с:</para>

	  <programlisting>#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
        :nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
        :nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
        :nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
        :nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
        :nx=V9600:tc=std.19200:</programlisting>

	  <para>Эта настройка включает 8-битные соединения без программного
	    контроля четности.</para>

	  <para>В примере выше скорость порта будет переключаться в цикле
	    начиная с 19.2&nbsp;Кбит/с (для соединения по V.32bis), затем
	    9600&nbsp;бит/с (для V.32), 2400&nbsp;бит/с, 1200&nbsp;бит/с,
	    300&nbsp;бит/с, и обратно на 19.2&nbsp;Кбит/с.
	    Переключение скоростей в цикле реализовано с помощью
	    <literal>nx=</literal> (<quote>next table</quote>).
	    Каждая из линий использует <literal>tc=</literal> (<quote>table
	    continuation</quote>) для указания <quote>стандартных</quote>
	    (std) настроек на каждой скорости.</para>

	  <para>Если у вас 28.8&nbsp;Кбит/с модем и/или вы хотите получить
	    преимущество от сжатия на скорости 14.4&nbsp;Кбит/с, потребуются
	    скорости выше, чем 19.2&nbsp;Кбит/с.  Вот пример записи из
	    <filename>gettytab</filename> для начала соединения на скорости
	    57.6&nbsp;Кбит/с:</para>

	  <programlisting>#
# Additions for a V.32bis or V.34 Modem
# Starting at 57.6 Kbps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
        :nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
        :nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
        :nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
        :nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
        :nx=VH9600:tc=std.57600:</programlisting>

	  <para>Если у вас медленный CPU или сильно загруженная система
	    без последовательных портов на базе 16550A, на скорости
	    57.6&nbsp;Кбит/с могут возникнуть ошибки
	    <errorname>sio</errorname> <quote>silo</quote>.</para>
	</sect4>
      </sect3>

      <sect3 id="dialup-ttys">
	<title><filename>/etc/ttys</filename></title>
	<indexterm>
	  <primary><filename>/etc/ttys</filename></primary>
	</indexterm>

	<para>Настройка файла <filename>/etc/ttys</filename>
	  была описана в разделе <xref linkend="ex-etc-ttys">.
	  Настройка модемов похожа, но потребуется передавать
	  <command>getty</command> различные аргументы и
	  указывать различные типы терминалов.  Общий формат
	  для фиксированной и переменной скорости такой:</para>

	<programlisting>ttyd0   "/usr/libexec/getty <replaceable>xxx</replaceable>"   dialup on</programlisting>

	<para>Первый пункт в строке выше это специальный файл устройства для
	  этой записи &mdash; <literal>ttyd0</literal> означает,
	  что <command>getty</command> будет запущена на
	  <filename>/dev/ttyd0</filename>.  Второй пункт,
	  <literal>"/usr/libexec/getty
	    <replaceable>xxx</replaceable>"</literal>
	  (<replaceable>xxx</replaceable> будет замещено на запись из
	  <filename>gettytab</filename> для начальной скорости), это процесс,
	  который будет запущен на данном устройстве.  Третий пункт,
	  <literal>dialup</literal>, это тип терминала по умолчанию.
	  Четвертый параметр, <literal>on</literal>, указывает
	  <command>init</command>, что линия включена.  Может быть пятый
	  параметр, <literal>secure</literal>, но он должен использоваться
	  только для терминалов, которые физически безопасны (таких как
	  системная консоль).</para>

	<para>Тип терминала по умолчанию (<literal>dialup</literal> в примере
	  выше) может зависеть от личных предпочтений.
	  <literal>dialup</literal> это традиционный тип терминала по
	  умолчанию на линиях для дозвона, который позволяет пользователям,
	  зная что тип терминала <literal>dialup</literal>, автоматически
	  настраивать свой тип терминала.  Однако, автор находит более
	  легким указание <literal>vt102</literal> в качестве типа терминала
	  по умолчанию, поскольку пользователи работают на своих
	  удаленных системах с эмулятором терминала VT102.</para>

	<para>После внесения изменений в <filename>/etc/ttys</filename>,
	  вы можете отправить процессу <command>init</command> сигнал
	  <acronym>HUP</acronym> перечитать файл.  Используйте команду

	<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>

	  для отправки сигнала.  Если вы настраиваете систему в первый раз,
	  то возможно захотите подождать, пока модем(ы) правильно
	  настроятся и соединятся перед отправкой сигнала
	  <command>init</command>.</para>

	<sect4>
	  <title>Настройка фиксированной скорости</title>

	  <para>Для настройки соединения с фиксированной скоростью, в файле
	    <filename>ttys</filename> должна быть запись с фиксированной
	    скоростью для <command>getty</command>.  Для модема, скорость порта
	    которого фиксирована на значении 19.2&nbsp;Кбит/с, строка в
	    <filename>ttys</filename> может выглядеть так:</para>

	  <programlisting>ttyd0   "/usr/libexec/getty std.19200"   dialup on</programlisting>

	  <para>Если скорость модема фиксирована на другом значении,
	    подставьте соответствующее значение в 
	    <literal>std.<replaceable>speed</replaceable></literal>
	    вместо <literal>std.19200</literal>.  Убедитесь, что вы
	    используете тип, описанный в
	    <filename>/etc/gettytab</filename>.</para>
	</sect4>

	<sect4>
	  <title>Настройка переменной скорости</title>

	  <para>В настройке с переменной скоростью, запись в
	    <filename>ttys</filename> должна обращаться к соответствующей
	    <quote>auto-baud</quote> (sic) записи в
	    <filename>/etc/gettytab</filename>.  Например, если вы добавите
	    предложенную выше запись для подключения модема с переменной
	    скоростью, которая начинается с 19.2&nbsp;Кбит/с (запись в
	    <filename>gettytab</filename> начинается с
	    <literal>V19200</literal>), запись в
	    <filename>ttys</filename> может выглядеть так:</para>

	  <programlisting>ttyd0   "/usr/libexec/getty V19200"   dialup on</programlisting>
	</sect4>
      </sect3>

      <sect3>
	<title><filename>/etc/rc.serial</filename></title>
	<indexterm>
	  <primary>файлы rc</primary>
	  <secondary><filename>rc.serial</filename></secondary>
	</indexterm>

	<para>Для высокоскоростных модемов, таких как V.32, V.32bis и V.34,
	  требуется использование аппаратного контроля передачи
	  (<filename>RTS/CTS</filename>).  Вы можете добавить команды
	  <command>stty</command> к файлу <filename>/etc/rc.serial</filename>
	  для установки флага аппаратного контроля передачи в ядре
	  FreeBSD для модемных портов.

	<para>Например, для установки флага <literal>termios</literal>
	  <varname>crtscts</varname> на последовательном порту номер 1
	  (<devicename>COM2</devicename>) при инициализации устройств
	  для входящей и исходящей связи, в
	  <filename>/etc/rc.serial</filename>должны быть добавлены
	  следующие строки:</para>
	<programlisting># Serial port initial configuration
stty -f /dev/ttyid1 crtscts
stty -f /dev/cuaia1 crtscts</programlisting>

      </sect3>
    </sect2>

    <sect2>
      <title>Настройка модема</title>

      <para>Если параметры вашего модема могут быть сохранены в
	энергонезависимой памяти, потребуется использовать
	терминальную программу (например, Telix под &ms-dos; или
	<command>tip</command> под FreeBSD) для установки
	параметров.  Подсоединитесь к модему, используя ту же скорость
	соединения, которую использует <command>getty</command> в
	качестве начальной скорости, и настройте модем для
	соответствия следующим требованиям:</para>

      <itemizedlist>
	<listitem>
	  <para><acronym>CD</acronym> включен после соединения</para>
	</listitem>

	<listitem>
	  <para><acronym>DTR</acronym> включен во время работы; сброс DTR
	    отключает линию и переводит модем в начальное состояние</para>
	</listitem>

	<listitem>
	  <para><acronym>CTS</acronym> контроль переданных данных</para>
	</listitem>

	<listitem>
	  <para>Контроль потока <acronym>XON/XOFF</acronym> отключен</para>
	</listitem>

	<listitem>
	  <para><acronym>RTS</acronym> контроль принятых данных</para>
	</listitem>

	<listitem>
	  <para><quote>Тихий</quote> режим (без кодов возврата)</para>
	</listitem>

	<listitem>
	  <para>Эхо команд отключено</para>
	</listitem>
      </itemizedlist>

      <para>Прочтите документацию на модем для определения какие команды
	и/или DIP переключатели требуются чтобы установить эти
	настройки.</para>

      <para>Например, для установки вышеуказанных параметров на внешнем
	14,400 модеме &usrobotics; &sportster;, требуется отправить
	модему следующие команды:</para>

      <programlisting>ATZ
AT&amp;C1&amp;D2&amp;H1&amp;I0&amp;R2&amp;W</programlisting>

      <para>Вы, возможно, захотите настроить и другие параметры модема,
	такие как использование сжатия V.42bis и/или MNP5.</para>

      <para>Внешний &usrobotics; &sportster; 14,400 модем также снабжен
	некоторыми DIP переключателями, которые требуется установить;
	для других модемов эти настройки могут быть использованы в
	качестве примера:</para>

      <itemizedlist>
	<listitem>
	  <para>Переключатель 1: вверх &mdash; нормальный DTR</para>
	</listitem>

	<listitem>
	  <para>Переключатель 2: N/A (визуальные коды возврата/числовые коды
	    возврата)</para>
	</listitem>

	<listitem>
	  <para>Переключатель 3: вверх &mdash; подавление кодов возврата</para>
	</listitem>

	<listitem>
	  <para>Переключатель 4: вниз &mdash; без эхо, offline команды</para>
	</listitem>

	<listitem>
	  <para>Переключатель 5: вверх &mdash; авто ответ</para>
	</listitem>

	<listitem>
	  <para>Переключатель 6: вверх &mdash; нормальный контроль
	    несущей</para>
	</listitem>

	<listitem>
	  <para>Переключатель 7: вверх &mdash; загрузить установки по
	    умолчанию из NVRAM</para>
	</listitem>

	<listitem>
	  <para>Переключатель 8: N/A (Smart/Dumb режимы)</para>
	</listitem>
      </itemizedlist>

      <para>Коды возврата должны быть отключены/подавлены для устранения
	проблем, которые могут возникнуть, если <command>getty</command>
	ошибочно выдаст приглашение <prompt>login:</prompt> модему в
	командном режиме и модем вернет (echo) эту команду или код
	возврата.  Эта последовательность может привести к дополнительному
	и бессмысленному обмену командами между <command>getty</command>
	и модемом.</para>

      <sect3>
	<title>Настройка фиксированной скорости</title>

	<para>Для настройки фиксированной скорости вам потребуется настроить
	  модем с поддержкой постоянной скорости обмена данными
	  модем-компьютер независимо от скорости соединения.  На внешнем
	  модеме &usrobotics; &sportster; 14,400 эти команды зафиксируют
	  скорость передачи модем-компьютер на скорости, которая установлена
	  при выполнении команды:</para>

	<programlisting>ATZ
AT&amp;B1&amp;W</programlisting>
      </sect3>

      <sect3>
	<title>Настройка переменной скорости</title>

	<para>Для настройки переменной скорости вам потребуется настроить модем
	  с поддержкой изменения скорости передачи данных через последовательный
	  порт в соответствии через скоростью соединения.  Следующие команды
	  зафиксируют скорость передачи данных с коррекцией ошибок внешнего
	  модема &usrobotics; &sportster; 14,400 на значении, которое
	  установлено при выполнении команды, но сделают возможным изменение
	  скорости последовательного порта для соединений без коррекции
	  ошибок:</para>

	<programlisting>ATZ
AT&amp;B2&amp;W</programlisting>
      </sect3>

      <sect3>
	<title>Проверка настроек модема</title>

	<para>Большинство высокоскоростных модемов предоставляют команды для
	  просмотра текущих параметров модема в виде, отчасти приспособленном
	  для чтения.  Для внешних модемов &usrobotics; &sportster; 14,400
	  команда <command>ATI5</command> отображает установки, сохраненные в
	  энергонезависимой памяти.  Для просмотра действующих параметров
	  модема (с учетом положения DIP переключателей), используйте
	  команду <command>ATZ</command>, а затем <command>ATI4</command>.</para>

	<para>Если ваш модем другого производителя, проверьте руководство
	  к модему для аккуратной проверки параметров настройки модема.</para>
      </sect3>
    </sect2>

    <sect2>
      <title>Решение проблем</title>

      <para>Вот несколько шагов, которые нужно выполнить для проверки
	настроек.</para>

      <sect3>
	<title>Проверьте систему FreeBSD</title>

	<para>Подсоедините модем к системе FreeBSD, загрузите систему, и,
	  если на модеме есть индикаторы, посмотрите, загорелся ли
	  индикатор <acronym>DTR</acronym> при появлении приглашения
	  <prompt>login:</prompt> на системной консоли &mdash; если он
	  загорелся, это означает, что FreeBSD запустила процесс
	  <command>getty</command> на соответствующем коммуникационном
	  порту и модем ожидает входящего звонка.</para>

	<para>Если индикатор <acronym>DTR</acronym> не загорелся, войдите
	  на консоль системы FreeBSD и выполните команду <command>ps
	  ax</command>, чтобы увидеть, пытается ли FreeBSD запустить процесс
	  <command>getty</command> на соответствующем порту.  Вы должны
	  увидеть строки вроде этих среди показанных процессов:</para>

	<screen>  114 ??  I      0:00.10 /usr/libexec/getty V19200 ttyd0
  115 ??  I      0:00.10 /usr/libexec/getty V19200 ttyd1</screen>

	<para>Если вы видите что-то другое, вроде этого:</para>

	  <screen>  114 d0  I      0:00.10 /usr/libexec/getty V19200 ttyd0</screen>

	<para>и модем все еще не принимает звонок, это означает, что
	  <command>getty</command> завершила открытие коммуникационного
	  порта.  Это может означать проблему с кабелем или неправильную
	  настройку модема, поскольку <command>getty</command> не должна
	  открывать коммуникационный порт, пока модем не установит
	  <acronym>CD</acronym> (обнаружение несущей).</para>

	<para>Если вы не видите процессов <command>getty</command>, ожидающих
	  открытия соответствующего порта
	  <filename>ttyd<replaceable>N</replaceable></filename>,
	  внимательно проверьте записи в <filename>/etc/ttys</filename>
	  и попробуйте найти ошибки, если они есть.  Проверьте также лог файл
	  <filename>/var/log/messages</filename>, нет ли там сообщений от
	  <command>init</command> или <command>getty</command>, имеющих
	  отношение к проблеме.  Если сообщения есть, проверьте еще раз
	  файлы настройки <filename>/etc/ttys</filename> и
	  <filename>/etc/gettytab</filename>, как и соответствующие
	  специальные файлы устройств <filename>/dev/ttydN</filename>, чтобы
	  обнаружить ошибки, отсутствующие записи или отсутствующие
	  специальные файлы устройств.</para>
      </sect3>

      <sect3>
	<title>Попробуйте позвонить на модем</title>

	<para>Попробуйте дозвониться до системы; убедитесь, что используете
	  8 бит без четности и 1 стоп бит на удаленной системе.  Если
	  вы не получите приглашение сразу, или получите случайные
	  данные, попробуйте нажимать <keycode>Enter</keycode> примерно
	  раз в секунду.  Если вы все еще не видите приглашения
	  <prompt>login:</prompt> после нескольких попыток, попробуйте
	  отправить команду <command>BREAK</command>.  Если вы используете
	  для дозвона высокоскоростной модем, попробуйте позвонить еще раз
	  после фиксирования скорости интерфейса дозванивающегося модема
	  (например, с помощью команды <command>AT&amp;B1</command> для
	  модема &usrobotics; &sportster;).</para>

	<para>Если вы все еще не можете получить приглашение
	  <prompt>login:</prompt>, проверьте
	  <filename>/etc/gettytab</filename> еще раз и убедитесь,
	  что</para>

	<itemizedlist>
	  <listitem>
	    <para>Имя параметра <command>getty</command>, указанного в
	      <filename>/etc/ttys</filename>, совпадает с именем параметра в
	      <filename>/etc/gettytab</filename></para>
	  </listitem>

	  <listitem>
	    <para>Каждая запись <literal>nx=</literal> соответствует
	      имени другой записи в <filename>gettytab</filename></para>
	  </listitem>

	  <listitem>
	    <para>Каждая запись <literal>tc=</literal> соответствует
	      имени другой записи в <filename>gettytab</filename></para>
	  </listitem>
	</itemizedlist>

	<para>Если система FreeBSD не отвечает на звонок, убедитесь, что
	  модем настроен для ответа на звонок при включении
	  <acronym>DTR</acronym>.  Если модем настроен правильно, проверьте,
	  что <acronym>DTR</acronym> включается, взглянув на индикаторы
	  модема (если они есть).</para>

	<para>Если вы проверили все несколько раз и все еще не добились
	  результата, сделайте перерыв и вернитесь к настройкам позже.
	  Если опять ничего не получилось, возможно вам потребуется
	  отправить письмо в рассылку &a.questions;, описав модем
	  и возникшую проблему, участники рассылки попробуют помочь
	  вам.</para>
      </sect3>
    </sect2>

  </sect1>

  <sect1 id="dialout">
    <title>Исходящие соединения по модему</title>
    <indexterm><primary>исходящие соединения</primary></indexterm>

    <para>Текст, приведенный ниже, это советы, позволяющие настроить ваш
      хост для доступа к другому компьютеру через модем.  Они подходят
      для установления терминальной сессии с удаленным хостом.</para>

    <para>Это подходит для входа на BBS.</para>

    <para>Этот вид соединения может очень выручить, если требуется
      получить файл из интернет и есть проблемы с PPP.  Если вам
      требуется зайти куда-то по FTP, а PPP не работает, используйте
      терминальную сессию для получения файла по FTP.  Затем используйте
      zmodem для сброса его на свой компьютер.</para>

    <sect2>
      <title>Мой модем Stock Hayes не поддерживается, что я могу сделать?</title>

      <para>На самом деле, страница руководства для <command>tip</command>
	устарела.  Встроенная поддержка generic Hayes уже есть. Используйте
	<literal>at=hayes</literal> в файле
	<filename>/etc/remote</filename>.</para>

      <para>Драйвер Hayes не умеет работать с некоторыми расширенными
	возможностями более новых модемов &mdash; сообщения вроде
	<literal>BUSY</literal>, <literal>NO DIALTONE</literal>, или
	<literal>CONNECT 115200</literal>.  Вы должны отключить
	эти сообщения при использовании <command>tip</command> (с
	помощью <command>ATX0&amp;W</command>).</para>

      <para>Таймаут дозвона для <command>tip</command> составляет 60 секунд.
	Ваш модем должен использовать меньшее значение, или <command>tip</command>
	решит, что возникли проблемы со связью.  Попробуйте
	<command>ATS7=45&amp;W</command>.</para>

      <note>
	<para>Оригинальная <command>tip</command> не полностью поддерживает
	  модемы Hayes.  Решить это проблему можно отредактировав файл
	  <filename>tipconf.h</filename> в каталоге
	  <filename>/usr/src/usr.bin/tip/tip</filename>.  Конечно, для этого
	  вам потребуются исходные тексты.</para>

	<para>Замените строку <literal>#define HAYES 0</literal> на
	  <literal>#define HAYES 1</literal>.  Затем выполните
	  <command>make</command> и <command>make install</command>.  После
	  этого все должно работать отлично.</para>
      </note>
    </sect2>

    <sect2 id="direct-at">
      <title>Как нужно выполнять команды AT?</title>

      <indexterm>
	<primary><filename>/etc/remote</filename></primary>
      </indexterm>
      <para>Сделайте то, что называется <quote>прямой</quote> записью в
	файле <filename>/etc/remote</filename>.  Например, если модем
	подключен к первому последовательному порту,
	<filename>/dev/cuaa0</filename>, добавьте следующую строку:</para>

      <programlisting>cuaa0:dv=/dev/cuaa0:br#19200:pa=none</programlisting>

      <para>Используйте для br наибольшее значение bps, поддерживаемое
	модемом.  Для подключения к модему выполните
	<command>tip cuaa0</command>.</para>

      <para>Если в системе нет устройства <filename>/dev/cuaa0</filename>,
	выполните:</para>

      <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>sh MAKEDEV cuaa0</userinput></screen>

      <para>Или используйте <command>cu</command> под
	<username>root</username> так:</para>

      <screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>

      <para><replaceable>line</replaceable> это последовательный порт
	(например <filename>/dev/cuaa0</filename>), а
	<replaceable>speed</replaceable> это скорость
	(например <literal>57600</literal>).  После ввода команд AT
	наберите <keycap>~.</keycap> для выхода.</para>
    </sect2>

    <sect2>
      <title>Знак <literal>@</literal> не работает для pn!</title>

      <para>Знак <literal>@</literal> в телефонном номере указывает
	<command>tip</command> взять телефонный номер из
	<filename>/etc/phones</filename>.  Но знак <literal>@</literal>
	это также специальный символ в таких файлах как
	<filename>/etc/remote</filename>.  Экранируйте его с помощью
	обратной косой черты:</para>

      <programlisting>pn=\@</programlisting>
    </sect2>

    <sect2>
      <title>Как я могу позвонить по телефонному номеру из командной
	строки?</title>

      <para>Поместите так называемую <quote>generic</quote> запись в файл
	<filename>/etc/remote</filename>.  Например:</para>

      <programlisting>tip115200|Dial any phone number at 115200 bps:\
        :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
        :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:</programlisting>

      <para>Затем вы можете сделать следующее:</para>

      <screen>&prompt.root; <userinput>tip -115200 5551234</userinput></screen>

      <para>Если вы предпочитаете <command>cu</command> команде
	<command>tip</command>, используйте generic запись для
	<literal>cu</literal>:</para>

      <programlisting>cu115200|Use cu to dial any number at 115200bps:\
        :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:</programlisting>

      <para>и выполните:</para>

      <screen>&prompt.root; <userinput>cu 5551234 -s 115200</userinput></screen>
    </sect2>

    <sect2>
      <title>Должен ли я вводить значение bps каждый раз?</title>

      <para>Создайте запись <literal>tip1200</literal> или
	<literal>cu1200</literal>, но используйте то значение bps, которое
	записано в поле br.  <command>tip</command> считает, что хорошее
	значение по умолчанию это 1200&nbsp;bps, поэтому обращается к
	записи <literal>tip1200</literal>.  Тем не менее, значение bps
	будет другим.</para>
    </sect2>

    <sect2>
      <title>Я получаю доступ ко множеству хостов через терминальный
	сервер</title>

      <para>Вместо ожидания соединения и ввода каждый раз
	<command>CONNECT &lt;host&gt;</command>, используйте возможность
	<command>tip</command> <literal>cm</literal>.  Вот пример записи в
	<filename>/etc/remote</filename>:</para>

      <programlisting>pain|pain.deep13.com|Forrester's machine:\
        :cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
        :cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
        :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:</programlisting>

      <para>Она позволит вам вводить <command>tip pain</command> или
	<command>tip muffin</command> для соединения с хостами pain или
	muffin, и <command>tip deep13</command> для доступа к терминальному
	серверу.</para>
    </sect2>

    <sect2>
      <title>Может ли tip соединяться более через одну линию для каждого
	сайта?</title>

      <para>Эта проблема часто возникает в университете, где несколько
	модемных линий и несколько тысяч студентов, пытающихся их
	использовать.</para>

      <para>Создайте запись для университета в
	<filename>/etc/remote</filename> и используйте <literal>@</literal>
	для <literal>pn</literal>:</para>

      <programlisting>big-university:\
        :pn=\@:tc=dialout
dialout:\
        :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:</programlisting>

      <para>Затем, создайте список телефонов для университета в
	<filename>/etc/phones</filename>:</para>

      <programlisting>big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114</programlisting>

      <para><command>tip</command> попробует связаться с каждым в указанном
	порядке, затем прекратит попытки.  Если вы хотите продолжать
	соединяться, запустите <command>tip</command> в цикле.</para>
    </sect2>

    <sect2>
      <title>Почему я должен дважды нажать
	<keycombo action="simul">
	  <keycap>Ctrl</keycap>
	  <keycap>P</keycap>
	</keycombo>
	для отправки
	<keycombo action="simul">
	  <keycap>Ctrl</keycap>
	  <keycap>P</keycap>
	</keycombo>
	один раз?</title>

      <para><keycombo action="simul"><keycap>Ctrl</keycap><keycap>P</keycap></keycombo>
	это <quote>управляющий</quote> символ по умолчанию, используемый
	для указания <command>tip</command> того, что далее идут символьные
	данные.  Вы можете сделать любой другой символ управляющим с помощью
	экранирования <command>~s</command>, которое означает
	<quote>установить переменную</quote>.</para>

      <para>Введите
	<command>~sforce=<replaceable>single-char</replaceable></command>,
	завершив ввод новой строкой.  <replaceable>single-char</replaceable>
	это любой одиночный символ.  Если вы не введете
	<replaceable>single-char</replaceable>, управляющим символом станет
	nul, который можно получить, введя
	<keycombo action="simul">
	  <keycap>Ctrl</keycap><keycap>2</keycap>
	</keycombo>
	или
	<keycombo action="simul">
	  <keycap>Ctrl</keycap><keycap>Space</keycap>
	</keycombo>.
	Хорошее значение для <replaceable>single-char</replaceable> это
	<keycombo action="simul">
	  <keycap>Shift</keycap>
	  <keycap>Ctrl</keycap>
	  <keycap>6</keycap>
	</keycombo>, которое используется только на некоторых терминальных
	серверах.</para>

      <para>Вы можете использовать в качестве управляющего символа все, что
	захотите, поместив его в файл
	<filename>&#36;HOME/.tiprc</filename>:</para>

      <programlisting>force=&lt;single-char&gt;</programlisting>
    </sect2>

    <sect2>
      <title>Почему все, что я ввожу, вдруг стало отображаться в верхнем
	регистре??</title>

      <para>Вы нажали
	<keycombo action="simul">
	  <keycap>Ctrl</keycap>
	  <keycap>A</keycap>
	</keycombo>, <quote>повышающий символ</quote> <command>tip</command>,
	который был специально введен для тех, у кого не работает клавиша
	caps-lock.  Используйте <command>~s</command> как в примере выше
	для установки переменной <literal>raisechar</literal> в подходящее
	значение.  Фактически, вы можете установить ее в то же значение, что
	и управляющий символ, если не собираетесь использовать ни один из
	них.</para>

      <para>Вот пример .tiprc, отлично подходящий для пользователей
	<application>Emacs</application>, которым часто требуется вводить
	<keycombo action="simul">
	  <keycap>Ctrl</keycap><keycap>2</keycap>
	</keycombo>
	и
	<keycombo action="simul">
	  <keycap>Ctrl</keycap><keycap>A</keycap>
	</keycombo>:</para>

      <programlisting>force=^^
raisechar=^^</programlisting>

      <para>Символ ^^ это
	<keycombo action="simul">
	  <keycap>Shift</keycap><keycap>Ctrl</keycap><keycap>6</keycap>
	</keycombo>.</para>

    </sect2>

    <sect2>
      <title>Могу ли я передавать файлы с помощью <command>tip</command>?</title>

      <para>Если вы соединяетесь с другой системой &unix;, возможны передача
	и прием файлов с помощью команды <command>~p</command> (put) и
	<command>~t</command> (take).  Эти команды запускают
	<command>cat</command> и <command>echo</command> в удаленной системе
	для приема и передачи файлов.  Синтаксис следующий:</para>

      <cmdsynopsis>
	<command>~p</command>
	<arg choice="plain">local-file</arg>
	<arg choice="opt">remote-file</arg>
      </cmdsynopsis>

      <cmdsynopsis>
	<command>~t</command>
	<arg choice="plain">remote-file</arg>
	<arg choice="opt">local-file</arg>
      </cmdsynopsis>

      <para>Коррекции ошибок нет, поэтому возможно лучше использовать другой
	протокол, например zmodem.</para>
    </sect2>

    <sect2>
      <title>Как мне запустить zmodem с <command>tip</command>?</title>

      <para>Для получения файла запустите отправляющую программу на удаленной
	стороне.  Затем, наберите <command>~C rz</command> для начала
	локального приема файла.</para>

      <para>Для отправки файлов запустите принимающую программу на удаленной
	стороне.  Затем, наберите
	<command>~C sz <replaceable>файлы</replaceable></command> для
	отправки их на удаленную систему.</para>
    </sect2>
  </sect1>

  <sect1 id="serialconsole-setup">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Kazutaka</firstname>
	  <surname>YOKOTA</surname>
	  <contrib>Предоставил </contrib>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <firstname>Bill</firstname>
	  <surname>Paul</surname>
	  <contrib>Оригинальный документ написал </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>Настройка последовательной консоли</title>
    <indexterm><primary>последовательная консоль</primary></indexterm>

    <sect2 id="serialconsole-intro">
      <title>Введение</title>

      <para>FreeBSD может загружаться при использовании в качестве консоли
	текстового терминала на последовательном порту.  Такая конфигурация
	может быть полезна в двух случаях: для системных администраторов,
	устанавливающих FreeBSD на компьютеры без подключенных клавиатуры
	или монитора, и для разработчиков, производящих отладку ядра или
	драйверов устройств.</para>

      <para>Как описано в <xref linkend="boot">, процесс загрузки FreeBSD
	состоит из трех стадий.  Первые две стадии реализованы в блоке
	загрузки, находящемся в начале слайса FreeBSD на загрузочном
	диске.  На третей стадии загрузочный блок запускает загрузчик
	(<filename>/boot/loader</filename>).</para>

      <para>Для настройки последовательной консоли вам потребуется настроить
	блок загрузки, загрузчик и ядро.</para>

    </sect2>

    <sect2 id="serialconsole-howto">
      <title>Настройка последовательной консоли</title>

      <procedure>
	<step>
	  <para>Подготовьте кабель.</para>

	  <indexterm><primary>нуль-модемный кабель</primary></indexterm>
	  <para>Вам потребуется нуль-модемный или стандартный
	    последовательный кабель и нуль-модемный адаптер.  Обратитесь к
	    разделу <xref linkend="serial-cables-ports">, где рассматриваются
	    последовательные кабели.</para>
	</step>

	<step>
	  <para>Отключите клавиатуру.</para>

	  <para>Большинство систем PC тестируют клавиатуру во время включения
	    (POST) и выдают ошибку если клавиатура не обнаружена.  Некоторые
	    системы при отсутствии клавиатуры выдают звуковой сигнал и не
	    загружаются пока клавиатура не будет подключена.</para>

	  <para>Если компьютер сообщает об ошибке, но все же загружается,
	    вам не потребуется делать что-то еще.  (Некоторые компьютеры
	    с Phoenix BIOS просто сообщают <errorname>Keyboard
	    failed</errorname> и продолжают загрузку).</para>

	  <para>Если компьютер не загружается без клавиатуры, вам потребуется
	    настроить BIOS так, чтобы отсутствие клавиатуры игнорировалось
	    (если это возможно).  Обратитесь к руководству по материнской
	    плате за деталями о том, как это сделать.</para>

	  <tip>
	    <para>Установка параметра клавиатуры <quote>Not installed</quote>
	      в настройках BIOS <emphasis>не</emphasis> означает, что вы не
	      сможете использовать клавиатуру.  Все, что делает этот
	      параметр &mdash; указывает BIOS не тестировать клавиатуру во
	      время загрузки, поэтому ее отсутствие не вызывает ошибки.
	      Вы можете оставить клавиатуру подключенной, даже если с флагом
	      <quote>Not installed</quote> и она все еще будет
	      работать.</para>
	  </tip>

	  <note>
	    <para>Если в к системе подключена &ps2; мышь, отключите ее, как
	      и клавиатуру.  Мышь &ps2; использует часть оборудования
	      совместно с клавиатурой, поэтому если оставить ее подключенной,
	      тестирование клавиатуры может ошибочно выдать наличие
	      последней.  Например, система Gateway 2000 Pentium 90&nbsp;MHz
	      ведет себя именно так.  К тому же, это не проблема, поскольку
	      мышь без клавиатуры как правило не нужна.</para>
	  </note>
	</step>

	<step>
	  <para>Подключите текстовый терминал к <devicename>COM1</devicename>
	    (<devicename>sio0</devicename>).</para>

	  <para>Если у вас нет текстового терминала, используйте старый PC/XT
	    с модемной программой, или последовательный порт на другом
	    компьютере &unix;.  Если порта <devicename>COM1</devicename>
	    (<devicename>sio0</devicename>) нет, подключите его.  На данный
	    момент нет способа использовать другой порт вместо
	    <devicename>COM1</devicename> без перекомпиляции загрузочных
	    блоков.  Если вы уже используете <devicename>COM1</devicename>
	    для подключения другого устройства, временно удалите это
	    устройство установите новый загрузочный блок и ядро как только
	    FreeBSD заработает.  (Предполагается, что
	    <devicename>COM1</devicename> будет доступен на
	    файловом/вычислительном/терминальном сервере в любом случае;
	    если вам действительно требуется <devicename>COM1</devicename>
	    для чего-то другого (и вы не можете переключить это на
	    <devicename>COM2</devicename> (<devicename>sio1</devicename>)),
	    возможно не стоит беспокоиться об этом сейчас.)</para>
	</step>

	<step>
	  <para>Убедитесь, что в файле настройки ядра установлены
	    соответствующие флаги для <devicename>COM1</devicename>
	    (<devicename>sio0</devicename>).</para>

	  <para>Подходящие флаги такие:</para>

	  <variablelist>
	    <varlistentry>
	      <term><literal>0x10</literal></term>

	      <listitem>
		<para>Включает поддержку консоли для этого устройства.  Если
		  установлен этот флаг, другие игнорируются.  На данный
		  момент поддержка консоли может быть включена не более
		  чем на одном устройстве; предпочтительно на первом (в
		  соответствии с порядком в конфигурационном файле) с
		  установкой этого флага.  Эта опция сама по себе не сделает
		  последовательный порт консолью.  Установите следующий
		  флаг или используйте опцию <option>-h</option>,
		  описанную ниже, вместе с этим флагом.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term><literal>0x20</literal></term>

	      <listitem>
		<para>Включает поддержку консоли на устройстве (если нет
		  другой консоли с более высоким приоритетом), независимо
		  от наличия описываемой ниже опции <option>-h</option>.
		  Этот флаг заменил опцию <literal>COMCONSOLE</literal>
		  в FreeBSD версий 2.<replaceable>X</replaceable>.  Флаг
		  <literal>0x20</literal> должен использоваться вместе
		  с флагом <option>0x10</option>.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term><literal>0x40</literal></term>

	      <listitem>
		<para>Резервирует это устройство (совместно с флагом
		  <literal>0x10</literal>) и делает устройство недоступным
		  для обычной работы.  Вы не должны использовать
		  этот флаг для устройства последовательного порта,
		  которое будет использоваться в качестве последовательной
		  консоли.  Используйте этот флаг только если устройство
		  предназначено для удаленной отладки ядра.  Обратитесь
		  к <ulink
		  url="../developers-handbook/index.html">Руководству
		  для разработчиков</ulink> за дополнительной информацией
		  по удаленной отладке.</para>

		<note>
		  <para>В FreeBSD&nbsp;4.0 или выше семантика флага
		    <literal>0x40</literal> немного другая и для удаленной
		    отладки используется другой флаг.</para>
		</note>
	      </listitem>
	    </varlistentry>
	  </variablelist>

	  <para>Пример:</para>

	  <programlisting>device sio0 at isa? port IO_COM1 flags 0x10 irq 4</programlisting>

	  <para>Обратитесь к странице справочника &man.sio.4; за подробностями.</para>

	  <para>Если флаги не были установлены, вам потребуется запустить
	    UserConfig (на другой консоли) или пересобрать ядро.</para>
	</step>

	<step>
	  <para>Создайте <filename>boot.config</filename> в корневом каталоге
	    раздела <literal>a</literal> на загрузочном диске.</para>

	  <para>Этот файл сообщит загрузочному блоку способ загрузки системы.
	    Для активации последовательной консоли вам потребуется одна или
	    несколько следующих опций &mdash; несколько опций могут быть
	    указаны на одной строке:</para>

	  <variablelist>
	    <varlistentry>
	      <term><option>-h</option></term>

	      <listitem>
		<para>Переключает внутреннюю и последовательную консоль.  Вы
		  можете использовать ее для переключения устройств консоли.
		  Например, при загрузке с внутренней (видео) консоли, вы
		  можете использовать <option>-h</option> для запуска
		  загрузчика и ядра с использованием последовательного порта
		  в качестве устройства консоли.  При загрузке с
		  последовательной консоли, вы можете использовать опцию
		  <option>-h</option> для указания загрузчику и ядру
		  использовать в качестве консоли видео дисплей.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term><option>-D</option></term>

	      <listitem>
		<para>Переключает одно- и двухконсольную конфигурации. В
		  одноконсольной конфигурации консоль может быть либо
		  внутренней (видео дисплей), либо последовательным портом,
		  в зависимости от состояния опции <option>-h</option>.
		  В двухконсольной конфигурации и видео дисплей и
		  последовательный порт станут консолями одновременно,
		  независимо от состояния опции <option>-h</option>.
		  Имейте ввиду, что конфигурация с двумя консолями работает
		  только во время работы загрузочного блока.  Как только
		  управление переходит к загрузчику, остается только одна
		  консоль, указанная опцией <option>-h</option>.</para>
	      </listitem>
	    </varlistentry>

	    <varlistentry>
	      <term><option>-P</option></term>

	      <listitem>
		<para>Указывает загрузочному блоку протестировать клавиатуру.
		  Если клавиатура не найдена, автоматически устанавливаются
		  параметры <option>-D</option> и
		  <option>-h</option>.</para>

		<note>
		  <para>По причине ограничений на размер в существующей
		    версии загрузочного блока, опция <option>-P</option>
		    может протестировать только расширенные клавиатуры.
		    Клавиатуры с менее чем 101 клавишами (и без клавиш F11
		    и F12) могут быть не обнаружены.  Клавиатуры некоторых
		    лэптопов могут быть не найдены из-за этого ограничения.
		    Если это случилось, вы не сможете использовать опцию
		    <option>-P</option>.  К сожалению, не существует
		    обходного пути решения этой проблемы.</para>
		</note>
	      </listitem>
	    </varlistentry>
	  </variablelist>

	  <para>Используйте или опцию <option>-P</option> для автоматического
	    выбора консоли, или опцию <option>-h</option> для активации
	    последовательной консоли.</para>

	  <para>Вы можете включить также другие опции, описанные в
	    &man.boot.8;.</para>

	  <para>Опции, за исключением <option>-P</option>, будут переданы
	    загрузчику (<filename>/boot/loader</filename>).  Загрузчик
	    определит будет ли консолью внутреннее видео устройство или
	    последовательный порт, проверив только состояние опции
	    <option>-h</option>.  Это означает, что если вы включите в
	    <filename>/boot.config</filename> опцию <option>-D</option>, но
	    не <option>-h</option>, то сможете использовать консоль только
	    во время работы загрузочного блока; загрузчик будет использовать
	    внутреннее видео устройство в качестве консоли.</para>
	</step>

	<step>
	  <para>Загрузите компьютер.</para>

	  <para>Когда вы включите компьютер FreeBSD, загрузочный блок выведет
	    содержимое <filename>/boot.config</filename> на консоль.
	    Например:</para>

	  <screen>/boot.config: -P
Keyboard: no</screen>

	  <para>Вторая строка появится только если вы поместите
	    <option>-P</option> в <filename>/boot.config</filename> и
	    отражает наличие/отсутствие клавиатуры.  Эти сообщения
	    выводятся либо на последовательную, либо на внутреннюю
	    консоль, или на обе, в зависимости от параметров в
	    <filename>/boot.config</filename>.</para>

	  <informaltable frame="none">
	    <tgroup cols="2">
	      <thead>
		<row>
		  <entry>Опции</entry>
		  <entry>Сообщения выводятся на</entry>
		</row>
	      </thead>

	      <tbody>
		<row>
		  <entry>нет</entry>
		  <entry>внутренняя консоль</entry>
		</row>

		<row>
		  <entry><option>-h</option></entry>
		  <entry>последовательная консоль</entry>
		</row>

		<row>
		  <entry><option>-D</option></entry>
		  <entry>последовательная и внутренняя консоли</entry>
		</row>

		<row>
		  <entry><option>-Dh</option></entry>
		  <entry>последовательная и внутренняя консоли</entry>
		</row>

		<row>
		  <entry><option>-P</option>, клавиатура присутствует</entry>
		  <entry>внутренняя консоль</entry>
		</row>

		<row>
		  <entry><option>-P</option>, клавиатура отсутствует</entry>
		  <entry>последовательная консоль</entry>
		</row>
	      </tbody>
	    </tgroup>
	  </informaltable>

	  <para>После вывода вышеприведенных сообщений, происходит небольшая
	    пауза перед тем, как запускается загрузчик и на консоли
	    появляются следующие сообщения.  В нормальной ситуации вам не
	    потребуется прерывать загрузку в этот момент, но это можно
	    сделать, чтобы убедиться, что все настроено правильно.</para>

	  <para>Нажмите на консоли любую клавишу кроме
	    <keycode>Enter</keycode> для прерывания процесса загрузки.
	    Загрузочный блок выдаст приглашение к дальнейшим действиям.
	    Оно выглядит примерно так:</para>

	  <screen>>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:</screen>

	  <para>Убедитесь, что сообщение выше появилось на последовательной,
	    внутренней консоли или на обеих, в зависимости от опций в
	    <filename>/boot.config</filename>.  Если сообщение появилось там,
	    где должно было появиться, нажмите <keycode>Enter</keycode> для
	    продолжения процесса загрузки.</para>

	  <para>Если вам нужна последовательная консоль, но на терминале не
	    видно приглашения, это означает проблемы с настройками.  Введите
	    <option>-h</option> и нажмите Enter/Return (если это возможно) для
	    указания загрузочному блоку (а также загрузчику и ядру) выбрать
	    последовательный порт в качестве консоли.  Когда система
	    загрузится, проверьте настройки еще раз и определите, что было
	    сделано неправильно.</para>
	</step>
      </procedure>

      <para>После запуска загрузчика и перехода в третью стадию процесса
	загрузки вы все еще можете переключиться между внутренней консолью
	и последовательной консолью путем установки соответствующих
	переменных окружения в загрузчике.  Обращайтесь к разделу
	<xref linkend="serialconsole-loader">.</para>
    </sect2>

  <sect2 id="serialconsole-summary">
    <title>Итоги</title>

      <para>Здесь приведены краткие итоги по различным настройкам,
	рассмотренным в этом разделе и выбираемым в соответствии с
	ними консолям.</para>

      <sect3>
	<title>Вариант 1: вы устанавливаете для
	  <devicename>sio0</devicename> флаги 0x10</title>

	<programlisting>device sio0 at isa? port IO_COM1 flags 0x10 irq 4</programlisting>

	<informaltable frame="none">
	  <tgroup cols="4">
	    <thead>
	      <row>
		<entry>Параметры в /boot.config</entry>
		<entry>Консоль для загрузочного блока</entry>
		<entry>Консоль для загрузчика</entry>
		<entry>Консоль для ядра</entry>
	      </row>
	    </thead>

	    <tbody>
	      <row>
		<entry>нет</entry>
		<entry>внутренняя</entry>
		<entry>внутренняя</entry>
		<entry>внутренняя</entry>
	      </row>

	      <row>
		<entry><option>-h</option></entry>
		<entry>последовательная</entry>
		<entry>последовательная</entry>
		<entry>последовательная</entry>
	      </row>

	      <row>
		<entry><option>-D</option></entry>
		<entry>последовательная и внутренняя</entry>
		<entry>внутренняя</entry>
		<entry>внутренняя</entry>
	      </row>

	      <row>
		<entry><option>-Dh</option></entry>
		<entry>последовательная и внутренняя</entry>
		<entry>последовательная</entry>
		<entry>последовательная</entry>
	      </row>

	      <row>
		<entry><option>-P</option>, клавиатура присутствует</entry>
		<entry>внутренняя</entry>
		<entry>внутренняя</entry>
		<entry>внутренняя</entry>
	      </row>

	      <row>
		<entry><option>-P</option>, клавиатура отсутствует</entry>
		<entry>последовательная и внутренняя</entry>
		<entry>последовательная</entry>
		<entry>последовательная</entry>
	      </row>
	    </tbody>
	  </tgroup>
	</informaltable>
      </sect3>

      <sect3>
	<title>Вариант 2: вы устанавливаете для
	  <devicename>sio0</devicename> флаги 0x30</title>

	<programlisting>device sio0 at isa? port IO_COM1 flags 0x30 irq 4</programlisting>

	<informaltable frame="none">
	  <tgroup cols="4">
	    <thead>
	      <row>
		<entry>Параметры в /boot.config</entry>
		<entry>Консоль для загрузочного блока</entry>
		<entry>Консоль для загрузчика</entry>
		<entry>Консоль для ядра</entry>
	      </row>
	    </thead>

	    <tbody>
	      <row>
		<entry>нет</entry>
		<entry>внутренняя</entry>
		<entry>внутренняя</entry>
		<entry>последовательная</entry>
	      </row>

	      <row>
		<entry><option>-h</option></entry>
		<entry>последовательная</entry>
		<entry>последовательная</entry>
		<entry>последовательная</entry>
	      </row>

	      <row>
		<entry><option>-D</option></entry>
		<entry>последовательная и внутренняя</entry>
		<entry>внутренняя</entry>
		<entry>последовательная</entry>
	      </row>

	      <row>
		<entry><option>-Dh</option></entry>
		<entry>последовательная и внутренняя</entry>
		<entry>последовательная</entry>
		<entry>последовательная</entry>
	      </row>

	      <row>
		<entry><option>-P</option>, клавиатура присутствует</entry>
		<entry>внутренняя</entry>
		<entry>внутренняя</entry>
		<entry>последовательная</entry>
	      </row>

	      <row>
		<entry><option>-P</option>, клавиатура отсутствует</entry>
		<entry>последовательная и внутренняя</entry>
		<entry>последовательная</entry>
		<entry>последовательная</entry>
	      </row>
	    </tbody>
	  </tgroup>
	</informaltable>
      </sect3>
    </sect2>

    <sect2 id="serialconsole-tips">
      <title>Приемы работы с последовательной консолью</title>

      <sect3>
	<title>Установка более высокой скорости порта</title>

	<para>По умолчанию, последовательный порт настроен так: 9600 бит/с,
	  8 бит, без четности, 1 стоп бит.  Если вам необходимо изменить
	  скорость, потребуется перекомпиляция как минимум загрузочных
	  блоков.  Добавьте следующую строку к
	  <filename>/etc/make.conf</filename> и скомпилируйте новый
	  загрузочный блок:</para>

	<programlisting>BOOT_COMCONSOLE_SPEED=19200</programlisting>

	<para>Если последовательная консоль настраивается не путем установки
	  параметра <option>-h</option>, или последовательная консоль,
	  используемая ядром, отличается от той, что используется загрузочным
	  блоком, потребуется добавить следующие опции к файлу настройки ядра
	  и собрать новое ядро:</para>

	<programlisting>options CONSPEED=19200</programlisting>
      </sect3>

      <sect3 id="serialconsole-com2">
	<title>Использование для консоли другого последовательного порта
	  вместо <devicename>sio0</devicename></title>

	<para>Использование другого последовательного порта вместо
	  <devicename>sio0</devicename> для консоли потребует кое-какой
	  перекомпиляции.  Если вы по каким-либо причинам хотите использовать
	  другой последовательный порт, перекомпилируйте загрузочный блок,
	  загрузчик и ядро согласно приведенной ниже инструкции.</para>

	<procedure>
	  <step>
	    <para>Получите исходные тексты ядра (глава
	      <xref linkend="cutting-edge">)</para>
	  </step>

	  <step>
	    <para>Отредактируйте <filename>/etc/make.conf</filename> и
	      установите <literal>BOOT_COMCONSOLE_PORT</literal> в
	      соответствии с адресом порта, который вы хотите использовать
	      (0x3F8, 0x2F8, 0x3E8 или 0x2E8).  Могут быть использованы
	      только устройства от <devicename>sio0</devicename> до
	      <devicename>sio3</devicename> (от <devicename>COM1</devicename>
	      до <devicename>COM4</devicename>); мультипортовые
	      последовательные карты не будут работать.  Установка
	      прерываний не требуется.</para>
	  </step>

	  <step>
	    <para>Создайте файл настройки ядра и добавьте соответствующие
	      флаги для порта, который планируется использовать.  Например,
	      если вы хотите использовать для консоли
	      <devicename>sio1</devicename>
	      (<devicename>COM2</devicename>):</para>

	    <programlisting>device sio1 at isa? port IO_COM2 flags 0x10 irq 3</programlisting>

	    <para>или</para>

	    <programlisting>device sio1 at isa? port IO_COM2 flags 0x30 irq 3</programlisting>

	    <para>Флаги для других последовательных устройств не
	      устанавливайте.</para>
	  </step>

	  <step>
	    <para>Соберите и установите загрузочный блок и
	      загрузчик:</para>

	    <screen>&prompt.root; <userinput>cd /sys/boot</userinput>
&prompt.root; <userinput>make</userinput>
&prompt.root; <userinput>make install</userinput></screen>
	  </step>

	  <step>
	    <para>Соберите и установите ядро.</para>
	  </step>

	  <step>
	    <para>Запишите загрузочный блок на загрузочный диск с помощью
	      &man.disklabel.8; и загрузитесь с новым ядром.</para>
	  </step>
	</procedure>
      </sect3>

      <sect3>
	<title>Вход в отладчик DDB с последовательной линии</title>

	<para>Если вы хотите войти в отладчик ядра с последовательной консоли
	  (полезно для удаленной диагностики, но опасно если вы введете
	  неправильный BREAK на последовательном порту!), потребуется
	  собрать ядро со следующими параметрами:</para>

	<programlisting>options BREAK_TO_DEBUGGER
options DDB</programlisting>
      </sect3>

      <sect3>
	<title>Получение приглашения на последовательной консоли</title>

	<para>Хотя это не обязательно, вам может потребоваться приглашение
	  <emphasis>login</emphasis> по последовательной линии, в дополнение
	  к уже доступным загрузочным сообщениям и отладочной сессии ядра.
	  Здесь описано как сделать это.</para>

	<para>Откройте файл <filename>/etc/ttys</filename> с помощью
	  редактора и найдите строки:</para>

      <programlisting>ttyd0 "/usr/libexec/getty std.9600" unknown off secure
ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd2 "/usr/libexec/getty std.9600" unknown off secure
ttyd3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>

	<para>Строки от <literal>ttyd0</literal> до <literal>ttyd3</literal>
	  соответствуют портам от <devicename>COM1</devicename> до
	  <devicename>COM4</devicename>.  Измените <literal>off</literal> на
	  <literal>on</literal> для требуемого порта.  Если вы изменили
	  скорость последовательного порта, может потребоваться изменить
	  <literal>std.9600</literal> для соответствия текущим настройкам,
	  например <literal>std.19200</literal>.</para>

	<para>Возможно, вы захотите заменить тип терминала
	  <literal>unknown</literal> на тип реально используемого
	  терминала.</para>

	<para>После редактирования файла потребуется выполнить
	  <command>kill -HUP 1</command> для включения новых настроек.</para>
      </sect3>
    </sect2>

    <sect2 id="serialconsole-loader">
      <title>Изменение консоли из загрузчика</title>

      <para>Предыдущий раздел описывает настройку последовательной консоли
	изменением параметров загрузочного блока.  Этот раздел показывает,
	как указать консоль, вводя команды и переменные окружения для
	загрузчика.  Поскольку загрузчик загружается после загрузочного
	блока, на третьей стадии загрузочного процесса, настройки
	загрузчика превалируют над настройками загрузочного блока.</para>

      <sect3>
	<title>Настройка последовательной консоли</title>

	<para>Вы можете прямо указать загрузчику и ядру использовать
	  последовательную консоль, записав одну строку в
	  <filename>/boot/loader.rc</filename>:</para>

	<programlisting>set console=comconsole</programlisting>

	<para>Это сработает независимо от настроек загрузочного блока,
	  рассмотренных в предыдущем разделе.</para>

	<para>Поместите эту строку в самое начало
	  <filename>/boot/loader.rc</filename>, чтобы увидеть на
	  последовательной консоли все загрузочные сообщения.</para>

	<para>Вы можете также указать внутреннюю консоль:</para>

	<programlisting>set console=vidconsole</programlisting>

	<para>Если вы не установите переменную загрузчика
	  <envar>console</envar>, загрузчик, а затем и ядро будут
	  использовать ту консоль, которая установлена параметром
	  <option>-h</option> для загрузочного блока.</para>

	<para>В версиях 3.2 или выше, вы можете указать консоль в
	  <filename>/boot/loader.conf.local</filename> или
	  <filename>/boot/loader.conf</filename> вместо
	  <filename>/boot/loader.rc</filename>.  С этим методом
	  <filename>/boot/loader.rc</filename> должен выглядеть примерно
	  так:</para>

	<programlisting>include /boot/loader.4th
start</programlisting>

	<para>Затем, создайте <filename>/boot/loader.conf.local</filename> и
	  поместите туда следующую строку.</para>

	<programlisting>console=comconsole</programlisting>

	<para>или</para>

	<programlisting>console=vidconsole</programlisting>

	<para>Обращайтесь к &man.loader.conf.5; за дополнительной
	  информацией.</para>

	<note>
	  <para>На данный момент у загрузчика нет параметра, эквивалентного
	    параметру <option>-P</option> загрузочного блока и нет способа
	    автоматического выбора внутренней и последовательной консоли
	    в зависимости от наличия клавиатуры.</para>
	</note>
      </sect3>

      <sect3>
	<title>Использование для консоли отличного от
	  <devicename>sio0</devicename> последовательного порта</title>

	<para>Вам потребуется перекомпилировать загрузчик для использования
	  отличного от <devicename>sio0</devicename> последовательного порта
	  в качестве консоли.  Следуйте процедуре, описанной в разделе
	  <xref linkend="serialconsole-com2">.</para>
      </sect3>
    </sect2>

    <sect2 id="serialconsole-caveats">
      <title>Предостережения</title>

      <para>Идея в том, чтобы настроить выделенный сервер, который не требует
	графического оборудования или подсоединенной клавиатуры. К сожалению,
	хотя многие системы способны загрузиться без клавиатуры, есть совсем
	немного систем, способных загрузиться без графического адаптера.
	Компьютеры с AMI BIOS могут быть настроены для загрузки без
	графического адаптера простой установкой параметра настройки CMOS
	<quote>graphics adapter</quote> в значение <quote>Not
	installed</quote>.</para>

<!-- tip about installing AMI BIOS was removed from translation (dangerous) -->
      <para>Однако, многие компьютеры не поддерживают этот параметр и не
	смогут загрузиться без графического оборудования.  Для этих
	компьютеров вам потребуется оставить подключенной любую
	графическую карту (даже если это просто старая моно карта),
	хотя монитор и не подключен.</para>
    </sect2>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->

