Clarify wireless kernel requirements

This commit is contained in:
Xi Ruoyao 2023-03-13 13:23:44 +08:00
parent b570b6aae4
commit ca66edf064
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
5 changed files with 91 additions and 65 deletions

View File

@ -77,6 +77,12 @@
<xref linkend="libnl"/>
</para>
<bridgehead renderas="sect4">Required (Runtime)</bridgehead>
<para role="nodump">
<!-- nodump because the section is completely for human -->
<xref linkend="wireless-kernel"/>
</para>
<para condition="html" role="usernotes">User Notes:
<ulink url='&blfs-wiki;/iw'/></para>
@ -86,32 +92,13 @@
<title>Kernel Configuration</title>
<indexterm zone="iw iw-kernel">
<primary sortas="d-iw-devices">Wireless devices</primary>
<primary sortas="d-iw-devices">iw</primary>
</indexterm>
<para>
To use <application>iw</application>, the kernel must have the
appropriate drivers and other support available. The appropriate bus
must also be available. For older laptops, the PCMCIA bus
(CONFIG_PCCARD) needs to be built. In some cases, this bus support will
also need to be built for embedded iw cards. The appropriate bridge
support also needs to be built. For many modern laptops, the CardBus host
bridge (CONFIG_YENTA) will be needed.
</para>
<para>
In addition to the bus, the actual driver for the specific wireless
card must also be available. There are many wireless cards and they
don't all work with Linux. The first place to look for card support is
the kernel. The drivers are located in Device Drivers &rarr; Network
Device Support &rarr; Wireless LAN (non-hamradio). There are also
external drivers available for some very common cards. For more
information, look at the user notes.
</para>
<para>
After the correct drivers are loaded, the interface will
appear in <filename>/proc/net/wireless</filename>.
appropriate drivers and other support available. Read
<xref linkend='wireless-kernel'/> for details.
</para>
</sect2>

View File

