# AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: Fedora Deployment Guide\n" "POT-Creation-Date: 2011-02-22T00:51:28\n" "PO-Revision-Date: 2011-08-21 10:46+0000\n" "Last-Translator: Automatically generated\n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" #. Tag: title #, no-c-format msgid "Working with Kernel Modules" msgstr "" #. Tag: indexterm #, no-c-format msgid "kernel module definition" msgstr "" #. Tag: indexterm #, no-c-format msgid "module kernel module" msgstr "" #. Tag: indexterm #, no-c-format msgid "drivers kernel module" msgstr "" #. Tag: para #, no-c-format msgid "" "The Linux kernel is modular, which means it can extend its capabilities " "through the use of dynamically-loaded kernel modules." " A Kernel module can provide:" msgstr "" #. Tag: para #, no-c-format msgid "a device driver which adds support for new hardware; or," msgstr "" #. Tag: para #, no-c-format msgid "" "support for a file system such as btrfs orNFS." msgstr "" #. Tag: para #, no-c-format msgid "" "Like the kernel itself, modules can take parameters that customize their " "behavior, though the default parameters work well in most cases. User-space " "tools can list the modules currently loaded into a running kernel; query all" " available modules for available parameters and module-specific information;" " and load or unload (remove) modules dynamically into or from a running " "kernel. Many of these utilities, which are provided by the module-" "init-tools package, take module dependencies into account when " "performing operations so that manual dependency-tracking is rarely " "necessary." msgstr "" #. Tag: para #, no-c-format msgid "" "On modern systems, kernel modules are automatically loaded by various " "mechanisms when the conditions call for it. However, there are occasions " "when it is necessary to load and/or unload modules manually, such as when a " "module provides optional functionality, one module should be preferred over " "another although either could provide basic functionality, or when a module " "is misbehaving, among other situations." msgstr "" #. Tag: para #, no-c-format msgid "This chapter explains how to:" msgstr "" #. Tag: para #, no-c-format msgid "" "use the user-space module-init-tools package to display, " "query, load and unload kernel modules and their dependencies;" msgstr "" #. Tag: para #, no-c-format msgid "" "set module parameters both dynamically on the command line and permanently " "so that you can customize the behavior of your kernel modules; and," msgstr "" #. Tag: para #, no-c-format msgid "load modules at boot time." msgstr "" #. Tag: title #, no-c-format msgid "Note: Installing the module-init-tools package" msgstr "" #. Tag: para #, no-c-format msgid "" "In order to use the kernel module utilities described in this chapter, first" " ensure the module-init-tools package is installed on your system by " "running, as root:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# yum install module-init-tools\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "For more information on installing packages with Yum, refer to ." msgstr "" #. Tag: title #, no-c-format msgid "Listing Currently-Loaded Modules" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module listing " "currently loaded modules" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module utilities " " lsmod " msgstr "" #. Tag: indexterm #, no-c-format msgid "" " lsmod kernel " "module" msgstr "" #. Tag: para #, no-c-format msgid "" "You can list all kernel modules that are currently loaded into the kernel by" " running the lsmod command:" msgstr "" #. Tag: screen #, no-c-format msgid "" "\n" "~]$ lsmod\n" "Module Size Used by\n" "xfs 803635 1\n" "exportfs 3424 1 xfs\n" "vfat 8216 1\n" "fat 43410 1 vfat\n" "tun 13014 2\n" "fuse 54749 2\n" "ip6table_filter 2743 0\n" "ip6_tables 16558 1 ip6table_filter\n" "ebtable_nat 1895 0\n" "ebtables 15186 1 ebtable_nat\n" "ipt_MASQUERADE 2208 6\n" "iptable_nat 5420 1\n" "nf_nat 19059 2 ipt_MASQUERADE,iptable_nat\n" "rfcomm 65122 4\n" "ipv6 267017 33\n" "sco 16204 2\n" "bridge 45753 0\n" "stp 1887 1 bridge\n" "llc 4557 2 bridge,stp\n" "bnep 15121 2\n" "l2cap 45185 16 rfcomm,bnep\n" "cpufreq_ondemand 8420 2\n" "acpi_cpufreq 7493 1\n" "freq_table 3851 2 cpufreq_ondemand,acpi_cpufreq\n" "usb_storage 44536 1\n" "sha256_generic 10023 2\n" "aes_x86_64 7654 5\n" "aes_generic 27012 1 aes_x86_64\n" "cbc 2793 1\n" "dm_crypt 10930 1\n" "kvm_intel 40311 0\n" "kvm 253162 1 kvm_intel\n" msgstr "" #. Tag: lineannotation #, no-c-format msgid "[output truncated]" msgstr "" #. Tag: screen #, no-c-format msgid "" "\n" " " msgstr "" #. Tag: para #, no-c-format msgid "Each row of lsmod output specifies:" msgstr "" #. Tag: para #, no-c-format msgid "the name of a kernel module currently loaded in memory;" msgstr "" #. Tag: para #, no-c-format msgid "the amount of memory it uses; and," msgstr "" #. Tag: para #, no-c-format msgid "" "the sum total of processes that are using the module and other modules which" " depend on it, followed by a list of the names of those modules, if there " "are any. Using this list, you can first unload all the modules depending the" " module you want to unload. For more information, refer to ." msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module files " "/proc/modules " msgstr "" #. Tag: para #, no-c-format msgid "" "Finally, note that lsmod output is less verbose and " "considerably easier to read than the content of the " "/proc/modules pseudo-file." msgstr "" #. Tag: title #, no-c-format msgid "Displaying Information About a Module" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module listing " "module information" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module utilities " " modinfo " msgstr "" #. Tag: indexterm #, no-c-format msgid "" " modinfo kernel " "module" msgstr "" #. Tag: para #, no-c-format msgid "" "You can display detailed information about a kernel module by running the " "modinfo <module_name> " "command." msgstr "" #. Tag: title #, no-c-format msgid "Module names do not end in .ko" msgstr "" #. Tag: para #, no-c-format msgid "" "When entering the name of a kernel module as an argument to one of the " "module-init-tools utilities, do not append a " ".ko extension to the end of the name. Kernel module " "names do not have extensions: their corresponding files do." msgstr "" #. Tag: para #, no-c-format msgid "" "For example, to display information about the e1000e module, which is the Intel PRO/1000 " "network driver, run:" msgstr "" #. Tag: title #, no-c-format msgid "Listing information about a kernel module with lsmod" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# modinfo e1000e\n" "filename: /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/net/e1000e/e1000e.ko\n" "version: 1.2.7-k2\n" "license: GPL\n" "description: Intel(R) PRO/1000 Network Driver\n" "author: Intel Corporation, <linux.nics@intel.com>\n" "srcversion: 93CB73D3995B501872B2982\n" "alias: pci:v00008086d00001503sv*sd*bc*sc*i*\n" "alias: pci:v00008086d00001502sv*sd*bc*sc*i*\n" msgstr "" #. Tag: lineannotation #, no-c-format msgid "[some alias lines omitted]" msgstr "" #. Tag: screen #, no-c-format msgid "" "\n" "alias: pci:v00008086d0000105Esv*sd*bc*sc*i*\n" "depends:\n" "vermagic: 2.6.32-71.el6.x86_64 SMP mod_unload modversions\n" "parm: copybreak:Maximum size of packet that is copied to a new buffer on receive (uint)\n" "parm: TxIntDelay:Transmit Interrupt Delay (array of int)\n" "parm: TxAbsIntDelay:Transmit Absolute Interrupt Delay (array of int)\n" "parm: RxIntDelay:Receive Interrupt Delay (array of int)\n" "parm: RxAbsIntDelay:Receive Absolute Interrupt Delay (array of int)\n" "parm: InterruptThrottleRate:Interrupt Throttling Rate (array of int)\n" "parm: IntMode:Interrupt Mode (array of int)\n" "parm: SmartPowerDownEnable:Enable PHY smart power down (array of int)\n" "parm: KumeranLockLoss:Enable Kumeran lock loss workaround (array of int)\n" "parm: WriteProtectNVM:Write-protect NVM [WARNING: disabling this can lead to corrupted NVM] (array of int)\n" "parm: CrcStripping:Enable CRC Stripping, disable if your BMC needs the CRC (array of int)\n" "parm: EEE:Enable/disable on parts that support the feature (array of int)" msgstr "" #. Tag: para #, no-c-format msgid "" "Here are descriptions of a few of the fields in modinfo " "output:" msgstr "" #. Tag: term #, no-c-format msgid "filename" msgstr "" #. Tag: para #, no-c-format msgid "" "The absolute path to the .ko kernel object file. You " "can use modinfo -n as a shorcut command for printing only" " the filename field." msgstr "" #. Tag: term #, no-c-format msgid "description" msgstr "" #. Tag: para #, no-c-format msgid "" "A short description of the module. You can use modinfo -d" " as a shortcut command for printing only the description field." msgstr "" #. Tag: term #, no-c-format msgid "alias" msgstr "" #. Tag: para #, no-c-format msgid "" "The alias field appears as many times as " "there are aliases for a module, or is omitted entirely if there are none." msgstr "" #. Tag: term #, no-c-format msgid "depends" msgstr "" #. Tag: para #, no-c-format msgid "" "This field contains a comma-separated list of all the modules this module " "depends on." msgstr "" #. Tag: title #, no-c-format msgid "Note" msgstr "" #. Tag: para #, no-c-format msgid "" "If a module has no dependencies, the " "depends field may be omitted from the " "output." msgstr "" #. Tag: term #, no-c-format msgid "parm" msgstr "" #. Tag: para #, no-c-format msgid "" "Each parm field presents one module " "parameter in the form " "parameter_name:description," " where:" msgstr "" #. Tag: para #, no-c-format msgid "" "parameter_name is the exact syntax you should use" " when using it as a module parameter on the command line, or in an option " "line in a .conf file in the " "/etc/modprobe.d/ directory; and," msgstr "" #. Tag: para #, no-c-format msgid "" "description is a brief explanation of what the " "parameter does, along with an expectation for the type of value the " "parameter accepts (such as int, unit or " "array of int) in parentheses." msgstr "" #. Tag: para #, no-c-format msgid "" "You can list all parameters that the module supports by using the " " option. However, because useful value type information " "is omitted from modinfo -p output, it is more useful to " "run:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# modinfo e1000e |grep \"^parm\" |sort\n" "parm: copybreak:Maximum size of packet that is copied to a new buffer on receive (uint)\n" "parm: CrcStripping:Enable CRC Stripping, disable if your BMC needs the CRC (array of int)\n" "parm: EEE:Enable/disable on parts that support the feature (array of int)\n" "parm: InterruptThrottleRate:Interrupt Throttling Rate (array of int)\n" "parm: IntMode:Interrupt Mode (array of int)\n" "parm: KumeranLockLoss:Enable Kumeran lock loss workaround (array of int)\n" "parm: RxAbsIntDelay:Receive Absolute Interrupt Delay (array of int)\n" "parm: RxIntDelay:Receive Interrupt Delay (array of int)\n" "parm: SmartPowerDownEnable:Enable PHY smart power down (array of int)\n" "parm: TxAbsIntDelay:Transmit Absolute Interrupt Delay (array of int)\n" "parm: TxIntDelay:Transmit Interrupt Delay (array of int)\n" "parm: WriteProtectNVM:Write-protect NVM [WARNING: disabling this can lead to corrupted NVM] (array of int)" msgstr "" #. Tag: title #, no-c-format msgid "Loading a Module" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module loading " "for the current session" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module utilities " " modprobe " msgstr "" #. Tag: indexterm #, no-c-format msgid "" " modprobe kernel " "module" msgstr "" #. Tag: para #, no-c-format msgid "" "To load a kernel module, run modprobe " "<module_name> as root. For " "example, to load the wacom " "module, run:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# modprobe wacom\n" " " msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module directories " " /lib/modules/<kernel_version>/kernel/drivers/" " " msgstr "" #. Tag: para #, no-c-format msgid "" "By default, modprobe attempts to load the module from " "/lib/modules/<kernel_version>/kernel/drivers/." " In this directory, each type of module has its own subdirectory, such as " "net/ and scsi/, for network and SCSI interface drivers" " respectively." msgstr "" #. Tag: para #, no-c-format msgid "" "Some modules have dependencies, which are other kernel modules that must be " "loaded before the module in question can be loaded. The " "modprobe command always takes dependencies into account " "when performing operations. When you ask modprobe to load" " a specific kernel module, it first examines the dependencies of that " "module, if there are any, and loads them if they are not already loaded into" " the kernel. modprobe resolves dependencies recursively: " "it will load all dependencies of dependencies, and so on, if necessary, thus" " ensuring that all dependencies are always met." msgstr "" #. Tag: para #, no-c-format msgid "" "You can use the (i.e. ) option" " to cause modprobe to display detailed information about " "what it is doing, which may include loading module dependencies. Here's an " "example of loading the Fibre Channel over " "Ethernet module verbosely:" msgstr "" #. Tag: title #, no-c-format msgid "modprobe -v shows module dependencies as they are loaded" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# modprobe -v fcoe\n" "insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/scsi_tgt.ko\n" "insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/scsi_transport_fc.ko\n" "insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/libfc/libfc.ko\n" "insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/fcoe/libfcoe.ko\n" "insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/fcoe/fcoe.ko" msgstr "" #. Tag: para #, no-c-format msgid "" " shows that " "modprobe loaded the scsi_tgt, scsi_transport_fc, libfc and libfcoe modules as dependencies before " "finally loading fcoe. Also note " "that modprobe used the more primitive " "insmod command to insert the modules into the running " "kernel." msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module utilities " " insmod " msgstr "" #. Tag: indexterm #, no-c-format msgid "" " insmod kernel " "module" msgstr "" #. Tag: title #, no-c-format msgid "Always use modprobe instead of insmod!" msgstr "" #. Tag: para #, no-c-format msgid "" "Although the insmod command can also be used to load " "kernel modules, it does not resolve dependencies. Because of this, you " "should always load modules using " "modprobe instead." msgstr "" #. Tag: title #, no-c-format msgid "Unloading a Module" msgstr "" #. Tag: indexterm #, no-c-format msgid "kernel module unloading" msgstr "" #. Tag: para #, no-c-format msgid "" "You can unload a kernel module by running modprobe -r " "<module_name> as root. For " "example, assuming that the wacom" " module is already loaded into the kernel, you can unload it by running:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# modprobe -r wacom\n" " " msgstr "" #. Tag: para #, no-c-format msgid "However, this command will fail if a process is using:" msgstr "" #. Tag: para #, no-c-format msgid "the wacom module," msgstr "" #. Tag: para #, no-c-format msgid "" "a module that wacom directly " "depends on, or," msgstr "" #. Tag: para #, no-c-format msgid "" "any module that wacom—through " "the dependency tree—depends on indirectly." msgstr "" #. Tag: para #, no-c-format msgid "" "Refer to for more " "information about using lsmod to obtain the names of the " "modules which are preventing you from unloading a certain module." msgstr "" #. Tag: para #, no-c-format msgid "" "For example, if you want to unload the firewire_ohci module because (because you " "believe there is a bug in it that is affecting system stability, for " "example), your terminal session might look similar to this:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# modinfo -F depends firewire_ohci\n" "depends: firewire-core\n" "~]# modinfo -F depends firewire_core\n" "depends: crc-itu-t\n" "~]# modinfo -F depends crc-itu-t\n" "depends:" msgstr "" #. Tag: para #, no-c-format msgid "" "You have figured out the dependency tree (which does not branch in this " "example) for the loaded Firewire modules: firewire_ohci depends on firewire_core, which itself depends on " "crc-itu-t." msgstr "" #. Tag: para #, no-c-format msgid "" "You can unload firewire_ohci " "using the modprobe -v -r " "<module_name> command, where " " is short for and " " for :" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# modprobe -r -v firewire_ohci\n" "rmmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/firewire/firewire-ohci.ko\n" "rmmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/firewire/firewire-core.ko\n" "rmmod /lib/modules/2.6.32-71.el6.x86_64/kernel/lib/crc-itu-t.ko" msgstr "" #. Tag: para #, no-c-format msgid "" "The output shows that modules are unloaded in the reverse order that they " "are loaded, given that no proceses depend on any of the modules being " "unloaded." msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module utilities " " rmmod " msgstr "" #. Tag: indexterm #, no-c-format msgid "" " rmmod kernel " "module" msgstr "" #. Tag: title #, no-c-format msgid "Do not use rmmod directly!" msgstr "" #. Tag: para #, no-c-format msgid "" "Although the rmmod command can be used to unload kernel " "modules, it is recommended to use modprobe -r instead." msgstr "" #. Tag: title #, no-c-format msgid "Setting Module Parameters" msgstr "" #. Tag: indexterm #, no-c-format msgid "module parameters kernel module" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module module parameters " "supplying" msgstr "" #. Tag: para #, no-c-format msgid "" "Like the kernel itself, modules can also take parameters that change their " "behavior. Most of the time, the default ones work well, but occasionally it " "is necessary or desirable to set custom parameters for a module. Because " "parameters cannot be dynamically set for a module that is already loaded " "into a running kernel, there are two different methods for setting them." msgstr "" #. Tag: para #, no-c-format msgid "" "You can unload all dependencies of the module you want to set parameters " "for, unload the module using modprobe -r, and then load " "it with modprobe along with a list of customized " "parameters. This method is often used when the module does not have many " "dependencies, or to test different combinations of parameters without making" " them persistent, and is the method covered in this section." msgstr "" #. Tag: para #, no-c-format msgid "" "Alternatively, you can list the new parameters in an existing or newly-" "created file in the /etc/modprobe.d/ directory. This " "method makes the module parameters persistent by ensuring that they are set " "each time the module is loaded, such as after every reboot or " "modprobe command. This method is covered in , though the following information is a" " prerequisite." msgstr "" #. Tag: para #, no-c-format msgid "" "You can use modprobe to load a kernel module with custom " "parameters using the following command line format:" msgstr "" #. Tag: title #, no-c-format msgid "Supplying optional parameters when loading a kernel module" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# modprobe <module_name> parameter=value\n" " \n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "Here are some things to be aware of when loading a module with custom " "parameters on the command line:" msgstr "" #. Tag: para #, no-c-format msgid "" "You can enter multiple parameters and values by separating them with spaces." msgstr "" #. Tag: para #, no-c-format msgid "" "Some module parameters expect a list of comma-separated values as their " "argument. When entering the list of values, do not " "insert a space after each comma, or modprobe will " "incorrectly interpret the values following spaces as additional parameters." msgstr "" #. Tag: para #, no-c-format msgid "" "The modprobe command silently succeeds with an exit " "status of 0 if:" msgstr "" #. Tag: para #, no-c-format msgid "it successfully loads the module, or" msgstr "" #. Tag: para #, no-c-format msgid "the module is already loaded into the kernel." msgstr "" #. Tag: para #, no-c-format msgid "" "Thus, you must ensure that the module is not already loaded before " "attempting to load it with custom parameters. The " "modprobe command does not automatically reload the " "module, or alert you that it is already loaded." msgstr "" #. Tag: para #, no-c-format msgid "" "Here are the recommended steps for setting custom parameters and then " "loading a kernel module. This procedure illustrates the steps using the " "e1000e module, which is the " "network driver for Intel PRO/1000 network adapters, as an example:" msgstr "" #. Tag: title #, no-c-format msgid "Loading a Kernel Module with Custom Parameters" msgstr "" #. Tag: para #, no-c-format msgid "First, ensure the module is not already loaded into the kernel:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# lsmod |grep e1000e\n" "~]# " msgstr "" #. Tag: para #, no-c-format msgid "" "Output indicates that the module is already loaded into the kernel, in which" " case you must first unload it before proceeding. Refer to for instructions on safely unloading it." msgstr "" #. Tag: para #, no-c-format msgid "" "Load the module and list all custom parameters after the module name. For " "example, if you wanted to load the Intel PRO/1000 network driver with the " "interrupt throttle rate set to 3000 interrupts per second for the first, " "second and third instances of the driver, and Energy Efficient Ethernet " "(EEE) turned onDespite what the example might imply, " "Energy Efficient Ethernet is turned on by default in the e1000e driver. , you " "would run, as root:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# modprobe e1000e InterruptThrottleRate=3000,3000,3000 EEE=1\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "This example illustrates passing multiple valued to a single parameter by " "separating them with commas and omitting any spaces between them." msgstr "" #. Tag: title #, no-c-format msgid "Persistent Module Loading" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module loading at" " the boot time" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module directories " " /etc/sysconfig/modules/ " "" msgstr "" #. Tag: para #, no-c-format msgid "" "As shown in , many kernel " "modules are loaded automatically at boot time. You can specify additional " "modules to be loaded by creating a new " "<file_name>.modules " "file in the /etc/sysconfig/modules/" " directory, where <file_name> is any " "descriptive name of your choice. Your " "<file_name>.modules " "files are treated by the system startup scripts as shell scripts, and as " "such should begin with an interpreter directive (also" " called a bang line) as their first line:" msgstr "" #. Tag: title #, no-c-format msgid "First line of a file_name.modules file" msgstr "" #. Tag: screen #, no-c-format msgid "#!/bin/sh" msgstr "" #. Tag: para #, no-c-format msgid "" "Additionally, the " "<file_name>.modules " "file should be executable. You can make it executable by running:" msgstr "" #. Tag: screen #, no-c-format msgid "" "modules]# chmod +x <file_name>.modules\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "For example, the following bluez-uinput.modules script " "loads the uinput module:" msgstr "" #. Tag: title #, no-c-format msgid "/etc/sysconfig/modules/bluez-uinput.modules" msgstr "" #. Tag: programlisting #, no-c-format msgid "" "#!/bin/sh\n" "\n" "if [ ! -c /dev/input/uinput ] ; then\n" " exec /sbin/modprobe uinput >/dev/null 2>&1\n" "fi" msgstr "" #. Tag: para #, no-c-format msgid "" "The if-conditional statement on the third line ensures " "that the /dev/input/uinput file does " "not already exist (the ! symbol " "negates the condition), and, if that is the case, loads the uinput module by calling exec " "/sbin/modprobe uinput. Note that the uinput module creates the " "/dev/input/uinput file, so testing to see if that file " "exists serves as verification of whether the uinput module is loaded into the kernel." msgstr "" #. Tag: para #, no-c-format msgid "" "The following >/dev/null 2>&1 clause at the end" " of that line simply redirects any output to /dev/null " "so that the modprobe command remains quiet." msgstr "" #. Tag: title #, no-c-format msgid "Specific Kernel Module Capabilities" msgstr "" #. Tag: para #, no-c-format msgid "" "This section explains how to enable specific kernel capabilities using " "various kernel modules." msgstr "" #. Tag: title #, no-c-format msgid "Using Multiple Ethernet Cards" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module Ethernet module " "supporting multiple cards" msgstr "" #. Tag: para #, no-c-format msgid "" "It is possible to use multiple Ethernet cards on a single machine. For each " "card there must be an alias and, possibly, " "options lines for each card in a user-created " "<module_name>.conf " "file in the /etc/modprobe.d/ directory." msgstr "" #. Tag: para #, no-c-format msgid "" "For additional information about using multiple Ethernet cards, refer to the" " Linux Ethernet-HOWTO online at http://www.redhat.com/mirrors/LDP/HOWTO/Ethernet-" "HOWTO.html." msgstr "" #. Tag: title #, no-c-format msgid "Using Channel Bonding" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module bonding module " "description" msgstr "" #. Tag: indexterm #, no-c-format msgid "channel bonding description" msgstr "" #. Tag: indexterm #, no-c-format msgid "bonding channel bonding" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "NIC binding into single channel" msgstr "" #. Tag: indexterm #, no-c-format msgid "channel bonding interface kernel module" msgstr "" #. Tag: para #, no-c-format msgid "" "&MAJOROS; allows administrators to bind NICs together into a single channel " "using the bonding kernel module and a special network " "interface, called a channel bonding interface. " "Channel bonding enables two or more network interfaces to act as one, " "simultaneously increasing the bandwidth and providing redundancy." msgstr "" #. Tag: indexterm #, no-c-format msgid "kernel module bonding module" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "channel bonding configuration" msgstr "" #. Tag: para #, no-c-format msgid "" "To channel bond multiple network interfaces, the administrator must perform " "the following steps:" msgstr "" #. Tag: para #, no-c-format msgid "" "As root, create a new file named " "<bonding>.conf in the " "/etc/modprobe.d/ directory. Note that you can name this" " file anything you like as long as it ends with a .conf" " extension. Insert the following line in this new file:" msgstr "" #. Tag: screen #, no-c-format msgid "alias bond<N> bonding" msgstr "" #. Tag: para #, no-c-format msgid "" "Replace <N> with the interface number, such" " as 0. For each configured channel bonding interface, " "there must be a corresponding entry in your new " "/etc/modprobe.d/<bonding>.conf" " file." msgstr "" #. Tag: para #, no-c-format msgid "" "Configure a channel bonding interface as outlined in ." msgstr "" #. Tag: para #, no-c-format msgid "" "To enhance performance, adjust available module options to ascertain what " "combination works best. Pay particular attention to the " "miimon or arp_interval and the " "arp_ip_target parameters. Refer to for a list of available options and how to " "quickly determine the best ones for your bonded interface." msgstr "" #. Tag: title #, no-c-format msgid "Bonding Module Directives" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module bonding module " "parameters to bonded interfaces" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "kernel module module parameters " "bonding module parameters" msgstr "" #. Tag: indexterm #, no-c-format msgid "" "channel bonding parameters to bonded " "interfaces" msgstr "" #. Tag: para #, no-c-format msgid "" "It is a good idea to test which channel bonding module parameters work best " "for your bonded interfaces before adding them to the BONDING_OPTS=\"<bonding " "parameters>\" directive in your bonding " "interface configuration file (ifcfg-bond0 for example)." " Parameters to bonded interfaces can be configured without unloading (and " "reloading) the bonding module by manipulating files in the sysfs file system." msgstr "" #. Tag: para #, no-c-format msgid "" "sysfs is a virtual file system" " that represents kernel objects as directories, files and symbolic links. " "sysfs can be used to query for" " information about kernel objects, and can also manipulate those objects " "through the use of normal file system commands. The sysfs virtual file system has a line in " "/etc/fstab, and is mounted under the " "/sys/ directory. All bonding interfaces can be " "configured dynamically by interacting with and manipulating files under the " "/sys/class/net/ directory." msgstr "" #. Tag: para #, no-c-format msgid "" "After you have created a channel bonding interface file such as ifcfg-bond0 and inserted SLAVE=yes and MASTER=bond0 directives in the configuration " "files for each interface bonded to bond0 following the instructions in , you can proceed to " "testing and determining the best parameters for your bonding interface." msgstr "" #. Tag: para #, no-c-format msgid "" "First, bring up the bond you created by running ifconfig " " " " as root:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# ifconfig bond0 up\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "If you have correctly created the ifcfg-bond0 bonding " "interface file, you will be able to see " "bond0 listed in the output of running " "ifconfig (without any options):" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# ifconfig\n" "bond0 Link encap:Ethernet HWaddr 00:00:00:00:00:00\n" " UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1\n" " RX packets:0 errors:0 dropped:0 overruns:0 frame:0\n" " TX packets:0 errors:0 dropped:0 overruns:0 carrier:0\n" " collisions:0 txqueuelen:0\n" " RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)\n" "eth0 Link encap:Ethernet HWaddr 52:54:00:26:9E:F1\n" " inet addr:192.168.122.251 Bcast:192.168.122.255 Mask:255.255.255.0\n" " inet6 addr: fe80::5054:ff:fe26:9ef1/64 Scope:Link\n" " UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1\n" " RX packets:207 errors:0 dropped:0 overruns:0 frame:0\n" " TX packets:205 errors:0 dropped:0 overruns:0 carrier:0\n" " collisions:0 txqueuelen:1000\n" " RX bytes:70374 (68.7 KiB) TX bytes:25298 (24.7 KiB)\n" msgstr "" #. Tag: screen #, no-c-format msgid "" "\n" " " msgstr "" #. Tag: para #, no-c-format msgid "To view all existing bonds, even if they are not up, run:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# cat /sys/class/net/bonding_masters\n" "bond0" msgstr "" #. Tag: para #, no-c-format msgid "" "You can configure each bond individually by manipulating the files located " "in the " "/sys/class/net/bond<N>/bonding/" " directory. First, the bond you are configuring must be taken down:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# ifconfig bond0 down\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "As an example, to enable MII monitoring on bond0 with a 1 second interval, " "you could run (as root):" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# echo 1000 > /sys/class/net/bond0/bonding/miimon\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "To configure bond0 for balance-alb " "mode, you could run either:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# echo 6 > /sys/class/net/bond0/bonding/mode\n" " " msgstr "" #. Tag: para #, no-c-format msgid "...or, using the name of the mode:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# echo balance-alb > /sys/class/net/bond0/bonding/mode\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "After configuring some options for the bond in question, you can bring it up" " and test it by running ifconfig " "bond<N>  . If " "you decide to change the options, take the interface down, modify its " "parameters using sysfs, bring " "it back up, and re-test." msgstr "" #. Tag: para #, no-c-format msgid "" "Once you have determined the best set of parameters for your bond, add those" " parameters as a space-separated list to the BONDING_OPTS= directive of the " "/etc/sysconfig/network-scripts/ifcfg-" "bond<N> file for the bonding " "interface you are configuring. Whenever that bond is brought up (for " "example, by the system during the boot sequence if the ONBOOT=yes directive is set), the bonding " "options specified in the BONDING_OPTS will take effect for that bond. " "For more information on configuring bonding interfaces (and BONDING_OPTS), refer to ." msgstr "" #. Tag: para #, no-c-format msgid "" "The following list provides the names of many of the more common channel " "bonding parameters, along with a descriptions of what they do. For more " "information, refer to the brief descriptions for each " "parm in modinfo bonding " "output, or the exhaustive descriptions in the " "bonding.txt file in the kernel-doc " "package (see )." msgstr "" #. Tag: title #, no-c-format msgid "Bonding Interface Parameters" msgstr "" #. Tag: term #, no-c-format msgid "" "arp_interval=<time_in_milliseconds>" " " msgstr "" #. Tag: para #, no-c-format msgid "Specifies (in milliseconds) how often ARP monitoring occurs." msgstr "" #. Tag: title #, no-c-format msgid "Important" msgstr "" #. Tag: para #, no-c-format msgid "" "It is essential that both arp_interval and " "arp_ip_target parameters are specified, or, " "alternatively, the miimon parameter is specified. Failure" " to do so can cause degradation of network performance in the event that a " "link fails." msgstr "" #. Tag: para #, no-c-format msgid "" "If using this setting while in mode=0 or " "mode=1 (the two load-balancing modes), the network switch" " must be configured to distribute packets evenly across the NICs. For more " "information on how to accomplish this, refer to /usr/share/doc" "/kernel-" "doc-<kernel_version>/Documentation/networking/bonding.txt" msgstr "" #. Tag: para #, no-c-format msgid "" "The value is set to 0 by default, which disables it." msgstr "" #. Tag: term #, no-c-format msgid "" "arp_ip_target=<ip_address>,<ip_address_2>,…<ip_address_16>" " " msgstr "" #. Tag: para #, no-c-format msgid "" "Specifies the target IP address of ARP requests when the " "arp_interval parameter is enabled. Up to 16 IP addresses " "can be specified in a comma separated list." msgstr "" #. Tag: term #, no-c-format msgid "" "arp_validate=<value> " msgstr "" #. Tag: para #, no-c-format msgid "" "Validate source/distribution of ARP probes; default is " "none. Other valid values are " "active, backup, and " "all." msgstr "" #. Tag: term #, no-c-format msgid "debug=<number> " msgstr "" #. Tag: para #, no-c-format msgid "Enables debug messages. Possible values are:" msgstr "" #. Tag: para #, no-c-format msgid "" "0 — Debug messages are disabled. This is the default." msgstr "" #. Tag: para #, no-c-format msgid "1 — Debug messages are enabled." msgstr "" #. Tag: term #, no-c-format msgid "" "downdelay=<time_in_milliseconds> " "" msgstr "" #. Tag: para #, no-c-format msgid "" "Specifies (in milliseconds) how long to wait after link failure before " "disabling the link. The value must be a multiple of the value specified in " "the miimon parameter. The value is set to " "0 by default, which disables it." msgstr "" #. Tag: term #, no-c-format msgid "lacp_rate=<value>" msgstr "" #. Tag: para #, no-c-format msgid "" "Specifies the rate at which link partners should transmit LACPDU packets in " "802.3ad mode. Possible values are:" msgstr "" #. Tag: para #, no-c-format msgid "" "slow or 0 — Default setting. " "This specifies that partners should transmit LACPDUs every 30 seconds." msgstr "" #. Tag: para #, no-c-format msgid "" "fast or 1 — Specifies that " "partners should transmit LACPDUs every 1 second." msgstr "" #. Tag: term #, no-c-format msgid "" "miimon=<time_in_milliseconds> " "" msgstr "" #. Tag: para #, no-c-format msgid "" "Specifies (in milliseconds) how often MII link monitoring occurs. This is " "useful if high availability is required because MII is used to verify that " "the NIC is active. To verify that the driver for a particular NIC supports " "the MII tool, type the following command as root:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# ethtool <interface_name> | grep \"Link detected:\"\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "In this command, replace <interface_name> " "with the name of the device interface, such as eth0, " "not the bond interface. If MII is supported, the command returns:" msgstr "" #. Tag: screen #, no-c-format msgid "Link detected: yes" msgstr "" #. Tag: para #, no-c-format msgid "" "If using a bonded interface for high availability, the module for each NIC " "must support MII. Setting the value to 0 (the " "default), turns this feature off. When configuring this setting, a good " "starting point for this parameter is 100." msgstr "" #. Tag: term #, no-c-format msgid "mode=<value> " msgstr "" #. Tag: para #, no-c-format msgid "...where <value> is one of:" msgstr "" #. Tag: para #, no-c-format msgid "" "balance-rr or 0 — Sets a " "round-robin policy for fault tolerance and load balancing. Transmissions are" " received and sent out sequentially on each bonded slave interface beginning" " with the first one available." msgstr "" #. Tag: para #, no-c-format msgid "" "active-backup or 1 — Sets an " "active-backup policy for fault tolerance. Transmissions are received and " "sent out via the first available bonded slave interface. Another bonded " "slave interface is only used if the active bonded slave interface fails." msgstr "" #. Tag: para #, no-c-format msgid "" "balance-xor or 2 — Sets an XOR" " (exclusive-or) policy for fault tolerance and load balancing. Using this " "method, the interface matches up the incoming request's MAC address with the" " MAC address for one of the slave NICs. Once this link is established, " "transmissions are sent out sequentially beginning with the first available " "interface." msgstr "" #. Tag: para #, no-c-format msgid "" "broadcast or 3 — Sets a " "broadcast policy for fault tolerance. All transmissions are sent on all " "slave interfaces." msgstr "" #. Tag: para #, no-c-format msgid "" "802.3ad or 4 — Sets an IEEE " "802.3ad dynamic link aggregation policy. Creates aggregation groups that " "share the same speed and duplex settings. Transmits and receives on all " "slaves in the active aggregator. Requires a switch that is 802.3ad " "compliant." msgstr "" #. Tag: para #, no-c-format msgid "" "balance-tlb or 5 — Sets a " "Transmit Load Balancing (TLB) policy for fault tolerance and load balancing." " The outgoing traffic is distributed according to the current load on each " "slave interface. Incoming traffic is received by the current slave. If the " "receiving slave fails, another slave takes over the MAC address of the " "failed slave." msgstr "" #. Tag: para #, no-c-format msgid "" "balance-alb or 6 — Sets an " "Active Load Balancing (ALB) policy for fault tolerance and load balancing. " "Includes transmit and receive load balancing for IPV4 traffic. Receive load " "balancing is achieved through ARP negotiation." msgstr "" #. Tag: term #, no-c-format msgid "" "num_unsol_na=<number> " msgstr "" #. Tag: para #, no-c-format msgid "" "Specifies the number of unsolicited IPv6 Neighbor Advertisements to be " "issued after a failover event. One unsolicited NA is issued immediately " "after the failover." msgstr "" #. Tag: para #, no-c-format msgid "" "The valid range is 0 - 255; the default value is " "1. This parameter affects only the active-backup " "mode." msgstr "" #. Tag: term #, no-c-format msgid "" "primary=<interface_name> " "" msgstr "" #. Tag: para #, no-c-format msgid "" "Specifies the interface name, such as eth0, of the " "primary device. The primary device is the first of the " "bonding interfaces to be used and is not abandoned unless it fails. This " "setting is particularly useful when one NIC in the bonding interface is " "faster and, therefore, able to handle a bigger load." msgstr "" #. Tag: para #, no-c-format msgid "" "This setting is only valid when the bonding interface is in active-backup mode. Refer to /usr/share/doc/kernel-" "doc-<kernel-" "version>/Documentation/networking/bonding.txt " "for more information." msgstr "" #. Tag: term #, no-c-format msgid "" "primary_reselect=<value> " "" msgstr "" #. Tag: para #, no-c-format msgid "" "Specifies the reselection policy for the primary slave. This affects how the" " primary slave is chosen to become the active slave when failure of the " "active slave or recovery of the primary slave occurs. This parameter is " "designed to prevent flip-flopping between the primary slave and other " "slaves. Possible values are:" msgstr "" #. Tag: para #, no-c-format msgid "" "always or 0 (default) — The " "primary slave becomes the active slave whenever it comes back up." msgstr "" #. Tag: para #, no-c-format msgid "" "better or 1 — The primary " "slave becomes the active slave when it comes back up, if the speed and " "duplex of the primary slave is better than the speed and duplex of the " "current active slave." msgstr "" #. Tag: para #, no-c-format msgid "" "failure or 2 — The primary " "slave becomes the active slave only if the current active slave fails and " "the primary slave is up." msgstr "" #. Tag: para #, no-c-format msgid "" "The primary_reselect setting is ignored in two cases:" msgstr "" #. Tag: para #, no-c-format msgid "" "If no slaves are active, the first slave to recover is made the active " "slave." msgstr "" #. Tag: para #, no-c-format msgid "" "When initially enslaved, the primary slave is always made the active slave." msgstr "" #. Tag: para #, no-c-format msgid "" "Changing the primary_reselect policy via sysfs will cause an immediate selection of" " the best active slave according to the new policy. This may or may not " "result in a change of the active slave, depending upon the circumstances" msgstr "" #. Tag: term #, no-c-format msgid "" "updelay=<time_in_milliseconds> " "" msgstr "" #. Tag: para #, no-c-format msgid "" "Specifies (in milliseconds) how long to wait before enabling a link. The " "value must be a multiple of the value specified in the " "miimon parameter. The value is set to " "0 by default, which disables it." msgstr "" #. Tag: term #, no-c-format msgid "" "use_carrier=<number> " msgstr "" #. Tag: para #, no-c-format msgid "" "Specifies whether or not miimon should use MII/ETHTOOL " "ioctls or netif_carrier_ok() to determine the link " "state. The netif_carrier_ok() function relies on the " "device driver to maintains its state with " "netif_carrier_on/off ; most " "device drivers support this function." msgstr "" #. Tag: para #, no-c-format msgid "" "The MII/ETHROOL ioctls tools utilize a deprecated calling sequence within " "the kernel. However, this is still configurable in case your device driver " "does not support netif_carrier_on/off " "." msgstr "" #. Tag: para #, no-c-format msgid "Valid values are:" msgstr "" #. Tag: para #, no-c-format msgid "" "1 — Default setting. Enables the use of " "netif_carrier_ok()." msgstr "" #. Tag: para #, no-c-format msgid "0 — Enables the use of MII/ETHTOOL ioctls." msgstr "" #. Tag: title #, no-c-format msgid "Tip" msgstr "" #. Tag: para #, no-c-format msgid "" "If the bonding interface insists that the link is up when it should not be, " "it is possible that your network device driver does not support " "netif_carrier_on/off ." msgstr "" #. Tag: term #, no-c-format msgid "" "xmit_hash_policy=<value> " "" msgstr "" #. Tag: para #, no-c-format msgid "" "Selects the transmit hash policy used for slave selection in balance-xor and 802.3ad modes. Possible " "values are:" msgstr "" #. Tag: para #, no-c-format msgid "" "0 or layer2 — Default setting." " This parameter uses the XOR of hardware MAC addresses to generate the hash." " The formula used is:" msgstr "" #. Tag: screen #, no-c-format msgid "" "(<source_MAC_address> XOR <destination_MAC>) MODULO <slave_count>\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "This algorithhm will place all traffic to a particular network peer on the " "same slave, and is 802.3ad compliant." msgstr "" #. Tag: para #, no-c-format msgid "" "1 or layer3+4 — Uses upper " "layer protocol information (when available) to generate the hash. This " "allows for traffic to a particular network peer to span multiple slaves, " "although a single connection will not span multiple slaves." msgstr "" #. Tag: para #, no-c-format msgid "The formula for unfragmented TCP and UDP packets used is:" msgstr "" #. Tag: screen #, no-c-format msgid "" "((<source_port> XOR <dest_port>) XOR\n" " ((<source_IP> XOR <dest_IP>) AND 0xffff)\n" " MODULO <slave_count>\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "For fragmented TCP or UDP packets and all other IP protocol traffic, the " "source and destination port information is omitted. For non-IP traffic, the " "formula is the same as the layer2 transmit hash policy." msgstr "" #. Tag: para #, no-c-format msgid "" "This policy intends to mimic the behavior of certain switches; particularly," " Cisco switches with PFC2 as well as some Foundry and IBM products." msgstr "" #. Tag: para #, no-c-format msgid "The algorithm used by this policy is not 802.3ad compliant." msgstr "" #. Tag: para #, no-c-format msgid "" "2 or layer2+3 — Uses a " "combination of layer2 and layer3 protocol information to generate the hash." msgstr "" #. Tag: para #, no-c-format msgid "" "Uses XOR of hardware MAC addresses and IP addresses to generate the hash. " "The formula is:" msgstr "" #. Tag: screen #, no-c-format msgid "" "(((<source_IP> XOR <dest_IP>) AND 0xffff) XOR\n" " ( <source_MAC> XOR <destination_MAC> ))\n" " MODULO <slave_count>\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "This algorithm will place all traffic to a particular network peer on the " "same slave. For non-IP traffic, the formula is the same as for the layer2 " "transmit hash policy." msgstr "" #. Tag: para #, no-c-format msgid "" "This policy is intended to provide a more balanced distribution of traffic " "than layer2 alone, especially in environments where a layer3 gateway device " "is required to reach most destinations." msgstr "" #. Tag: para #, no-c-format msgid "This algorithm is 802.3ad compliant." msgstr "" #. Tag: title #, no-c-format msgid "Additional Resources" msgstr "" #. Tag: para #, no-c-format msgid "" "For more information on kernel modules and their utilities, refer to the " "following resources." msgstr "" #. Tag: bridgehead #, no-c-format msgid "Manual Page Documentation" msgstr "" #. Tag: para #, no-c-format msgid "" "man lsmod — The lsmod manual page " "contains usage information and explanation of all options." msgstr "" #. Tag: para #, no-c-format msgid "" "man modinfo — The modinfo manual page " "contains usage information and explanation of all options." msgstr "" #. Tag: para #, no-c-format msgid "" "man modprobe — The modprobe manual " "page contains usage information and explanation of all options." msgstr "" #. Tag: para #, no-c-format msgid "" "man rmmod — The rmmod manual page " "contains usage information and explanation of all options." msgstr "" #. Tag: para #, no-c-format msgid "" "man ethtool — The ethtool manual page " "contains usage information and explanation of all options." msgstr "" #. Tag: para #, no-c-format msgid "" "man mii-tool — The mii-tool manual " "page contains usage information and explanation of all options." msgstr "" #. Tag: bridgehead #, no-c-format msgid "Installable and External Documentation" msgstr "" #. Tag: para #, no-c-format msgid "" "/usr/share/doc/kernel-" "doc-<kernel_version>/Documentation/" " — This directory, which is provided by the kernel-doc " "package, contains information on the kernel, kernel modules, and their " "respective parameters. Before accessing the kernel documentation, you must " "run the following command as root:" msgstr "" #. Tag: screen #, no-c-format msgid "" "~]# yum install kernel-doc\n" " " msgstr "" #. Tag: para #, no-c-format msgid "" "Linux Loadable Kernel " "Module HOWTO — The Linux Loadable Kernel Module " "HOWTO from the Linux Documentation Project contains further " "information on working with kernel modules." msgstr ""