Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-doc
Path: blob/main/documentation/content/ru/books/handbook/kernelconfig/_index.po
18098 views
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <[email protected]>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2026-05-09 23:29+0100\n"
"PO-Revision-Date: 2026-05-11 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <[email protected]>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/bookshandbookkernelconfig_index/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.17\n"

#. type: YAML Front Matter: description
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:1
#, no-wrap
msgid "This chapter covers how to configure the FreeBSD Kernel. When to build a custom kernel, how to take a hardware inventory, how to customize a kernel configuration file, etc"
msgstr "Эта глава рассказывает о настройке ядра FreeBSD. Когда стоит собирать собственное ядро, как провести инвентаризацию оборудования, как настроить конфигурационный файл ядра и т. д."

#. type: YAML Front Matter: part
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:1
#, no-wrap
msgid "Part II. Common Tasks"
msgstr "Часть II. Стандартные задачи"

#. type: YAML Front Matter: title
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:1
#, no-wrap
msgid "Chapter 10. Configuring the FreeBSD Kernel"
msgstr "Глава 10. Настройка ядра FreeBSD"

#. type: Title =
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:15
#, no-wrap
msgid "Configuring the FreeBSD Kernel"
msgstr "Настройка ядра FreeBSD"

#. type: Title ==
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:53
#, no-wrap
msgid "Synopsis"
msgstr "Обзор"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:58
msgid ""
"The kernel is the core of the FreeBSD operating system.  It is responsible "
"for managing memory, enforcing security controls, networking, disk access, "
"and much more.  While much of FreeBSD is dynamically configurable, some "
"users may wish to configure and compile a custom kernel."
msgstr ""
"Ядро — это основа операционной системы FreeBSD. Оно отвечает за управление "
"памятью, обеспечение контроля безопасности, работу с сетью, доступ к дискам "
"и многое другое. Хотя большая часть FreeBSD динамически настраивается, "
"некоторые пользователи могут захотеть настроить и скомпилировать собственное "
"ядро."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:60
msgid "Read this chapter to learn:"
msgstr "Прочтите эту главу, чтобы узнать:"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:62
msgid "When to build a custom kernel."
msgstr "Когда следует собирать собственный ядро."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:63
msgid "How to take a hardware inventory."
msgstr "Как провести инвентаризацию оборудования."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:64
msgid "How to customize a kernel configuration file."
msgstr "Как настроить файл конфигурации ядра."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:65
msgid ""
"How to use the kernel configuration file to create and build a new kernel."
msgstr ""
"Как использовать файл конфигурации ядра для создания и сборки нового ядра."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:66
msgid "How to install the new kernel."
msgstr "Как установить новое ядро."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:67
msgid "How to troubleshoot if things go wrong."
msgstr "Как устранить неполадки, если что-то пойдет не так."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:69
msgid ""
"All of the commands listed in the examples in this chapter should be "
"executed as `root`."
msgstr ""
"Все команды, приведённые в примерах этой главы, должны выполняться от имени "
"пользователя `root`."

