commit | c0c2f711d669788d2d4e33c544b003c5a8e0ba8c | [log] [tgz] |
---|---|---|
author | Renato Mangini Dias <mangini@google.com> | Tue Feb 08 19:02:07 2022 +0000 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Feb 08 19:02:07 2022 +0000 |
tree | b3e196274be439a571ff57e9d511c396de4f79bc | |
parent | ec66ea9704dcc08e1af5cc7769a06b5f9370767e [diff] |
Update to new bazel rules - Update WORKSPACE - Remove sdk-integration and mako - Update instructions and bootstrap/build scripts - Migrate BUILD.bazel files to switch from _ to . in library names - Migrate BUILD.bazel files to reflect new bind rule names Change-Id: I6db333e50c3e9e0799cf12d2c2cc9f44407ee899 Reviewed-on: https://fuchsia-review.googlesource.com/c/drivers/wlan/intel/iwlwifi/+/642663 Fuchsia-Auto-Submit: Renato Mangini Dias <mangini@google.com> Reviewed-by: Sakthi Vignesh Radhakrishnan <rsakthi@google.com> Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
This repository contains instructions and source code to build, package and run the Intel Wifi driver for Fuchsia using the Fuchsia Bazel SDK.
You will need the SDK with the driver development tools and libraries. Currently this is produced manually in the Fuchsia tree. You can reproduce them with one build for qemu.x64 with the SDK archives:
fx --dir=out/qemu set core.qemu-x64 --args=build_sdk_archives=true \ --args='dev_bootfs_labels=["//products/kernel_cmdline:devmgr.enable-ephemeral--true"]' fx build :default sdk sdk:ddk
And a different build is currently required for creating the product bundle:
fx --dir=out/qemupbm set core.qemu-x64 \ --args='dev_bootfs_labels=["//products/kernel_cmdline:devmgr.enable-ephemeral--true"]' fx build :default sdk
This is not yet a complete nor maintained Bazel integration, and it is not guaranteed to work beyond the samples in this repository. It is also not the final developer experience and should not be mirrored in another repository as it will change quite often until it settles.
scripts/bootstrap.sh \ --sdk-local ~/fuchsia/out/qemu \ --product-bundle-local ~/fuchsia/out/qemupbm
Adjust the paths above accordingly.
Repeat the step above whenever you want to use a new version of the SDK/DDK and emulator images. It is harmless to execute it repeatedly.
tools/ffx emu start --net tap -H
Let the emulator know where are the system packages for on-demand loading:
tools/ffx repository add-from-pm sdk/amber-files tools/ffx target repository register --alias fuchsia.com --repository devhost
TODO(fxbug.dev/92055): the emulator should register the sdk packages automatically. Manual add-from-pm and target repository register should not be needed.
tools/bazel build --config=fuchsia_x64 third_party/iwlwifi/platform:fuchsia_device
This command will build the driver and make it available as a package on a local Fuchsia repository.
tools/ffx repository add-from-pm -r iwlwifi_driver_repo bazel-out/x86_64-fastbuild/bin/third_party/iwlwifi/iwlwifi_driver_repo tools/ffx target repository register -r iwlwifi_driver_repo
TODO(fxbug.dev/92052): ffx does not play nice with the repository created by Bazel, probably because Bazel removes the write permission so that external players don't break the hermeciticy of the build. As a consequence, ffx requires ‘add-from-pm’ and ‘target repository register’ every time a new package is published.
tools/ffx log
Now you are ready to register the driver.
tools/ffx driver register fuchsia-pkg://iwlwifi_driver_repo/iwlwifi#lib/libcore.so