@ -20,7 +20,6 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bridgeutils.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="cifsutils.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="iw.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="ncftp.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="net-tools.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="nfs-utils.xml"/>
@ -30,6 +29,8 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="rsync.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="samba.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="wget.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="wireless-kernel.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="iw.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="wireless-tools.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="wpa_supplicant.xml"/>
<!-- <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="othernetprogs.xml"/>-->

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
]>
<sect1 id="wireless-kernel" xreflabel="Configure the Linux Kernel for Wireless">
<?dbhtml filename="wireless-kernel.html"?>
<title>Configure the Linux Kernel for Wireless</title>
<para>
Before using any userspace tool for connecting with a wireless AP,
the Linux kernel must be configured to drive the wireless NIC properly.
Enable the following options in the kernel configuration as well as
specific device drivers for your hardware and recompile the kernel if
necessary:
</para>
<screen><literal>[*] Networking support ---&gt; [CONFIG_NET]
[*] Wireless ---&gt; [CONFIG_WIRELESS]
&lt;*/M&gt; cfg80211 - wireless configuration API [CONFIG_CFG80211]
&lt; /*/M&gt; Generic IEEE 802.11 Networking Stack (mac80211) [CONFIG_MAC80211]
Device Drivers ---&gt;
[*] Network device support ---&gt; [CONFIG_NETDEVICES]
[*] Wireless LAN ---&gt; [CONFIG_WLAN]</literal></screen>
<para>
Open the <quote>Wireless LAN</quote> submenu and select the options that
support your hardware. <command>lspci</command> from
<xref linkend="pciutils"/> or <command>lsusb</command> from
<xref linkend="usbutils"/> can be used to
view your hardware configuration. Note that many (though not all)
options for the wireless NICs depend on
<parameter>CONFIG_MAC80211</parameter>. After the correct drivers are
loaded, the interface will appear in
<filename>/sys/class/net</filename>, or the output of the
<command>ip link</command> command.
</para>
<para>
Many wireless NIC drivers require a firmware. If you've enabled the
correct driver in the kernel configuration but it fails to load (with
the messages like <quote><computeroutput>Direct firmware load for
<replaceable>&lt;filename</replaceable>&gt; failed with error
-2</computeroutput></quote>, it means you need to install the firmware
or the wireless NIC won't work. Read <xref linkend='postlfs-firmware'/>
for details.
</para>
</sect1>

View File

@ -87,42 +87,37 @@
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Wireless Tools Dependencies</bridgehead>
<bridgehead renderas="sect4">Required (Runtime)</bridgehead>
<para role="nodump">
<xref linkend="wireless-kernel"/>
</para>
<para condition="html" role="usernotes">User Notes:
<ulink url='&blfs-wiki;/WirelessTools'/></para>
</sect2>
<sect2 role="kernel" id='wireless-kernel'>
<sect2 role="kernel" id='wireless-tools-kernel'>
<title>Kernel Configuration</title>
<indexterm zone="wireless_tools wireless-kernel">
<primary sortas="d-Wireless-devices">Wireless devices</primary>
</indexterm>
<para>
To use <application>Wireless Tools</application>, the kernel must have
the appropriate drivers and other support available. The appropriate bus
must also be available. For many laptops, the PCMCIA bus (CONFIG_PCCARD)
needs to be built. In some cases, this bus support will also need to be
built for embedded wireless cards. The appropriate bridge support also
needs to be built. For many modern laptops, the CardBus host bridge
(CONFIG_YENTA) will be needed.
the appropriate drivers and other support available. Besides the
configurations mentioned by <xref linkend='wireless-kernel'/>, it's
also needed to enable the following options in the kernel
configuration:
</para>
<para>
In addition to the bus, the actual driver for the specific wireless card
must also be available. There are many wireless cards and they don't
all work with Linux. The first place to look for card support is the
kernel. The drivers are located in Device Drivers &rarr; Network Device
Support &rarr; Wireless LAN (non-hamradio). There are also external
drivers available for some very common cards. For more information,
look at the user notes.
</para>
<screen><literal>[*] Networking support ---&gt; [CONFIG_NET]
[*] Wireless ---&gt; [CONFIG_WIRELESS]
&lt;*/M&gt; cfg80211 - wireless configuration API [CONFIG_CFG80211]
[*] cfg80211 wireless extensions compatibility [CONFIG_CFG80211_WEXT]</literal></screen>
<para>
After the correct drivers are loaded, the interface will
appear in <filename>/proc/net/wireless</filename>.
</para>
<indexterm zone="wireless_tools wireless-tools-kernel">
<primary sortas="d-wireless_tools">Wireless Tools</primary>
</indexterm>
</sect2>

View File

@ -74,6 +74,11 @@
<bridgehead renderas="sect3">WPA Supplicant Dependencies</bridgehead>
<bridgehead renderas="sect4">Required (Runtime)</bridgehead>
<para role="nodump">
<xref linkend="wireless-kernel"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="desktop-file-utils"/> (for running
@ -98,24 +103,9 @@
<title>Kernel Configuration</title>
<para>
Enable the following options in the kernel configuration as well as
specific device drivers for your hardware and recompile the kernel if
necessary:
</para>
<screen><literal>[*] Networking support ---&gt; [CONFIG_NET]
[*] Wireless ---&gt; [CONFIG_WIRELESS]
&lt;*/M&gt; cfg80211 - wireless configuration API [CONFIG_CFG80211]
[*] cfg80211 wireless extensions compatibility [CONFIG_CFG80211_WEXT]
&lt;*/M&gt; Generic IEEE 802.11 Networking Stack (mac80211) [CONFIG_MAC80211]
Device Drivers ---&gt;
[*] Network device support ---&gt; [CONFIG_NETDEVICES]
[*] Wireless LAN ---&gt; [CONFIG_WLAN]</literal></screen>
<para>
Open the submenu and select the options that support your hardware:
<command>lspci</command> from <xref linkend="pciutils"/> can be used to
view your hardware configuration.
To use <application>wpa_supplicant</application>, the kernel must have
the appropriate drivers and other support available. Read
<xref linkend='wireless-kernel'/> for details.
</para>
<indexterm zone="wpa_supplicant wpa_supplicant-kernel">