#. type: Title ==
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:71
#, no-wrap
msgid "Why Build a Custom Kernel?"
msgstr "Зачем собирать собственное ядро?"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:75
msgid ""
"Traditionally, FreeBSD used a monolithic kernel.  The kernel was one large "
"program, supported a fixed list of devices, and in order to change the "
"kernel's behavior, one had to compile and then reboot into a new kernel."
msgstr ""
"Традиционно FreeBSD использовала монолитное ядро. Ядро представляло собой "
"одну большую программу, поддерживало фиксированный список устройств, и для "
"изменения его поведения необходимо было скомпилировать новое ядро, а затем "
"перезагрузиться в него."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:79
msgid ""
"Today, most of the functionality in the FreeBSD kernel is contained in "
"modules which can be dynamically loaded and unloaded from the kernel as "
"necessary.  This allows the running kernel to adapt immediately to new "
"hardware and for new functionality to be brought into the kernel.  This is "
"known as a modular kernel."
msgstr ""
"Сегодня большая часть функциональности ядра FreeBSD содержится в модулях, "
"которые могут быть динамически загружены в ядро или выгружены из него по "
"мере необходимости. Это позволяет работающему ядру немедленно адаптироваться "
"к новому оборудованию и добавлять новую функциональность. Такое ядро "
"называется модульным."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:83
msgid ""
"Occasionally, it is still necessary to perform static kernel configuration.  "
"Sometimes the needed functionality is so tied to the kernel that it can not "
"be made dynamically loadable.  Some security environments prevent the "
"loading and unloading of kernel modules and require that only needed "
"functionality is statically compiled into the kernel."
msgstr ""
"Время от времени всё ещё требуется выполнять статическую настройку ядра. "
"Иногда необходимая функциональность настолько тесно связана с ядром, что её "
"невозможно сделать динамически загружаемой. В некоторых средах с повышенными "
"требованиями к безопасности запрещена загрузка и выгрузка модулей ядра, и "
"требуется, чтобы только необходимая функциональность была статически "
"скомпилирована в ядро."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:88
msgid ""
"Building a custom kernel is often a rite of passage for advanced BSD users.  "
"This process, while time consuming, can provide benefits to the FreeBSD "
"system.  Unlike the [.filename]#GENERIC# kernel, which must support a wide "
"range of hardware, a custom kernel can be stripped down to only provide "
"support for that computer's hardware.  This has a number of benefits, such "
"as:"
msgstr ""
"Сборка собственного ядра часто является своего рода обрядом посвящения для "
"опытных пользователей BSD. Этот процесс, хотя и отнимает много времени, "
"может принести пользу системе FreeBSD. В отличие от ядра [."
"filename]#GENERIC#, которое должно поддерживать широкий спектр оборудования, "
"собственное ядро можно сократить до поддержки только аппаратного обеспечения "
"данного компьютера. Это даёт ряд преимуществ, таких как:"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:90
msgid ""
"Faster boot time. Since the kernel will only probe the hardware on the "
"system, the time it takes the system to boot can decrease."
msgstr ""
"Более быстрая загрузка. Поскольку ядро будет проверять только оборудование, "
"установленное в системе, время загрузки системы может сократиться."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:91
msgid ""
"Lower memory usage. A custom kernel often uses less memory than the [."
"filename]#GENERIC# kernel by omitting unused features and device drivers. "
"This is important because the kernel code remains resident in physical "
"memory at all times, preventing that memory from being used by applications. "
"For this reason, a custom kernel is useful on a system with a small amount "
"of RAM."
msgstr ""
"Снижение использования памяти. Собственное ядро часто потребляет меньше "
"памяти, чем ядро [.filename]#GENERIC#, за счёт исключения неиспользуемых "
"функций и драйверов устройств. Это важно, поскольку код ядра постоянно "
"находится в физической памяти, не позволяя использовать эту память "
"приложениям. По этой причине собственное ядро полезно на системах с "
"небольшим объёмом оперативной памяти."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:92
msgid ""
"Additional hardware support. A custom kernel can add support for devices "
"which are not present in the [.filename]#GENERIC# kernel."
msgstr ""
"Дополнительная поддержка оборудования. Собственное ядро может добавить "
"поддержку устройств, которые отсутствуют в ядре [.filename]#GENERIC#."

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:98
msgid ""
"When building a custom kernel, it is important to note that non-default "
"configurations are less thoroughly tested than the GENERIC configuration.  "
"While customizing the kernel can provide specific benefits it also increases "
"the risk of encountering build or runtime issues.  Custom kernel "
"configurations are recommended only for advanced users who have a specific "
"reason for making changes and are willing to engage in the debugging process "
"if necessary."
msgstr ""
"При сборке собственного ядра важно учитывать, что нестандартные конфигурации "
"тестируются менее тщательно, чем конфигурация GENERIC. Хотя настройка ядра "
"может дать определённые преимущества, она также увеличивает риск "
"возникновения проблем при сборке или во время работы. Пользовательские "
"конфигурации ядра рекомендуются только опытным пользователям, у которых есть "
"веская причина для внесения изменений и которые готовы при необходимости "
"участвовать в процессе отладки."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:102
msgid ""
"Before building a custom kernel, consider the reason for doing so.  If there "
"is a need for specific hardware support, it may already exist as a module."
msgstr ""
"Прежде чем собирать собственное ядро, стоит подумать о причине этого. Если "
"требуется поддержка определённого оборудования, она может уже существовать в "
"виде модуля."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:106
msgid ""
"Kernel modules exist in [.filename]#/boot/kernel# and may be dynamically "
"loaded into the running kernel using man:kldload[8].  Most kernel drivers "
"have a loadable module and manual page.  For example, the man:ath[4] "
"wireless network driver has the following information in its manual page:"
msgstr ""
"Модули ядра находятся в [.filename]#/boot/kernel# и могут быть динамически "
"загружены в работающее ядро с помощью man:kldload[8]. Большинство драйверов "
"ядра имеют загружаемый модуль и страницу руководства. Например, драйвер "
"беспроводной сети man:ath[4] содержит следующую информацию на своей странице "
"руководства:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:111
#, no-wrap
msgid ""
"Alternatively, to load the driver as a module at boot time, place the\n"
"following line in man:loader.conf[5]:\n"
msgstr ""
"В качестве альтернативы, для загрузки драйвера в виде модуля при старте системы,\n"
"поместите следующую строку в man:loader.conf[5]:\n"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:113
#, no-wrap
msgid "    if_ath_load=\"YES\"\n"
msgstr "    if_ath_load=\"YES\"\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:116
msgid ""
"Adding `if_ath_load=\"YES\"` to [.filename]#/boot/loader.conf# will load "
"this module dynamically at boot time."
msgstr ""
"Добавление `if_ath_load=\"YES\"` в [.filename]#/boot/loader.conf# позволит "
"динамически загрузить этот модуль во время загрузки системы."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:119
msgid ""
"In some cases, there is no associated module in [.filename]#/boot/kernel#.  "
"This is mostly true for certain subsystems."
msgstr ""
"В некоторых случаях связанный модуль отсутствует в [.filename]#/boot/"
"kernel#. Это в основном относится к определённым подсистемам."

