<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE sections SYSTEM "/dtd/book.dtd">

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->

<!-- $Header: /var/www/www.gentoo.org/raw_cvs/gentoo/xml/htdocs/doc/en/handbook/hb-install-hppa-kernel.xml,v 1.27 2005/08/21 17:47:46 neysx Exp $ -->

<!-- *$Localization:
target-language: Russian
target-version: 1.20-r1
target-date: 2005-09-02
source-cvs-revision: 1.27
translated-by: Vasiliy Golubev <vas@nightmail.ru>, Azamat H. Hackimov
<azazello1984@mail.ru>
edited-by: none
notes:
При переводе данного документа был использован hb-install-x86-kernel.xml в
качестве шаблона, отчего и первая фамилия в переводчиках :)
require translated gentoo-kernel.xml
-->

<sections>

<version>1.20</version>
<date>2005-08-21</date>

<section>
<title>Временная зона</title>
<body>

<p>
Сначала вы должны выбрать временную зону, чтобы система знала, где вы
находитесь. Найдите нужную зону в <path>/usr/share/zoneinfo</path> и сделайте
символическую ссылку <path>/etc/localtime</path> с помощью <c>ln</c>.
Пожалуйста, не используйте временные зоны
<path>/usr/share/zoneinfo/Etc/GMT*</path>, т.к. их имена не отражают
предполагаемые зоны. Например, <path>GMT-8</path> на самом деле является GMT+8.
</p>

<pre caption="Установка временной зоны">
# <i>ls /usr/share/zoneinfo</i>
<comment>(Допустим, что вы хотите использовать GMT)</comment>
# <i>ln -sf /usr/share/zoneinfo/GMT /etc/localtime</i>
</pre>

</body>
</section>
<section>
<title>Установка исходных кодов ядра</title>
<subsection>
<title>Выбор ядра</title>
<body>

<p>
Ядро Linux &mdash; это то, вокруг чего формируются все дистрибутивы. Это слой
между пользовательскими программами и вашими аппаратными средствами.
Пользователи Gentoo могут использовать один из нескольких типов ядра. Полный
список с их описанием можно найти в <uri
link="/doc/ru/gentoo-kernel.xml">Руководстве по выбору ядра Gentoo</uri>.
</p>

<p>
Для HPPA у нас есть <c>hppa-sources</c>. По умолчанию эти исходные коды
основаны на исходных кодах ядра 2.6. Если вы хотите установить ядро 2.4, то вам
придется устанавливать Gentoo, имея доступ к интернету, так как мы не снабжаем
этими исходными кодами наш установочный диск. Продолжим с установки исходных
кодов ядра с помощью <c>emerge</c>:
</p>

<pre caption="Установка исходных кодов ядра">
# <i>emerge hppa-sources</i>
</pre>

<p>
Если вы просмотрите содержимое каталога <path>/usr/src</path>, то увидите
символическую ссылку <path>linux</path>, которая указывает на каталог с
исходными кодами ядра:
</p>

<pre caption="Просмотр каталога с исходными кодами ядра">
# <i>ls -l /usr/src/linux</i>
lrwxrwxrwx    1 root     root           12 Oct 13 11:04 /usr/src/linux -&gt; linux-2.6.12.2-pa2
</pre>

<p>
Если же каталог, на который указывает ссылка, не соответствует выбранному вами
ядру, то ее надо изменить:
</p>

<pre caption="Смена ссылки">
# <i>rm /usr/src/linux</i>
# <i>cd /usr/src</i>
# <i>ln -s linux-2.6.12.2-pa2 linux</i>
</pre>

<p>
Теперь настало время настройки и компиляции ядра. Во всех архитектурах можно
использовать для этого <c>genkernel</c>, который сформирует стандартное ядро,
аналогичное используемому на установочном компакт-диске. Сначала мы рассмотрим
конфигурацию вручную, так как это наилучший способ оптимизировать вашу систему.
</p>

<p>
Если вы хотите вручную настроить ядро, то переходите к разделу <uri
link="#manual">По умолчанию: ручная настройка</uri>. Если вы хотите
использовать <c>genkernel</c>, то читайте <uri link="#genkernel">Альтернатива:
использование genkernel</uri>.
</p>

</body>
</subsection>
</section>
<section id="manual">
<title>По умолчанию: ручная настройка</title>
<subsection>
<title>Введение</title>
<body>

<p>
Ручная настройка ядра считается одним из самых сложных вопросов для
пользователей Linux. Зато после настройки нескольких ядер, вы и не вспомните,
что это было трудно ;).
</p>

<p>
Когда вы запускаете ручную настройку ядра, вы должны знать аппаратную часть
своего компьютера. Большую часть информации можно получить после установки
пакета pciutils (<c>emerge pciutils</c>), который содержит <c>lspci</c>. После
этого вы сможете использовать <c>lspci</c> внутри временной среды установки.
Можете не обращать внимания на предупреждения, касающиеся <e>pcilib</e>
(например, pcilib: cannot open /sys/bus/pci/devices [pcilib: не могу открыть
/sys/bus/pci/devices]), которые выводит на экран <c>lspci</c>. В качестве
альтернативы, вы можете запустить <c>lspci</c> <e>вне временной среды
установки</e>. Результат тот же. Вы также можете запустить <c>lsmod</c> для
просмотра модулей ядра используемых установочным компакт-диском (это послужит
хорошей подсказкой, на предмет того, какие опции надо включить).
</p>

