diff options
Diffstat (limited to 'documentation/content/en/books/handbook/kernelconfig/_index.po')
-rw-r--r-- | documentation/content/en/books/handbook/kernelconfig/_index.po | 705 |
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 "" |