#. type: Title ==
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:121
#, no-wrap
msgid "Finding the System Hardware"
msgstr "Поиск информации об оборудовании системы"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:126
msgid ""
"Before editing the kernel configuration file, it is recommended to perform "
"an inventory of the machine's hardware.  On a dual-boot system, the "
"inventory can be created from the other operating system.  For example, "
"Microsoft(R)'s Device Manager contains information about installed devices."
msgstr ""
"Прежде чем редактировать файл конфигурации ядра, рекомендуется составить "
"перечень оборудования компьютера. На системе с двойной загрузкой этот "
"перечень можно создать из другой операционной системы. Например, Диспетчер "
"устройств Microsoft(R) содержит информацию об установленных устройствах."

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:130
msgid ""
"Some versions of Microsoft(R) Windows(R) have a System icon which can be "
"used to access Device Manager."
msgstr ""
"Некоторые версии Microsoft(R) Windows(R) имеют значок \"Система\", который "
"можно использовать для доступа к диспетчеру устройств."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:135
msgid ""
"If FreeBSD is the only installed operating system, use man:dmesg[8] to "
"determine the hardware that was found and listed during the boot probe.  "
"Most device drivers on FreeBSD have a manual page which lists the hardware "
"supported by that driver.  For example, the following lines indicate that "
"the man:psm[4] driver found a mouse:"
msgstr ""
"Если FreeBSD — единственная установленная операционная система, используйте "
"man:dmesg[8] для определения оборудования, обнаруженного и перечисленного во "
"время загрузки. Большинство драйверов устройств в FreeBSD имеют справочную "
"страницу, в которой перечислено поддерживаемое оборудование. Например, "
"следующие строки указывают, что драйвер man:psm[4] обнаружил мышь:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:142
#, no-wrap
msgid ""
"psm0: <PS/2 Mouse> irq 12 on atkbdc0\n"
"psm0: [GIANT-LOCKED]\n"
"psm0: [ITHREAD]\n"
"psm0: model Generic PS/2 mouse, device ID 0\n"
msgstr ""
"psm0: <PS/2 Mouse> irq 12 on atkbdc0\n"
"psm0: [GIANT-LOCKED]\n"
"psm0: [ITHREAD]\n"
"psm0: model Generic PS/2 mouse, device ID 0\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:145
msgid ""
"Since this hardware exists, this driver should not be removed from a custom "
"kernel configuration file."
msgstr ""
"Поскольку данное оборудование существует, этот драйвер не следует удалять из "
"файла конфигурации собственного ядра."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:147
msgid ""
"If the output of `dmesg` does not display the results of the boot probe "
"output, instead read the contents of [.filename]#/var/run/dmesg.boot#."
msgstr ""
"Если вывод команды `dmesg` не отображает результаты загрузочного probing, "
"вместо этого прочитайте содержимое файла [.filename]#/var/run/dmesg.boot#."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:150
msgid ""
"Another tool for finding hardware is man:pciconf[8], which provides more "
"verbose output.  For example:"
msgstr ""
"Еще один инструмент для поиска оборудования — это man:pciconf[8], который "
"предоставляет более подробный вывод. Например:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:159
#, no-wrap
msgid ""
"% pciconf -lv\n"
"ath0@pci0:3:0:0:        class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00\n"
"    vendor     = 'Atheros Communications Inc.'\n"
"    device     = 'AR5212 Atheros AR5212 802.11abg wireless'\n"
"    class      = network\n"
"    subclass   = ethernet\n"
msgstr ""
"% pciconf -lv\n"
"ath0@pci0:3:0:0:        class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00\n"
"    vendor     = 'Atheros Communications Inc.'\n"
"    device     = 'AR5212 Atheros AR5212 802.11abg wireless'\n"
"    class      = network\n"
"    subclass   = ethernet\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:162
msgid ""
"This output shows that the [.filename]#ath# driver located a wireless "
"Ethernet device."
msgstr ""
"Этот вывод показывает, что драйвер [.filename]#ath# обнаружил беспроводное "
"Ethernet-устройство."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:165
msgid ""
"The `-k` flag of man:man[1] can be used to provide useful information.  For "
"example, it can be used to display a list of manual pages which contain a "
"particular device brand or name:"
msgstr ""
"Флаг `-k` утилиты man:man[1] может быть полезен для получения информации. "
"Например, с его помощью можно вывести список страниц руководства, содержащих "
"определённое название или марку устройства:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:171
#, no-wrap
msgid ""
"# man -k Atheros\n"
"ath(4)                   - Atheros IEEE 802.11 wireless network driver\n"
"ath_hal(4)               - Atheros Hardware Access Layer (HAL)\n"
msgstr ""
"# man -k Atheros\n"
"ath(4)                   - Atheros IEEE 802.11 wireless network driver\n"
"ath_hal(4)               - Atheros Hardware Access Layer (HAL)\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:174
msgid ""
"Once the hardware inventory list is created, refer to it to ensure that "
"drivers for installed hardware are not removed as the custom kernel "
"configuration is edited."
msgstr ""
"После составления списка оборудования обратитесь к нему, чтобы убедиться, "
"что драйверы установленного оборудования не будут удалены при редактировании "
"конфигурации собственного ядра."