<p>
Теперь войдите в каталог с исходными кодами ядра и введите команду <c>make
menuconfig</c>. Этой командой вы вызовете конфигурационное меню, использующее
ncurses.
</p>

<pre caption="Вызов конфигурационного меню">
# <i>cd /usr/src/linux</i>
# <i>make menuconfig</i>
</pre>

<p>
Перед вами появятся несколько разделов настроек. Мы сначала перечислим
пункты, которые надо активировать (иначе Gentoo не будет работать или будет
работать не так как надо без дополнительных настроек).
</p>

</body>
</subsection>
<subsection>
<title>Активация нужных параметров</title>
<body>

<p>
Прежде всего, разрешите использование разрабатываемых и экспериментальных
кодов/драйверов. Если этого не сделать, вы не увидите некоторых важных
параметров:
</p>

<pre caption="Выбор эксперементальных кодов/драйверов, основные настройки">
Code maturity level options ---&gt;
  [*] Prompt for development and/or incomplete code/drivers
General setup ---&gt;
  [*] Support for hot-pluggable devices
</pre>

<p>
Теперь войдите в <c>File Systems</c> и выберите поддержку всех нужных вам
файловых систем. <e>Не</e> компилируйте их как модули, иначе система Gentoo не
сможет смонтировать эти разделы. Также выберите <c>/proc file system</c>,
<c>Virtual memory</c> и <c>Automatically mount at boot</c>. 
</p>

<pre caption="Выбор необходимых файловых систем">
File systems ---&gt;
  Pseudo Filesystems ---&gt;
    [*] /proc file system support
    [*] /dev file system support (OBSOLETE)
    [*]   Automatically mount at boot
    [*] Virtual memory file system support (former shm fs)

<comment>(Выберите один или несколько параметров, необходимых вашей
системе)</comment>
  &lt;*&gt; Reiserfs support
  &lt;*&gt; Ext3 journalling file system support
  &lt;*&gt; JFS filesystem support
  &lt;*&gt; Second extended fs support
  &lt;*&gt; XFS filesystem support
</pre>

<p>
Если вы используете PPPoE или dial-up модем для соединений к интернету, то
вам нужно включить в ядре следующие параметры:
</p>

<pre caption="Выбор нужных драйверов PPPoE">
Device Drivers ---&gt;
  Networking support ---&gt;
    &lt;*&gt; PPP (point-to-point protocol) support
    &lt;*&gt;   PPP support for async serial ports
    &lt;*&gt;   PPP support for sync tty ports
</pre>

<p>
Два параметра сжатия данных не являются необходимыми, но и вреда от них тоже не
будет. То же относится и к опции <c>PPP over Ethernet</c> которая нужна только
для <c>rp-pppoe</c>, сконфигурированного для работы с PPPoE в ядре.
</p>

<p>
Если вам надо использовать сетевые карты, то не забудьте включить в ядре их
поддержку.
</p>

<p>
Если у вас мышь или клавиатура HIL, не забудьте собрать их поддержку.
</p>

<pre caption="Включение поддержки HIL">
Input core support ---&gt;
  [*] Keyboard support
  [*] Mouse support
  [*] Event interface support
</pre>

<p>
Если у вас к HIL-порту не модключена мышь, используйте только базовую
поддержку:
</p>

<pre caption="Базовая поддержка HIL">
HIL support ---&gt;
  [*] HIL Keyboard (basic) support
</pre>

<p>
Если вы все же хотите включить <e>полную</e> поддержку HIL, выберите следующие
параметры:
</p>

<pre caption="Полная поддержка HIL">
HIL support ---&gt;
  [*] HP System Device Controller i8042 Support
  [*] HIL MLC Support
  [*] HIL Keyboard (full) support
  [*] HIL Mouse &amp; Pointer support
</pre>

<p>
Также включите поддержку драйверов монитора:
</p>

<pre caption="Поддержка драйвера монитора">
Graphics support ---&gt;
  [*] Support for frame buffer devices
      [*] HP STI frame buffer device support
  Console display driver support ---&gt;
      [*] STI text console
</pre>

<p>
Когда вы закончите настройку ядра, можете переходить к разделу <uri
link="#compiling">Компиляция и установка</uri>.
</p>

</body>
</subsection>
<subsection id="compiling">
<title>Компиляция и установка</title>
<body>

<p>
Теперь, когда ваше ядро настроено, настало время его скомпилировать и 
установить. Выйдите из конфигурационного меню и запустите процесс компиляции:
</p>

<pre caption="Компиляция ядра">
# <i>make &amp;&amp; make modules_install</i>
</pre>

<p>
Когда ядро будет скомпилировано, скопируйте образ ядра в каталог
<path>/boot</path>. В следующем примере предположим, что вы сконфигурировали и
собрали ядро <c>hppa-sources-2.6.12.2-pa2</c>.
</p>

