commit | 395a0ba5ebb98ae03add5217aace62c6ffee0a49 | [log] [tgz] |
---|---|---|
author | Hunter Freyer <hjfreyer@fuchsia.infra.roller.google.com> | Mon Oct 21 21:01:25 2024 +0000 |
committer | CQ Bot <fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Oct 21 21:01:25 2024 +0000 |
tree | b5ef6e583bacc6fb1db3fe29ff6c2fe2c7a5bfdf | |
parent | 7bc6fb7ca816478605cec502acd1a3901fe2a8ec [diff] |
[roll] Roll third_party/fuchsia-infra-bazel-rules [versioning] Move TARGET_API_LEVEL to 24 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia-infra-bazel-rules/+/1142472 Original-Revision: 83fa55cba6fcd6e7b1dd64ebb4ae25beba443412 Roller-URL: https://cr-buildbucket.appspot.com/build/8733435524046558737 CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Ic9de84a0f1d66ca6c940b6faddb2a456a715caaa Reviewed-on: https://fuchsia-review.googlesource.com/c/sdk-samples/getting-started/+/1141988 Commit-Queue: GI Roller <global-integration-roller@fuchsia-infra.iam.gserviceaccount.com>
This repository contains instructions and source code to build, package and run Fuchsia samples using only the Fuchsia SDK.
Clone this SDK samples repository on your host machine. This repository contains the Bazel-based Fuchsia SDK and sample components.
The tasks include:
ffx
commands.Do the following:
Open a terminal.
In the terminal, change to your home directory:
cd
Clone the Fuchsia samples repository:
git clone https://fuchsia.googlesource.com/sdk-samples/getting-started fuchsia-getting-started --recurse-submodules
This git clone
command creates a new directory named fuchsia-getting-started
and clones the content of the SDK samples repository{:.external}.
Go to the new directory:
cd fuchsia-getting-started
Run the bootstrap script to install Bazel and other required dependencies:
scripts/bootstrap.sh
To verify that you can use the ffx
tool in your environment, run the following command:
tools/ffx sdk version
This command prints output similar to the following:
$ tools/ffx sdk version 21.20240623.2.1
At this point, you only need to confirm that you can run ffx
commands without error.
Note: The output above shows the version 21.20240623.2.1
, which indicates that this SDK was built and published on June 23, 2024.
Once you have downloaded the toolchain, you will be able to build products. Here, you will need a vim3 plugged into your computer to build and flash a product bundle to it. Remote desktops may not allow for flashing to vim3.
Make sure the device is in fastboot:
tools/ffx target reboot -b
Check for the target:
tools/ffx target list
This should print an output similar to the following
NAME SERIAL TYPE STATE ADDRS/IP RCS fuchsia-c863-1474-66db c863147466db Unknown Fastboot [fe80::37a4:2a98:628b:3687%eth0, Y 172.16.243.55]
Flash and build the reference product:
tools/bazel run products/reference:reference.vim3.flash
This should print an output similar to the following:
WARNING: Build option --run_under has changed, discarding analysis cache (this can be expensive, see https://bazel.build/advanced/performance/iteration-speed). INFO: Analyzed target //products/reference:reference.vim3.flash (0 packages loaded, 7093 targets configured). INFO: Found 1 target... Target //products/reference:reference.vim3.flash up-to-date: bazel-bin/products/reference/reference.vim3.flash.sh bazel-bin/products/reference/reference.vim3.flash_workflow.json INFO: Elapsed time: 0.273s, Critical Path: 0.03s INFO: 1 process: 1 internal. INFO: Build completed successfully, 1 total action INFO: Running command line: bazel-bin/products/reference/_reference.vim3.flash.sh Running task: reference.vim3.flash (step 1/1) No `--authorized-keys` flag, using /home/$user/.ssh/fuchsia_authorized_keys Preparing to upload /home/$user/.cache/bazel/_bazel_$user/98f4d94884500639d789df9d78c04f15/execroot/__main__/bazel-out/k8-fastbuild/bin/products/reference/reference.vim3_out/partitions/u-boot.bin.unsigned Uploading... Done [0.08s] Partitioning bootloader... Done [0.18s] Rebooting to bootloader... Done [4.53s] Preparing to upload /home/$user/.cache/bazel/_bazel_$user/98f4d94884500639d789df9d78c04f15/execroot/__main__/bazel-out/k8-fastbuild/bin/products/reference/reference.vim3_out/system_a/fuchsia.zbi Uploading... Done [0.67s] Partitioning zircon_a... Done [0.61s] Preparing to upload /home/$user/.cache/bazel/_bazel_$user/98f4d94884500639d789df9d78c04f15/execroot/__main__/bazel-out/k8-fastbuild/bin/products/reference/reference.vim3_out/system_a/fuchsia.vbmeta Uploading... Done [0.00s] Partitioning vbmeta_a... Done [0.03s] Preparing to upload /home/$user/.cache/bazel/_bazel_$user/98f4d94884500639d789df9d78c04f15/execroot/__main__/bazel-out/k8-fastbuild/bin/products/reference/reference.vim3_out/system_a/fxfs.sparse.blk Uploading... large file, please wait... Done [3.13s] Partitioning fvm... Done [2.42s] Preparing to stage /home/$user/.ssh/fuchsia_authorized_keys Uploading... Done [0.00s] Sending command "add-staged-bootloader-file ssh.authorized_keys" Continuing to boot - this could take awhile Done. Total Time [11.82s]
Now you have successfully flashed the reference product to a vim3. You can use the command below to ssh into the target:
tools/ffx target ssh
Use the command below to find more commands you can use with your flashed target:
tools/ffx target help
Something else you can do is boot the product in an emulator
Build and start the emulator
tools/bazel run products/reference:reference.x64.emu
Optionally, if you want to ssh into the emulator instead of using the terminal window, use the following command.
tools/ffx target ssh
A session is a component. Each Fuchsia product builds its user experience within a session
Once your emulator is running, you can see that a terminal window pops up on the screen that shows a fuchsia colored square in the middle. This is part of the session that automatically runs when you run the product. Run the following command to see the logs of your session.
tools/ffx log --filter reference_session
This should print an output similar to the following:
[01546.453857][session:session] INFO: Welcome to Fuchsia! [01546.453896][session:session] INFO: Develop on Fuchsia!
Optionally, to stop the session, run the following command
tools/ffx session stop
You will see that the terminal window no longer has the colored square.
Now, feel free to add your own message to this binary that the session's component runs and change the color of the square in these following files, respectively.
src/reference_session:main.cc
src/reference_session:graphical_window.cc
Close the terminal window and rerun the emulator to test your changes.