#. type: Title ==
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:176
#, no-wrap
msgid "The Configuration File"
msgstr "Файл конфигурации"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:179
msgid ""
"In order to create a custom kernel configuration file and build a custom "
"kernel, the full FreeBSD source tree must first be installed."
msgstr ""
"Для создания файла конфигурации собственного ядра и сборки кастомного ядра "
"необходимо сначала установить полное дерево исходных кодов FreeBSD."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:182
msgid ""
"If [.filename]#/usr/src/# does not exist or it is empty, source has not been "
"installed.  Source can be installed with Git using the instructions in "
"crossref:mirrors[git,“Using Git”]."
msgstr ""
"Если [.filename]#/usr/src/# не существует или пуст, исходный код не "
"установлен. Исходный код можно установить с помощью Git, следуя инструкциям "
"в crossref:mirrors[git,“Использование Git”]."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:187
msgid ""
"Once source is installed, review the contents of [.filename]#/usr/src/sys#.  "
"This directory contains a number of subdirectories, including those which "
"represent the following supported architectures: [.filename]#amd64#, [."
"filename]#i386#, [.filename]#powerpc#, and [.filename]#sparc64#.  Everything "
"inside a particular architecture's directory deals with that architecture "
"only and the rest of the code is machine independent code common to all "
"platforms.  Each supported architecture has a [.filename]#conf# subdirectory "
"which contains the [.filename]#GENERIC# kernel configuration file for that "
"architecture."
msgstr ""
"После установки исходного кода ознакомьтесь с содержимым каталога [."
"filename]#/usr/src/sys#. Этот каталог содержит несколько подкаталогов, "
"включая те, которые соответствуют следующим поддерживаемым архитектурам: [."
"filename]#amd64#, [.filename]#i386#, [.filename]#powerpc# и [."
"filename]#sparc64#. Всё содержимое каталога конкретной архитектуры относится "
"только к этой архитектуре, а остальной код является машинонезависимым и "
"общим для всех платформ. Каждая поддерживаемая архитектура имеет подкаталог "
"[.filename]#conf#, который содержит файл конфигурации ядра [."
"filename]#GENERIC# для данной архитектуры."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:193
msgid ""
"Do not make edits to [.filename]#GENERIC#.  Instead, copy the file to a "
"different name and make edits to the copy.  The convention is to use a name "
"with all capital letters.  When maintaining multiple FreeBSD machines with "
"different hardware, it is a good idea to name it after the machine's "
"hostname.  This example creates a copy, named [.filename]#MYKERNEL#, of the "
"[.filename]#GENERIC# configuration file for the `amd64` architecture:"
msgstr ""
"Не вносите изменения в файл [.filename]#GENERIC#. Вместо этого скопируйте "
"его под другим именем и редактируйте копию. По сложившейся практике имя "
"файла должно состоять из заглавных букв. Если вы обслуживаете несколько "
"машин FreeBSD с разным оборудованием, разумно назвать файл по имени хоста "
"соответствующей машины. В следующем примере создаётся копия файла "
"конфигурации [.filename]#GENERIC# для архитектуры `amd64` с именем [."
"filename]#MYKERNEL#:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:198
#, no-wrap
msgid ""
"# cd /usr/src/sys/amd64/conf\n"
"# cp GENERIC MYKERNEL\n"
msgstr ""
"# cd /usr/src/sys/amd64/conf\n"
"# cp GENERIC MYKERNEL\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:202
msgid ""
"[.filename]#MYKERNEL# can now be customized with any `ASCII` text editor.  "
"The default editor is vi, though an easier editor for beginners, called ee, "
"is also installed with FreeBSD."
msgstr ""
"[.filename]#MYKERNEL# теперь можно настроить с помощью любого текстового "
"редактора, поддерживающего `ASCII`. Редактор по умолчанию — vi, но для "
"новичков также установлен более простой редактор под названием ee."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:208
msgid ""
"The format of the kernel configuration file is simple.  Each line contains a "
"keyword that represents a device or subsystem, an argument, and a brief "
"description.  Any text after a `+#+` is considered a comment and ignored.  "
"To remove kernel support for a device or subsystem, put a `+#+` at the "
"beginning of the line representing that device or subsystem.  Refrain from "
"adding or removing a `+#+` for any line you do not fully understand."
msgstr ""
"Формат файла конфигурации ядра прост. Каждая строка содержит ключевое слово, "
"представляющее устройство или подсистему, аргумент и краткое описание. Любой "
"текст после `+#+` считается комментарием и игнорируется. Чтобы удалить "
"поддержку устройства или подсистемы в ядре, поставьте `+#+` в начале строки, "
"соответствующей этому устройству или подсистеме. Воздерживайтесь от "
"добавления или удаления +#+ для любой строки, которую вы не до конца "
"понимаете."

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:214
msgid ""
"It is easy to remove support for a device or option and end up with a broken "
"kernel.  For example, if the man:ata[4] driver is removed from the kernel "
"configuration file, a system using `ATA` disk drivers may not boot.  When in "
"doubt, just leave support in the kernel."
msgstr ""
"Легко удалить поддержку устройства или опции и получить нерабочее ядро. "
"Например, если драйвер man:ata[4] удалён из конфигурационного файла ядра, "
"система, использующая драйверы дисков `ATA`, может не загрузиться. Если "
"сомневаетесь — оставьте поддержку в ядре."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:218
msgid ""
"In addition to the brief descriptions provided in this file, additional "
"descriptions are contained in [.filename]#NOTES#, which can be found in the "
"same directory as [.filename]#GENERIC# for that architecture.  For "
"architecture independent options, refer to [.filename]#/usr/src/sys/conf/"
"NOTES#."
msgstr ""
"В дополнение к кратким описаниям, приведённым в этом файле, дополнительные "
"описания содержатся в [.filename]#NOTES#, которые можно найти в том же "
"каталоге, что и [.filename]#GENERIC# для данной архитектуры. Для "
"архитектурно-независимых параметров обратитесь к [.filename]#/usr/src/sys/"
"conf/NOTES#."

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:222
msgid ""
"When finished customizing the kernel configuration file, save a backup copy "
"to a location outside of [.filename]#/usr/src#."
msgstr ""
"После завершения настройки конфигурационного файла ядра сохраните резервную "
"копию в расположении за пределами [.filename]#/usr/src#."

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:224
msgid ""
"Alternately, keep the kernel configuration file elsewhere and create a "
"symbolic link to the file:"
msgstr ""
"Или можно сохранить файл конфигурации ядра в другом месте и создать "
"символическую ссылку на него:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:231
#, no-wrap
msgid ""
"# cd /usr/src/sys/amd64/conf\n"
"# mkdir /root/kernels\n"
"# cp GENERIC /root/kernels/MYKERNEL\n"
"# ln -s /root/kernels/MYKERNEL\n"
msgstr ""
"# cd /usr/src/sys/amd64/conf\n"
"# mkdir /root/kernels\n"
"# cp GENERIC /root/kernels/MYKERNEL\n"
"# ln -s /root/kernels/MYKERNEL\n"

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:238
msgid ""
"An `include` directive is available for use in configuration files.  This "
"allows another configuration file to be included in the current one, making "
"it easy to maintain small changes relative to an existing file.  If only a "
"small number of additional options or drivers are required, this allows a "
"delta to be maintained with respect to [.filename]#GENERIC#, as seen in this "
"example:"
msgstr ""
"В конфигурационных файлах доступна директива `include`, которая позволяет "
"включать содержимое другого конфигурационного файла в текущий. Это упрощает "
"поддержку небольших изменений относительно существующего файла. Если "
"требуется лишь несколько дополнительных параметров или драйверов, можно "
"сохранять разницу относительно [.filename]#GENERIC#, как показано в примере:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:243
#, no-wrap
msgid ""
"include GENERIC\n"
"ident MYKERNEL\n"
msgstr ""
"include GENERIC\n"
"ident MYKERNEL\n"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:248
#, no-wrap
msgid ""
"options         IPFIREWALL\n"
"options         DUMMYNET\n"
"options         IPFIREWALL_DEFAULT_TO_ACCEPT\n"
"options         IPDIVERT\n"
msgstr ""
"options         IPFIREWALL\n"
"options         DUMMYNET\n"
"options         IPFIREWALL_DEFAULT_TO_ACCEPT\n"
"options         IPDIVERT\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:253
msgid ""
"Using this method, the local configuration file expresses local differences "
"from a [.filename]#GENERIC# kernel.  As upgrades are performed, new features "
"added to [.filename]#GENERIC# will also be added to the local kernel unless "
"they are specifically prevented using `nooptions` or `nodevice`.  A "
"comprehensive list of configuration directives and their descriptions may be "
"found in man:config[5]."
msgstr ""
"При использовании этого метода локальный конфигурационный файл отражает "
"локальные отличия от ядра [.filename]#GENERIC#. При выполнении обновлений "
"новые функции, добавленные в [.filename]#GENERIC#, также будут добавлены в "
"локальное ядро, если они не запрещены явно с помощью `nooptions` или "
"`nodevice`. Полный список директив конфигурации и их описания можно найти в "
"man:config[5]."

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:257
msgid ""
"To build a file which contains all available options, run the following "
"command as `root`:"
msgstr ""
"Чтобы создать файл, содержащий все доступные параметры, выполните следующую "
"команду от имени `root`:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:261
#, no-wrap
msgid "# cd /usr/src/sys/arch/conf && make LINT\n"
msgstr "# cd /usr/src/sys/arch/conf && make LINT\n"