<pre caption="Установка ядра">
# <i>cp vmlinux /boot/kernel-2.6.12.2-pa2</i>
# <i>cp System.map /boot/System.map-2.6.12.2-pa2</i>
</pre>

<p>
Также стоит скопировать ваш конфигурационный файл ядра в каталог
<path>/boot</path>, так, на всякий случай :).
</p>

<pre caption="Создание резервной копии конфигурационного файла ядра">
# <i>cp .config /boot/config-2.6.12.2-pa2</i>
</pre>

<p>
Теперь переходите к разделу <uri link="#kernel_modules">Установка отдельных
модулей ядра</uri>.
</p>

</body>
</subsection>
</section>
<section id="genkernel">
<title>Альтернатива: использование genkernel</title>
<body>

<p>
Если вы читаете этот раздел, то вы хотите использовать наш сценарий
<c>genkernel</c> для настройки своего ядра.
</p>

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

<p>
Рассмотрим как использовать genkernel. Сначала выполним emerge genkernel:
</p>

<pre caption="Установка genkernel">
# <i>emerge genkernel</i>
</pre>

<p>
Теперь скомпилируйте исходные коды ядра, запустив <c>genkernel all</c>. Знайте,
так как <c>genkernel</c> компилирует ядро, поддерживающее всевозможное
оборудование, это займет много времени до окончания!
</p>

<p>
Помните, что если загрузочный раздел не использует ext2 или ext3 в качестве ФС,
то вам понадобится вручную сконфигурировать ядро с помощью <c>genkernel
--menuconfig all</c> и включить поддержку вашей файловой системы <e>в</e> ядре
(то есть <e>не</e> в качестве модуля).
</p>

<pre caption="Запуск genkernel">
# <i>genkernel all</i>
<comment>(Output removed to increase readability)</comment>
* Kernel compiled successfully!
* Required Kernel Params:
*   : root=/dev/ram0 init=/linuxrc real_root=/dev/$ROOT
*     where $ROOT is the devicenode for your root partition as
*     you should have specified in /etc/fstab
*              
* You MUST tell your bootloader to use the generated initrd
*              
* Recommended Kernel Params:
*   : vga=0x317 splash=verbose
*              
* Do NOT report kernel bugs (configs included) as genkernel bugs.
* Make sure you have the latest genkernel before reporting bugs
*              
* For more info see /usr/share/genkernel/README
</pre>

<p>
Когда <c>genkernel</c> завершит свою работу, будет создано ядро, полный набор
модулей и <e>начальный корневой диск</e> (initrd). Мы будем использовать ядро и
initrd в процессе настройки загрузчика системы, далее в этом руководстве.
Запишите имена ядра и начального корневого диска, так как они нам понадобятся
при редактировании конфигурационного файла загрузчика. initrd будет запущен
сразу после загрузки для автоматического определения устройств (точно так же как
и в установочном компакт-диске), прежде чем ваша система перейдет к настоящей
загрузке.
</p>

<pre caption="Проверяем название созданного ядра и initrd">
# <i>ls /boot/kernel* /boot/initramfs*</i>
</pre>

<p>
Теперь давайте сделаем нашу систему еще ближе к установочному компакт-диску
&mdash; соберем <c>coldplug</c>. В то время как initrd автоматически находит
оборудование, необходимое для загрузки системы, <c>coldplug</c> автоматически
определяет все остальное оборудование. Установим <c>coldplug</c>, командой:
</p>

<pre caption="Установка и включение coldplug">
# <i>emerge coldplug</i>
# <i>rc-update add coldplug default</i>
</pre>

</body>
</section>
<section id="kernel_modules">
<title>Установка отдельных модулей ядра</title>
<subsection>
<title>Конфигурация модулей</title>
<body>

<p>
Вы должны перечислить модули, которые должны загружаться автоматически, в файле
<path>/etc/modules.autoload.d/kernel-2.6</path>. Также, при желании, можно
сообщить модулям некоторые дополнительные параметры.
</p>

<p>
Для просмотра всех доступных модулей запустите команду <c>find</c>, заменив
"&lt;kernel version&gt;" на версию ядра, которое вы только что собрали:
</p>

<pre caption="Просмотр доступных модулей">
# <i>find /lib/modules/&lt;kernel version&gt;/ -type f -iname '*.o' -or -iname '*.ko'</i>
</pre>

<p>
Например, если вы хотите автоматически загружать модуль <c>3c59x.o</c>,
отредактируйте файл <path>kernel-2.6</path> и пропишите туда имя модуля.
</p>

<pre caption="Редактирование /etc/modules.autoload.d/kernel-2.6">
# <i>nano -w /etc/modules.autoload.d/kernel-2.6</i>
</pre>

<pre caption="/etc/modules.autoload.d/kernel-2.6">
3c59x
</pre>

<p>
Теперь можете продолжить установку и перейти к разделу <uri
link="?part=1&amp;chap=8">Настройка системы</uri>.
</p>

</body>
</subsection>
</section>
</sections>