aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/en/books/handbook/kernelconfig/_index.po
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/en/books/handbook/kernelconfig/_index.po')
-rw-r--r--documentation/content/en/books/handbook/kernelconfig/_index.po705
1 files changed, 705 insertions, 0 deletions
diff --git a/documentation/content/en/books/handbook/kernelconfig/_index.po b/documentation/content/en/books/handbook/kernelconfig/_index.po
new file mode 100644
index 0000000000..2274d28ba3
--- /dev/null
+++ b/documentation/content/en/books/handbook/kernelconfig/_index.po
@@ -0,0 +1,705 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR The FreeBSD Project
+# This file is distributed under the same license as the FreeBSD Documentation package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: FreeBSD Documentation VERSION\n"
+"POT-Creation-Date: 2023-07-15 16:41-0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\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 ""
+
+#. type: YAML Front Matter: part
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:1
+#, no-wrap
+msgid "Part II. Common Tasks"
+msgstr ""
+
+#. type: YAML Front Matter: title
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:1
+#, no-wrap
+msgid "Chapter 10. Configuring the FreeBSD Kernel"
+msgstr ""
+
+#. type: Title =
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:14
+#, no-wrap
+msgid "Configuring the FreeBSD Kernel"
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:52
+#, no-wrap
+msgid "Synopsis"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:57
+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, it is "
+"still occasionally necessary to configure and compile a custom kernel."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:59
+msgid "After reading this chapter, you will know:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:61
+msgid "When to build a custom kernel."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:62
+msgid "How to take a hardware inventory."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:63
+msgid "How to customize a kernel configuration file."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:64
+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:65
+msgid "How to install the new kernel."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:66
+msgid "How to troubleshoot if things go wrong."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:68
+msgid ""
+"All of the commands listed in the examples in this chapter should be "
+"executed as `root`."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:70
+#, no-wrap
+msgid "Why Build a Custom Kernel?"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:74
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:78
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:82
+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:87
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:89
+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:90
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:91
+msgid ""
+"Additional hardware support. A custom kernel can add support for devices "
+"which are not present in the [.filename]#GENERIC# kernel."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:94
+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:98
+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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:103
+#, 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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:105
+#, no-wrap
+msgid " if_ath_load=\"YES\"\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:108
+msgid ""
+"Adding `if_ath_load=\"YES\"` to [.filename]#/boot/loader.conf# will load "
+"this module dynamically at boot time."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:111
+msgid ""
+"In some cases, there is no associated module in [.filename]#/boot/kernel#. "
+"This is mostly true for certain subsystems."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:113
+#, no-wrap
+msgid "Finding the System Hardware"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:118
+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 ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:122
+msgid ""
+"Some versions of Microsoft(R) Windows(R) have a System icon which can be "
+"used to access Device Manager."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:127
+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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:134
+#, 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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:137
+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:139
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:142
+msgid ""
+"Another tool for finding hardware is man:pciconf[8], which provides more "
+"verbose output. For example:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:151
+#, 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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:154
+msgid ""
+"This output shows that the [.filename]#ath# driver located a wireless "
+"Ethernet device."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:157
+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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:163
+#, 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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:166
+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:168
+#, no-wrap
+msgid "The Configuration File"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:171
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:174
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:179
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:185
+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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:190
+#, no-wrap
+msgid ""
+"# cd /usr/src/sys/amd64/conf\n"
+"# cp GENERIC MYKERNEL\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:194
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:200
+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. Do not add or "
+"remove a `+#+` for any line that you do not understand."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:206
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:210
+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 ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:214
+msgid ""
+"When finished customizing the kernel configuration file, save a backup copy "
+"to a location outside of [.filename]#/usr/src#."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:216
+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:223
+#, 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 ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:230
+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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:235
+#, no-wrap
+msgid ""
+"include GENERIC\n"
+"ident MYKERNEL\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:240
+#, no-wrap
+msgid ""
+"options IPFIREWALL\n"
+"options DUMMYNET\n"
+"options IPFIREWALL_DEFAULT_TO_ACCEPT\n"
+"options IPDIVERT\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:245
+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 ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:249
+msgid ""
+"To build a file which contains all available options, run the following "
+"command as `root`:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:253
+#, no-wrap
+msgid "# cd /usr/src/sys/arch/conf && make LINT\n"
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:258
+#, no-wrap
+msgid "Building and Installing a Custom Kernel"
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:261
+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:265
+#, no-wrap
+msgid "*Procedure: Building a Kernel*\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:267
+msgid "Change to this directory:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:271
+#, no-wrap
+msgid "# cd /usr/src\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:274
+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:278
+#, no-wrap
+msgid "# make buildkernel KERNCONF=MYKERNEL\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:281
+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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:285
+#, no-wrap
+msgid "# make installkernel KERNCONF=MYKERNEL\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:288
+msgid ""
+"Shutdown the system and reboot into the new kernel. If something goes wrong, "
+"refer to <<kernelconfig-noboot, The kernel does not boot>>."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:292
+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 ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:294
+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:298
+#, no-wrap
+msgid "MODULES_OVERRIDE = linux acpi\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:301
+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:305
+#, no-wrap
+msgid "WITHOUT_MODULES = linux acpi sound\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:309
+msgid ""
+"Additional variables are available. Refer to man:make.conf[5] for details."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:311
+#, no-wrap
+msgid "If Something Goes Wrong"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:314
+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:315
+#, no-wrap
+msgid "`config` fails"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:318
+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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:322
+#, no-wrap
+msgid "config: line 17: syntax error\n"
+msgstr ""
+
+#. type: Labeled list
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:324
+#, no-wrap
+msgid "`make` fails"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:327
+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 ""
+
+#. type: Labeled list
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:329
+#, no-wrap
+msgid "The kernel does not boot"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:334
+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 ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:338
+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 ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:344
+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 ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:349
+#, no-wrap
+msgid ""
+"# mv /boot/kernel /boot/kernel.bad\n"
+"# mv /boot/kernel.good /boot/kernel\n"
+msgstr ""
+
+#. type: Labeled list
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:353
+#, no-wrap
+msgid "The kernel works, but man:ps[1] does not"
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/kernelconfig/_index.adoc:356
+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 ""