#. type: Title ==
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:266
#, no-wrap
msgid "Building and Installing a Custom Kernel"
msgstr "Сборка и установка собственного ядра"

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:269
msgid ""
"Once the edits to the custom configuration file have been saved, the source "
"code for the kernel can be compiled using the following steps:"
msgstr ""
"После сохранения изменений в пользовательском конфигурационном файле "
"исходный код ядра можно скомпилировать, выполнив следующие шаги:"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:273
#, no-wrap
msgid "*Procedure: Building a Kernel*\n"
msgstr "*Процедура: Сборка ядра*\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:275
msgid "Change to this directory:"
msgstr "Перейдите в этот каталог:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:279
#, no-wrap
msgid "# cd /usr/src\n"
msgstr "# cd /usr/src\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:282
msgid ""
"Compile the new kernel by specifying the name of the custom kernel "
"configuration file:"
msgstr "Соберите новое ядро, указав имя файла конфигурации собственного ядра:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:286
#, no-wrap
msgid "# make buildkernel KERNCONF=MYKERNEL\n"
msgstr "# make buildkernel KERNCONF=MYKERNEL\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:289
msgid ""
"Install the new kernel associated with the specified kernel configuration "
"file. This command will copy the new kernel to [.filename]#/boot/kernel/"
"kernel# and save the old kernel to [.filename]#/boot/kernel.old/kernel#:"
msgstr ""
"Установите новое ядро, связанное с указанным файлом конфигурации ядра. Эта "
"команда скопирует новое ядро в [.filename]#/boot/kernel/kernel#, а старое "
"ядро сохранит в [.filename]#/boot/kernel.old/kernel#:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:293
#, no-wrap
msgid "# make installkernel KERNCONF=MYKERNEL\n"
msgstr "# make installkernel KERNCONF=MYKERNEL\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:296
msgid ""
"Shutdown the system and reboot into the new kernel. If something goes wrong, "
"refer to crossref:kernelconfig[kernelconfig-noboot, The kernel does not "
"boot]."
msgstr ""
"Выключите систему и перезагрузитесь с новым ядром. Если возникнут проблемы, "
"обратитесь к разделу crossref:kernelconfig[kernelconfig-noboot, Ядро не "
"загружается]."

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:300
msgid ""
"By default, when a custom kernel is compiled, all kernel modules are "
"rebuilt.  To update a kernel faster or to build only custom modules, edit [."
"filename]#/etc/make.conf# before starting to build the kernel."
msgstr ""
"По умолчанию при компиляции собственного ядра все модули ядра "
"пересобираются. Чтобы ускорить обновление ядра или собрать только "
"необходимые модули, отредактируйте [.filename]#/etc/make.conf# перед началом "
"сборки ядра."

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:302
msgid ""
"For example, this variable specifies the list of modules to build instead of "
"using the default of building all modules:"
msgstr ""
"Например, эта переменная задаёт список модулей для сборки вместо "
"использования значения по умолчанию (сборка всех модулей):"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:306
#, no-wrap
msgid "MODULES_OVERRIDE = linux acpi\n"
msgstr "MODULES_OVERRIDE = linux acpi\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:309
msgid ""
"Alternately, this variable lists which modules to exclude from the build "
"process:"
msgstr ""
"Или эта переменная указывает, какие модули исключить из процесса сборки:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:313
#, no-wrap
msgid "WITHOUT_MODULES = linux acpi sound\n"
msgstr "WITHOUT_MODULES = linux acpi sound\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:316
msgid ""
"This variable instructs the build to skip kernel modules and compile only "
"the kernel itself:"
msgstr ""
"Эта переменная указывает сборке пропустить модули ядра и компилировать "
"только само ядро:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:320
#, no-wrap
msgid "NO_MODULES = yes\n"
msgstr "NO_MODULES = yes\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:327
msgid ""
"The Ports Framework includes drivers and other modules that depend on kernel "
"interfaces, such as package:graphics/drm-kmod[] or package:emulators/"
"virtualbox-ose-kmod[].  With the `PORTS_MODULES` variable, every time the "
"kernel is built, the ports containing kernel modules are re‑built against "
"the updated sources.  This ensures the kernel module stays in‑sync with the "
"kernel itself.  The kernel and ports trees should be updated together for "
"maximum compatibility.  `PORTS_MODULES` can be added to [.filename]#/etc/"
"make.conf# to ensure all kernels you build also rebuild these modules."
msgstr ""
"Фреймворк портов включает драйверы и другие модули, которые зависят от "
"интерфейсов ядра, например package:graphics/drm-kmod[] или package:emulators/"
"virtualbox-ose-kmod[]. С помощью переменной `PORTS_MODULES` при каждой "
"сборке ядра порты, содержащие модули ядра, пересобираются с учётом "
"обновлённых исходников. Это гарантирует, что модуль ядра остаётся "
"согласованным с самим ядром. Для максимальной совместимости дерево "
"исходников ядра и дерево портов следует обновлять одновременно. Переменную "
"`PORTS_MODULES` можно добавить в [.filename]#/etc/make.conf#, чтобы все "
"собираемые вами ядра также пересобирали эти модули."

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:331
#, no-wrap
msgid "PORTS_MODULES = drm-kmod virtualbox-ose-kmod\n"
msgstr "PORTS_MODULES = drm-kmod virtualbox-ose-kmod\n"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:335
msgid ""
"Additional variables are available.  Refer to man:make.conf[5] for details."
msgstr ""
"Доступны дополнительные переменные. Подробности смотрите в man:make.conf[5]."

