Fix format warnings which break the build When trying to roll an updated version of clang these lines starting triggering new warnings which caused the build to fail. We need to explicitly cast this to an int when printing or else clang will complain. The associated roll which exposed this failure is https://fuchsia-review.git.corp.google.com/c/drivers/wlan/intel/iwlwifi/+/878134 Change-Id: I95bedabad01434479e65acd189c97be617130bae Reviewed-on: https://fuchsia-review.googlesource.com/c/drivers/wlan/intel/iwlwifi/+/882492 Reviewed-by: Zhiyi Chen <zhiyichen@google.com> Commit-Queue: Chase Latta <chaselatta@google.com>
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.
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 \ --args='dev_bootfs_labels=["//products/kernel_cmdline:devmgr.enable-ephemeral--true"]' fx --dir=out/oot-qemu/ build :default sdk sdk:driver
git submodule update --recursive --init
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
Run the script that fetches and installs the Bazel binary in //tools/bazel:
scripts/bootstrap.sh
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/platform-bus.cm" \
--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 fuchsia.com -r localtree
git -C third_party/sdk-integration fetch origin main git -C third_party/sdk-integration checkout FETCH_HEAD
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.
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