Clone this repo:


  1. 20dc74e [roll] Roll intel-wifi-driver-bazel-sdk-cipd packages to version:12.20230605.0.1 by global-integration-roller · 29 hours ago main
  2. e8142cb [roll] Roll intel-wifi-driver-bazel-sdk-cipd packages to version:12.20230604.3.1 by global-integration-roller · 35 hours ago
  3. 26e3f0b [roll] Roll intel-wifi-driver-bazel-sdk-cipd packages to version:12.20230604.2.1 by global-integration-roller · 2 days ago
  4. 8a7769c [roll] Roll intel-wifi-driver-bazel-sdk-cipd packages to version:12.20230604.0.1 by global-integration-roller · 2 days ago
  5. 045d266 [roll] Roll intel-wifi-driver-bazel-sdk-cipd packages to version:12.20230603.1.1 by global-integration-roller · 3 days ago

Intel Wifi driver

This repository contains instructions and source code to build, package and run the Intel Wifi driver for Fuchsia using the Fuchsia Bazel SDK.

WARNING: Currently this repository uses libraries that are not exported in the SDK, so it will not build directly.

Prepare your environment

Create the SDK and emulator images

By default the Bazel SDK will fetch a specific version of the Fuchsia SDK tools and libraries, but this driver currently uses libraries that are not yet exported in the SDK, so you may need a local Fuchsia tree and some cherry-picked CLs. Contact the owner of this repo if you don't know exactly what you need.

From your cherry-picked Fuchsia tree, you can produce the SDK with the following commands:

cd ~/fuchsia  # adjust accordingly

fx --dir out/oot-qemu set core.qemu-x64 \

fx --dir=out/oot-qemu/ build :default sdk sdk:driver

Bootstrap your development environment

  1. Make sure this repo has the requires submodules:
git submodule update --recursive --init
  1. Since you need to use an SDK built locally to build this repo, set the LOCAL_FUCHSIA_PLATFORM_BUILD environmental variable accordingly, for example:

    export LOCAL_FUCHSIA_PLATFORM_BUILD=~/fuchsia/out/oot-qemu
  2. Run the script that fetches and installs the Bazel binary in //tools/bazel:


Start an emulator

TODO: there is no easy way to use a product bundle produced from a local Fuchsia tree. In the meantime, you may use fx ffx emu from the Fuchsia tree:

cd ~/fuchsia
fx ffx emu start --headless \
     --kernel-args "driver_manager.use_driver_framework_v2=true" \
     --kernel-args "driver_manager.root-driver=fuchsia-boot:///#meta/" \
     --kernel-args "devmgr.enable-ephemeral=true"

Let the emulator know where are the system packages for on-demand loading:

tools/ffx repository add-from-pm ${LOCAL_FUCHSIA_PLATFORM_BUILD}/amber-files -r localtree
tools/ffx target repository register --alias -r localtree

Build and package the driver

  1. Since this repo is not auto rolling to the latest sdk version, manually update sdk-integration version if needed.
git -C third_party/sdk-integration fetch origin main
git -C third_party/sdk-integration checkout FETCH_HEAD
  1. Build and package
tools/bazel run --config=fuchsia_x64 third_party/iwlwifi/platform:iwlwifi_pkg.iwlwifi_component

This command will build the driver and make it available as a package on a local Fuchsia repository and register the driver with the device/emulator.

Run tests

  1. Build and run the tests:
tools/bazel test --config=fuchsia_x64 third_party/iwlwifi/test:iwlwifi_test_pkg

This command will build and run all the tests on the emulator or device. Specific tests can be executed by appending .<test_name> right after the test package, for example:

tools/bazel test --config=fuchsia_x64 third_party/iwlwifi/test:iwlwifi_test_pkg.platform_test