# Wi-Fi during installation
**What does the Minimal Installation CD have to allow for Wi-Fi connections?**
To allow for Wi-Fi connections, the Minimal Installation CD has *a limited number of drivers available.*
> **What is the only utility the Minimal Installation CD has for configuring WPA, WPA2, and Enterprise connections?**
> The only utility the Minimal Installation CD has for configuring WPA, WPA2, and Enterprise connections is *the `wpa_cli`.*
**What should you do if the Minimal Installation CD doesn't have the required drivers for your network or you want the graphical frontend for `wpa_supplicant`?**
If the Minimal Installation CD doesn't have the required drivers for the network or you want the graphical frontend for `wpa_supplicant`, you can *use a different live CD such as the System Rescue CD.*
# Hardware detection
**What is the first step in setting up Wi-Fi on Gentoo?**
The first step in setting up Wi-Fi on Gentoo is *detecting the Wi-Fi controllers.*
> **What two programs can you use to detect the Wi-Fi controllers?**
> The two programs you can use to detect the Wi-Fi controllers are:
> 1. `lspci`.
> 2. `lsusb`.
**If you're using a Linux LiveCD / USB which is booted and it makes a Wi-Fi connection, how do you find which driver is being used?**
If you're using a Linux LiveCD / USB which is booted and it makes a Wi-Fi connection, you can find which driver is being used by:
1. Running `lspci -k`.
2. Finding the line starting with `Kernel driver in use:` which identifies the driver.
**If the booted system doesn't make a Wi-Fi connection, how do you find the hardware identifier for the Wi-Fi controller to identify the appropriate driver later?**
If the booted system doesn't make a Wi-Fi connection, you can find the hardware identifier for the Wi-Fi controller to identify the appropriate driver later by:
1. Running `lspci -n`.
2. Copying the list of PCI ID's that the command produces.
**What does the `lsusb` command output?**
The `lsusb` command outputs *the PCI ID, manufacturer, make, model and/or chipset of every USB device attached to the system.*
> **What is the most useful piece of information for finding the appropriate driver for a USB Network Interface Controller (NIC)?**
> The most useful piece of information for finding the appropriate driver for a USB NIC is *the chipset.*
>
> **What can you search for online to find a USB Network Interface Controller (NIC) driver and firmware name for a chipset?**
> To find a USB NIC driver and firmware name for a chipset, you can search online for *linuxwireless.org <chipset>.*
**What other command can you run to find the drivers being used for Wi-Fi controllers regardless of if they're PCI or USB based?**
The other command you can run to find the drivers being used for Wi-Fi controllers regardless of if they're PCI or USB based is:
```bash
$ lshw | grep -i driver | perl -pe 's/^.*driver=(\S+).*$/$1/g;' | sort -u
```
# IEEE 802.11
**What are the two kernel configuration options you should have activated at least?**
The two kernel configuration options you should have activated at least are:
1. cfg80211 (CONFIG_CFG80211).
2. mac80211 (CONFIG_MAC80211).
**What two kernel configuration options might some wireless drivers need activated and why?**
Two kernel configuration options that some wireless drivers might need activated are *Minstrel and its 802.11n support because it's a rate control algorithm.*
**What do you need to do if the wireless configuration API (CONFIG_CFG80211) is built into the kernel (`<*>`) instead of as a module (`<M>`) and why?**
If the wireless configuration API (CONFIG_CFG80211) is built into the kernel (`<*>`) instead of as a module (`<M>`), you need to *set CONFIG_CFG80211=m or add `regulatory.db` and `regulatory.db.p7s` from the `net-wireless/wireless-regdb` package to CONFIG_EXTRA_FIRMWARE because the driver won't be able to load `regulatory.db` from `/lib/firmware`, leading to broken regulatory domain support.*
# WEXT
**What kernel configuration option will allow support for old wireless-tools and `iwconfig`?**
The kernel configuration option that allows support for old-wireless tools and `iwconfig` is *cfg80211 wireless extensions compatibility.*
# Device drivers
**The recommendation is to build drivers as ...**
The recommendation is to build drivers as *modules.*
**What kernel configuration option should you activate if the wireless network you want to connect to uses WPA or WPA2 encryption?**
If the wireless network you want to connect to uses WPA or WPA2 encryption, the kernel configuration option you should activate is *Ciphers: AES.*
**How does the firmware need to be built if the driver is built into the kernel (`<*>`) instead of as a module (`<M>`)?**
If the driver is built into the kernel (`<*>`) instead of as a module (`<M>`), the firmware needs to be built *into the kernel as well.*
**Don't forget to do what after changing the kernel's configuration?**
After changing the kernel's configuration, don't forget to *rebuild it.*
# LED support
**How do you enable LED triggers for different packet receive/transmit events?**
To enable LED triggers for different packet receive/transmit events, *compile the kernel with the following options:*
```kernel
Device Drivers --->
[*] LED Support --->
<*> LED Class Support
[*] Networking support --->
[*] Wireless --->
[*] Enable LED triggers
```
# Firmware
**What do some chipsets require in addition to the appropriate kernel driver?**
In addition to the appropriate kernel driver, some chipsets require *firmware.*
> [!todo]
> This section lists all of the different Wi-Fi devices and what packages you should emerge in order to get the firmware for them.
**How do you get the firmware for a Wi-Fi controller if there's no package in the Gentoo repository for it?**
If there's no package in the Gentoo repository for the firmware for a Wi-Fi controller, you can get the firmware by *downloading it manually and placing it in `/lib/firmware`.*
# Network device names
...
# Wireless supplicant
**What needs to be used if a wireless network is set up with WPA or WPA2?**
If a wireless network is set up with WPA or WPA2, *a wireless supplicant like `wpa_supplicant` or `iwd` needs to be used.*
**Where can you go for more information about configuring wireless networking in Gentoo?**
To learn more about configuring wireless networking Gentoo, *go to the Wireless networking chapter in the Gentoo handbook.*
# Testing
**What are the four methods for testing if the Wi-Fi controller is detected after a reboot with the new kernel or after loading the modules?**
The five methods for testing if the Wi-Fi controller is detected after a reboot with the new kernel or after loading the modules are:
1. Using sysfs.
2. Using the `ip` command.
3. Using the `ifconfig` config.
4. Using the `iw` command.
5. Using the `dmesg` command.
> [!todo]
> This section shows how to perform the five methods for testing if the Wi-Fi controller is detected.
# Find missing firmware
**What will the kernel attempt to do at system boot?**
At system boot, the kernel will attempt to *probe firmware as appropriate for each card.*
> **How can you discover the firmware that the kernel is probing?**
> You can discover the firmware that the kernel is probing *by searching the output of `dmesg` (or `journalctl` for systemd) from the current boot.*
> [!example] Example of discovering what firmware the kernel is probing with `journalctl`
> ```sh
> $ journalctl -b 0 --dmesg | grep -i firmware
> Oct 05 14:51:09 maffbook kernel: Spectre V2 : Enabling Restricted Speculation for firmware calls
> Oct 05 14:51:09 maffbook kernel: ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
> Oct 05 14:51:09 maffbook kernel: sgx: [Firmware Bug]: Unable to map EPC section to online node. Fallback to the NUMA node 0.
> Oct 05 14:51:09 maffbook kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
> Oct 05 14:51:09 maffbook kernel: ACPI: video: [Firmware Bug]: ACPI(PEGP) defines _DOD but not _DOS
> Oct 05 14:51:09 maffbook kernel: iwlwifi 0000:00:14.3: loaded firmware version 46.6b541b68.0 9000-pu-b0-jf-b0-46.ucode op_mode iwlmvm
> Oct 05 14:51:09 maffbook kernel: psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
> Oct 05 14:51:09 maffbook kernel: Bluetooth: hci0: Firmware revision 0.1 build 6 week 12 2021
> Oct 06 17:26:26 maffbook kernel: Bluetooth: hci0: Minimum firmware build 1 week 10 2014
> Oct 06 17:26:26 maffbook kernel: Bluetooth: hci0: Found device firmware: intel/ibt-17-16-1.sfi
> Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Waiting for firmware download to complete
> Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Firmware loaded in 1484394 usecs
> Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Firmware revision 0.1 build 6 week 12 2021
> ```
# Wi-Fi adapter cannot find and connect to a 5 GHz network
**What might some networks with WPA or WPA2 be using which can prevent some computers from connecting to them?**
Some networks with WPA or WPA2 might be using *the legacy TKIP protocol instead of AES*, which can prevent some computers from connecting to them.
> **How do you ensure that `wpa_supplicant` can connect to networks which use the TKIP protocol?**
> To ensure that `wpa_supplicant` can connect to networks which use the TKIP protocol, *emerge `net-wireless/wpa_supplicant` with the `tkip` USE flag and reboot.*