| commit | d995e535f50cf4c75f2ad60acfb13a5eaab93e51 | [log] [tgz] |
|---|---|---|
| author | Abseil Team <absl-team@fuchsia.infra.roller.fuchsia.infra.roller.google.com> | Fri May 30 05:17:35 2025 -0700 |
| committer | CQ Bot <fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri May 30 05:17:35 2025 -0700 |
| tree | f04566f331d89f1663aaa8135d1242d78afe9835 | |
| parent | b7a0ae3583c0f1d349e551398863d51d204301ca [diff] |
[roll] Roll third_party/fuchsia-infra-bazel-rules [roll] Roll third_party/googletest Use the provided length in ConditionalPrintAsText While ConditionalPrintAsText gets a char pointer and the string length, it used to only pass the pointer to operator<<. That does not work for strings that are not zero terminated, because operator<< has to resort to strlen, which happily overflows the string buffer. This CL wraps the char pointer and the length in a string_view and passes that to operator<< to fix that issue. PiperOrigin-RevId: 765137769 Original-Revision: 7427a6b5e3e04f895ecad5c647c94629fb2acdc0 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia-infra-bazel-rules/+/1289174 Original-Revision: 14294290c54d7e3130290dd068866c59ebe66d8c Roller-URL: https://cr-buildbucket.appspot.com/build/8713447015501180705 CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I9bfa53ff9e231f0e03bd73477a3f8bd12f0e842f Reviewed-on: https://fuchsia-review.googlesource.com/c/drivers/wlan/intel/iwlwifi/+/1289177 Commit-Queue: GI Roller <global-integration-roller@fuchsia-infra.iam.gserviceaccount.com>
This repository contains the source code to build, package and run the Intel Wifi driver for Fuchsia using the Fuchsia Bazel SDK.
The prebuilts of this driver is uploaded to CIPD at this location.
https://chrome-infra-packages.appspot.com/p/fuchsia/drivers/wlan/intel/iwlwifi
git clone https://fuchsia.googlesource.com/drivers/wlan/intel/iwlwifi --recurse-submodules
cd iwlwifi
scripts/bootstrap.sh
To prepare your development environment using NUC hardware, please follow the instruction in the below doc.
Once you have setup your environment, the Intel driver can be built using the following command.
./tools/bazel build third_party/iwlwifi/platform:iwlwifi_pkg
When finished successfully, it prints output logs similar to what's shown below:
$ ./tools/bazel build third_party/iwlwifi/platform:iwlwifi_pkg ... INFO: Elapsed time: 0.464s, Critical Path: 0.11s INFO: 11 processes: 11 internal. INFO: Build completed successfully, 11 total actions
ffx driver disable fuchsia-pkg://fuchsia.com/iwlwifi#meta/iwlwifi.cm
The command output would look something like this:
$ tools/ffx driver disable fuchsia-pkg://fuchsia.com/iwlwifi#meta/iwlwifi.cm Disabling fuchsia-pkg://fuchsia.com/iwlwifi#meta/iwlwifi.cm and restarting driver hosts with rematching enabled. Successfully restarted and rematching 1 driver hosts with the driver.
tools/bazel run third_party/iwlwifi/platform:iwlwifi_pkg.iwlwifi_component
The command output would look something like this:
$ tools/bazel run third_party/iwlwifi/platform:iwlwifi_pkg.iwlwifi_component
...
Publishing packages: [PosixPath('third_party/iwlwifi/platform/iwlwifi.far')]
Published 1 packages
Running task: iwlwifi_pkg.iwlwifi_component.run_only (step 3/4)
Registering fuchsia-pkg://bazel.iwlwifi.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm, restarting driver hosts, and attempting to bind to unbound nodes
Successfully bound:
Node 'dev.sys.platform.pt.PCI0.bus.01_00.0.01_00.0', Driver 'fuchsia-pkg://bazel.iwlwifi.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm'.
Running task: iwlwifi_pkg.publish_anonymous.delete_repo (step 4/4)
$ tools/ffx driver list --loaded | grep wifi fuchsia-pkg://bazel.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm
Notice the iwlwifi driver toward the bottom of the loaded drivers list.
$ tools/ffx component show iwlwifi.cm
Moniker: /bootstrap/full-pkg-drivers:dev.sys.platform.pt.PCI0.bus.01_00.0_.pci-01_00.0-fidl
URL: fuchsia-pkg://bazel.iwlwifi.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm
Environment: full-pkg-driver-env
Instance ID: None
Type: CML component
Component State: Resolved
Resolved URL: fuchsia-pkg://bazel.iwlwifi.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm
Namespace Capabilities: /svc/fuchsia.logger.LogSink
/svc/fuchsia.hardware.pci.Service
Exposed Capabilities: fuchsia.wlan.softmac.Service
fuchsia.wlan.phyimpl.Service
diagnostics
Merkle root: 98384e7ced5c66b0fbf5f725abb43e9e9b57594e694f9167c032cceb4b009b80
Execution State: Running
Start reason: Instance is in a single_run collection
Outgoing Capabilities: diagnostics
fuchsia.wlan.phyimpl.Service
Runtime: Unknown
fx shell wlan-dev scan
A successful scan output would look something like this.
fuchsia~$ fx shell wlan-dev scan
Warning: this tool may cause state mismatches between layers of the WLAN
subsystem. It is intended for use by WLAN developers only. Please reach out
to the WLAN team if your use case relies on it.
Scan(ClientScanCmd { iface_id: 0, scan_type: Passive })
BSSID dBm Chan Protection Compatible SSID
8c:3b:ad:ab:91:4d -86 157V WPA2 PSK Y
60:32:b1:6a:e6:53 -72 9+ WPA2 PSK Y
62:8c:b5:39:0b:fb -85 153V WPA2 PSK Y
tools/ffx emu stop --all
tools/bazel run @fuchsia_products//:minimal.x64.emu -- --headless
tools/bazel test third_party/iwlwifi/test:iwlwifi_test_pkg
Boot your NUC in Fastboot mode (or boot it normally to run Fuchsia).
Identify your NUC’s device name, for example:
$ ffx target list NAME SERIAL TYPE STATE fuchsia-5254-0063-5e7a <unknown> Unknown Unknown
tools/bazel run @fuchsia_products//:core.x64.flash -- --target <name_from_target_list>
Replace <name_from_target_list> with the target name (in this case, fuchsia-5254-0063-5e7a).
tools/bazel test --cache_test_results=no third_party/iwlwifi/test:iwlwifi_test_pkg
Execute the following command to run the driver tests with ASAN enabled.
tools/bazel test --features=asan --cache_test_results=no third_party/iwlwifi/test:iwlwifi_test_pkg
Once you're ready to send your changes for code review, run:
git push origin HEAD:refs/for/main
git will then print the URL of your pending CL.