The Handbook

    Theme
    • Guides
        • Check a system before installing FreeBSD
        • Orient a Linux administrator on FreeBSD
        • Supported FreeBSD releases
        • Choose a FreeBSD documentation and support channel
        • Move files safely without GNU mv -t
        • Update, upgrade, or update packages?
        • Upgrade 14.4 or 15.0 to FreeBSD 15.1
        • Choose packages, ports, or poudriere
        • Choose the quarterly or latest package branch
        • Choose a FreeBSD download or package mirror
        • Make a system setting persistent
        • Configure locale, keyboard, and time zone
        • Configure a serial console for recovery
        • Choose a custom kernel, module, or loader setting
        • Run a Linux binary with the compatibility layer
        • Check desktop and laptop hardware before installation
        • Choose and check a graphics driver
        • Choose Xorg or Wayland
        • Build a maintainable desktop baseline
        • Install and check a desktop browser
        • Check laptop Wi-Fi, power, and suspend
        • Check multimedia readiness
        • Choose and configure a printing stack
        • Run Windows applications with Wine
        • Snapshot and replicate a ZFS dataset
        • Choose a filesystem and storage layout
        • Operate ZFS without losing the recovery path
        • Restore files from a ZFS snapshot
        • Read ZFS pool health and run a scrub
        • Replace a failed device in a ZFS mirror
        • Replicate a ZFS dataset over SSH
        • Change PF safely on a remote host
        • Configure a narrow WireGuard tunnel
        • Plan a FreeBSD home server
        • Choose a mail server or an outgoing relay
        • Publish a network service safely
        • Choose a jail network model
        • Choose native jails or a jail manager
        • Choose a jail or a bhyve virtual machine
        • Establish a FreeBSD security baseline
        • Choose a MAC policy
        • Audit security-relevant activity
        • Start a DTrace performance investigation
    • Integrations
        • Create a first jail with Bastille
        • Compare jail managers and OCI tooling
        • Publish a Bastille service through PF
        • Mount a ZFS dataset in a Bastille jail
        • Update and upgrade Bastille jails
        • Back up and restore a Bastille jail
        • Prepare bhyve and vm-bhyve
        • Choose NFS or Samba for file sharing
        • Choose ZFS backup automation
        • Operate a signed poudriere repository
        • Manage FreeBSD configuration with Ansible or Salt
        • Run Motion with webcamd on FreeBSD
        • Design a reverse proxy, certificates, and monitoring
    • FAQ
      • Troubleshooting
          • Recover an interrupted freebsd-update run
          • Resolve a package repository or ABI mismatch
          • Diagnose the FreeBSD boot path
          • Recover with a ZFS boot environment
          • Diagnose DNS, routing, and firewall paths
          • Diagnose network mbuf exhaustion
          • Bind a service to a low port without running it as root
          • Diagnose audio output or input
          • Diagnose webcamd, cuse, and a webcam
          • Fix USB device permissions without opening every device
      • About this handbook
      • Synopsis
      • Identify the wireless device and driver
      • Separate association from IP configuration
      • Inspect power state without tuning it
      • Test suspend manually first
      • Enable lid behavior only after repeated success
      • Qualify the result
      • Primary references

      Check laptop Wi-Fi, power, and suspend

      Last reviewed
      13 August 2026
      Applies to
      15.1-RELEASE, 15.0-RELEASE, 14.4-RELEASE

      Synopsis #

      Laptop suitability depends on behavior, not merely on a successful boot. Wireless attachment, association, throughput, suspend, resume, graphics restoration, battery reporting, and lid behavior are separate tests. A chipset listed in release hardware notes may still have feature or performance limits that matter to the intended workload.

      Complete the hardware preflight and configure the correct graphics driver before treating suspend results as final. Kernel modesetting is part of the documented suspend/resume path for modern graphics with the vt console.

      Identify the wireless device and driver #

      Record the PCI network devices, available interfaces, and wireless parent devices:

      $ pciconf -lv | grep -A1 -B3 network
      $ ifconfig -l
      $ sysctl net.wlan.devices
      

      The text before @ in pciconf output is the attached driver. Compare the numeric device identifiers and driver manual page with the hardware notes for the installed release. Do not infer support from another chipset sold under the same laptop model.

      If pciconf lists the wireless controller but net.wlan.devices is empty, inspect boot messages and loaded modules:

      $ dmesg | grep -Ei 'wlan|wifi|802\.11|firmware|iwl|iwm|iwx|ath|rtw|rtwn'
      $ kldstat
      

      Resolve missing driver or firmware attachment before changing WPA configuration.

      Separate association from IP configuration #

      List the configured wireless interface and its status:

      $ ifconfig wlan0
      

      If wlan0 does not exist, follow the current FreeBSD network chapter for the actual parent driver. The wlans_ setting is driver-specific; copying an interface name from another machine will not attach the correct device.

      After the interface exists, scan from a permitted test location:

      # ifconfig wlan0 up list scan
      

      Test in this order:

      1. The intended access point appears on its actual band and channel.
      2. wpa_supplicant associates using the intended security mode.
      3. DHCP or static addressing completes.
      4. The default route and DNS work.
      5. Sustained traffic is adequate for the intended workload.

      An IP failure after successful association is not a radio-driver failure. An absent 5 GHz or 6 GHz network may reflect channel, regulatory-domain, or driver capability rather than a wrong password.

      Set the correct country and regulatory domain according to the official network procedure. This is a legal and radio-operational setting, not a throughput tuning shortcut.

      Inspect power state without tuning it #

      Check AC power, battery information, thermal state, and the current power daemon status:

      $ sysctl hw.acpi.acline
      $ acpiconf -i 0
      $ sysctl dev.cpu | grep temperature
      # service powerd status
      

      Some systems expose temperature under different device trees, so an empty temperature result does not establish a sensor failure. Record idle behavior on AC and battery before adding power tunables.

      Do not copy graphics power-management settings from another GPU generation. A lower reported idle number is not useful if the display, external connectors, or resume becomes unreliable.

      Test suspend manually first #

      List sleep states reported by ACPI:

      $ sysctl hw.acpi.supported_sleep_state
      

      FreeBSD does not support S4 hibernation. If S3 appears, save work, stop time-sensitive operations, and arrange for a forced power cycle to be recoverable. Test from a local console before relying on remote access:

      # acpiconf -s 3
      

      After resume, verify more than the screen:

      $ date
      $ ifconfig wlan0
      $ cat /dev/sndstat
      $ dmesg | tail -100
      

      Also test keyboard, touchpad, audio playback and recording, external displays, storage, and USB devices. Repeat the cycle on AC power and battery. A single successful resume is useful evidence, not a reliability result.

      Enable lid behavior only after repeated success #

      Do not set hw.acpi.lid_switch_state to S3 until manual suspend and resume work repeatedly. Otherwise closing the lid can turn a diagnostic problem into an automatic failure on every use.

      When manual tests are successful, follow the current FreeBSD power-management chapter to place the documented lid setting in /etc/sysctl.conf. The persistent settings guide explains why a runtime sysctl belongs there.

      Keep a record of the firmware version, FreeBSD release, graphics and wireless packages or modules, and every device that fails after resume. A resume failure after a release or package upgrade should be compared with that last known-working record.

      Qualify the result #

      Classify the laptop for the actual use case:

      • Ready: required bands, authentication, throughput, battery reporting, and repeated suspend/resume work.
      • Ready with a limitation: the limitation is explicit and has an acceptable operational workaround, such as wired networking at a dock.
      • Not ready: a required component lacks a maintained driver or resume is unreliable enough to risk work.
      • Untested: evidence is incomplete; do not relabel this as supported.

      Bluetooth, fingerprint readers, cellular modems, docking stations, and vendor hotkeys deserve separate tests. Their presence in the chassis does not follow from wireless or ACPI support.

      Primary references #

      • FreeBSD Handbook: Network
      • FreeBSD Handbook: Wireless networks
      • FreeBSD Handbook: Suspend and resume
      • FreeBSD release hardware notes
      • ifconfig(8)
      • wpa_supplicant(8)
      • acpiconf(8)
      • acpi(4)

      Independent documentation. Not affiliated with or endorsed by the FreeBSD Project or the FreeBSD Foundation.

      Report a bug
      • Synopsis
      • Identify the wireless device and driver
      • Separate association from IP configuration
      • Inspect power state without tuning it
      • Test suspend manually first
      • Enable lid behavior only after repeated success
      • Qualify the result
      • Primary references