Add an explanation of how to find the PCI bus position of network devices, to fix #1904. Also switch the sample udev rule from ID== to KERNELS== (required for udev >=098).

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7835 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Bryan Kadzban 2006-10-24 01:41:23 +00:00
parent dbfd971ac4
commit a804834612
2 changed files with 42 additions and 11 deletions

View File

@ -36,6 +36,16 @@
</listitem>
-->
<listitem>
<para>2006-10-23</para>
<itemizedlist>
<listitem>
<para>[bryan] - Add an explanation of how to discover PCI bus
locations for network devices. Fixes #1904.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2006-10-21</para>
<itemizedlist>

View File

@ -71,23 +71,44 @@ EOF</userinput></screen>
rule on one physical line.</para>
</note>
<para>If you are going to use the bus position as a key, create
Udev rules similar to the following:</para>
<para>If you are going to use the bus position as the key, find the
position of each card with the following commands:</para>
<screen role="nodump"><userinput>for dir in /sys/class/net/* ; do
[ -e $dir/device ] &amp;&amp; {
basename $dir ; readlink -f $dir/device
}
done</userinput></screen>
<para>This will yield output similar to:</para>
<screen role="nodump"><userinput><replaceable>eth0</replaceable>
/sys/devices/pci0000:00/<replaceable>0000:00:0c.0</replaceable>
<replaceable>eth1</replaceable>
/sys/devices/pci0000:00/<replaceable>0000:00:0d.0</replaceable></userinput></screen>
<para>In this example, <replaceable>eth0</replaceable> has PCI bus position
<replaceable>0000:00:0c.0</replaceable> (domain 0000, bus 00, device 0c,
function 0), and <replaceable>eth1</replaceable> has PCI bus position
<replaceable>0000:00:0d.0</replaceable> (domain 0000, bus 00, device 0d,
function 0).</para>
<para>Now create Udev rules similar to the following:</para>
<screen role="nodump"><userinput>cat &gt; /etc/udev/rules.d/26-network.rules &lt;&lt; EOF
<literal>ACTION=="add", SUBSYSTEM=="net", BUS=="<replaceable>pci</replaceable>", ID=="<replaceable>0000:00:0c.0</replaceable>", \
<literal>ACTION=="add", SUBSYSTEM=="net", BUS=="<replaceable>pci</replaceable>", KERNELS=="<replaceable>0000:00:0c.0</replaceable>", \
NAME="<replaceable>realtek</replaceable>"
ACTION=="add", SUBSYSTEM=="net", BUS=="<replaceable>pci</replaceable>", ID=="<replaceable>0000:00:0d.0</replaceable>", \
ACTION=="add", SUBSYSTEM=="net", BUS=="<replaceable>pci</replaceable>", KERNELS=="<replaceable>0000:00:0d.0</replaceable>", \
NAME="<replaceable>intel</replaceable>"</literal>
EOF</userinput></screen>
<para>These rules will always rename the network cards to
<quote>realtek</quote> and <quote>intel</quote>, independently
of the original numbering provided by the kernel (i.e.: the original
<quote>eth0</quote> and <quote>eth1</quote> interfaces will no longer
exist, unless you put such <quote>descriptive</quote> names in the NAME
key). Use the descriptive names from the Udev rules instead
of <quote>eth0</quote> in the network interface configuration files
<para>Regardless of which method you use, these rules will always rename
the network cards to <quote>realtek</quote> and <quote>intel</quote>,
independently of the original numbering provided by the kernel (i.e.: the
original <quote>eth0</quote> and <quote>eth1</quote> interfaces will no
longer exist, unless you put such <quote>descriptive</quote> names in the
NAME key). Use the descriptive names from the Udev rules instead of
<quote>eth0</quote> in the network interface configuration files
below.</para>
<para>Note that the rules above don't work for every setup. For example,