#. type: Title ==
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:337
#, no-wrap
msgid "If Something Goes Wrong"
msgstr "Если что-то пойдет не так"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:340
msgid ""
"There are four categories of trouble that can occur when building a custom "
"kernel:"
msgstr ""
"Существует четыре типа проблем, которые могут возникнуть при сборке "
"собственного ядра:"

#. type: Labeled list
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:341
#, no-wrap
msgid "`config` fails"
msgstr "`config` завершается с ошибкой"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:344
msgid ""
"If `config` fails, it will print the line number that is incorrect.  As an "
"example, for the following message, make sure that line 17 is typed "
"correctly by comparing it to [.filename]#GENERIC# or [.filename]#NOTES#:"
msgstr ""
"Если `config` завершается с ошибкой, он выводит номер строки, содержащей "
"ошибку. Например, при получении следующего сообщения убедитесь, что строка "
"17 введена правильно, сравнив её с [.filename]#GENERIC# или [."
"filename]#NOTES#:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:348
#, no-wrap
msgid "config: line 17: syntax error\n"
msgstr "config: line 17: syntax error\n"

#. type: Labeled list
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:350
#, no-wrap
msgid "`make` fails"
msgstr "`make` завершается с ошибкой"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:353
msgid ""
"If `make` fails, it is usually due to an error in the kernel configuration "
"file which is not severe enough for `config` to catch.  Review the "
"configuration, and if the problem is not apparent, send an email to the "
"{freebsd-questions} which contains the kernel configuration file."
msgstr ""
"Если `make` завершается с ошибкой, обычно это связано с ошибкой в файле "
"конфигурации ядра, которую `config` не смог обнаружить. Проверьте "
"конфигурацию, и если проблема не очевидна, отправьте письмо в список "
"рассылки {freebsd-questions}, приложив файл конфигурации ядра."

#. type: Labeled list
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:355
#, no-wrap
msgid "The kernel does not boot"
msgstr "Ядро не загружается"

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:360
msgid ""
"If the new kernel does not boot or fails to recognize devices, do not panic! "
"Fortunately, FreeBSD has an excellent mechanism for recovering from "
"incompatible kernels.  Simply choose the kernel to boot from at the FreeBSD "
"boot loader.  This can be accessed when the system boot menu appears by "
"selecting the \"Escape to a loader prompt\" option.  At the prompt, type "
"`boot _kernel.old_`, or the name of any other kernel that is known to boot "
"properly."
msgstr ""
"Если новый ядро не загружается или не распознаёт устройства, не паникуйте! К "
"счастью, в FreeBSD есть отличный механизм восстановления после проблем с "
"несовместимыми ядрами. Просто выберите ядро для загрузки в загрузчике "
"FreeBSD. Это можно сделать при появлении меню загрузки системы, выбрав опцию "
"«Escape to a loader prompt». В командной строке введите `boot _kernel.old_` "
"или имя любого другого ядра, которое заведомо загружается правильно."

#. type: Plain text
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:364
msgid ""
"After booting with a good kernel, check over the configuration file and try "
"to build it again.  One helpful resource is [.filename]#/var/log/messages# "
"which records the kernel messages from every successful boot.  Also, man:"
"dmesg[8] will print the kernel messages from the current boot."
msgstr ""
"После загрузки с исправным ядром проверьте конфигурационный файл и "
"попробуйте собрать его снова. Полезным ресурсом может быть [.filename]#/var/"
"log/messages#, где записываются сообщения ядра при каждой успешной загрузке. "
"Также man:dmesg[8] выведет сообщения ядра текущей загрузки."

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:370
msgid ""
"When troubleshooting a kernel make sure to keep a copy of a kernel that is "
"known to work, such as [.filename]#GENERIC#.  This is important because "
"every time a new kernel is installed, [.filename]#kernel.old# is overwritten "
"with the last installed kernel, which may or may not be bootable.  As soon "
"as possible, move the working kernel by renaming the directory containing "
"the good kernel:"
msgstr ""
"При устранении неполадок ядра обязательно сохраняйте копию работоспособного "
"ядра, например, [.filename]#GENERIC#. Это важно, потому что при каждой "
"установке нового ядра файл [.filename]#kernel.old# перезаписывается "
"последним установленным ядром, которое может быть или не быть загружаемым. "
"Как можно скорее переместите рабочее ядро, переименовав каталог, содержащий "
"исправное ядро:"

#. type: delimited block . 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:375
#, no-wrap
msgid ""
"# mv /boot/kernel /boot/kernel.bad\n"
"# mv /boot/kernel.good /boot/kernel\n"
msgstr ""
"# mv /boot/kernel /boot/kernel.bad\n"
"# mv /boot/kernel.good /boot/kernel\n"

#. type: Labeled list
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:379
#, no-wrap
msgid "The kernel works, but man:ps[1] does not"
msgstr "Ядро работает, но man:ps[1] — нет"

#. type: delimited block = 4
#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:382
msgid ""
"If the kernel version differs from the one that the system utilities have "
"been built with, for example, a kernel built from -CURRENT sources is "
"installed on a -RELEASE system, many system status commands like man:ps[1] "
"and man:vmstat[8] will not work.  To fix this, crossref:cutting-"
"edge[makeworld,recompile and install a world] built with the same version of "
"the source tree as the kernel.  It is never a good idea to use a different "
"version of the kernel than the rest of the operating system."
msgstr ""
"Если версия ядра отличается от той, с которой собраны системные утилиты, "
"например, при установке ядра, собранного из исходников -CURRENT, на систему -"
"RELEASE, многие команды для просмотра состояния системы, такие как man:ps[1] "
"и man:vmstat[8], не будут работать. Чтобы исправить это, crossref:cutting-"
"edge[makeworld,пересоберите и установите world], собранный из той же версии "
"исходного дерева, что и ядро. Никогда не рекомендуется использовать версию "
"ядра, отличную от остальной операционной системы."