Compare commits

...

1 Commits

Author SHA1 Message Date
6adb029ee6 Copyediting 2024-07-26 16:45:41 +08:00

View File

@ -6,22 +6,22 @@ This article is intended to help with using the `afws_client` command properly.
### What is AFWS
AFWS (ARTIQ FirmWare Service) - a service, that allows building customer tailored firmware and gateware (binaries) on M-Labs's servers,
AFWS (ARTIQ FirmWare Service): a service which allows building customer-tailored firmware and gateware (binaries) on M-Labs's servers
and receive these binaries in ready-to-flash format. Subscription to this service also includes helpdesk support,
and thus is paid on yearly basis (contact sales for prices). It is also typically included when purchasing Carrier (Kasli/Kasli-SoC) for a year,
and thus is paid on a yearly basis (contact sales for prices). It is also typically included when purchasing Carrier (Kasli/Kasli-SoC) for a year,
or one-time when purchasing standalone cards for existing crate. Each variant/carrier requires its own subscription.
### What do I need for obtaining binaries
You'll need to have credentials - username and password, which you can obtain from helpdesk, if you haven't yet.
You'll need to have credentials - username and password, which you can obtain from helpdesk, if you haven't yet.
Don't forget to specify variant (sticker on top of the crate) that you need to obtain binaries for.
### When do I need to update
In most cases there is no need to update the firmware, unless you encountered a bug and the fix was backported to your version.
However, if you: changed the layout of the cards - either moved EEM connections, added or deleted cards;
changed modes/configurations of the cards (e.g. enable/disable SUServo, synchronization, edge counter, SED lanes etc.).
In such cases, these changes need to be authorized through helpdesk.
However, if you changed the layout of the cards (either moved EEM connections, added or removed cards) or
changed modes/configurations of the cards (e.g. enable/disable SUServo, synchronization, edge counter, SED lanes etc.), you also
need to update the firmware. In such cases, the changes need to be authorized through helpdesk.
### How to
@ -32,21 +32,21 @@ afws_client <username> build <afws_directory> <variant>
Where (remove `<` and `>`):
* `<username>` - your username from credentials
* `<afws_directory>` - the directory/folder, into which you wish to save the binaries
* `<variant>` - name of the crate/variant. It's optional if you have only one variant in the account
* `<afws_directory>` - the directory/folder into which you wish to save the binaries
* `<variant>` - name of the crate/variant, optional if you have only one variant for the account
After running this command, it will ask you for the password (the line will remain blank for security reasons).
If everything matches (username and password are correct, specified variant is in your account and not expired),
AFWS will start building the firmware, which takes 10-15 minutes. Sometimes there might be some problems, in which
If everything matches (username and password are correct, specified variant is in your account and not expired),
AFWS will start building the firmware, which takes 10-15 minutes. Sometimes there might be some problems, in which
case don't hesitate to contact helpdesk.
After the build done, the AFWS client will automatically download the binaries into `<afws_directory>`, from which
After the build is done, the AFWS client will automatically download the binaries into `<afws_directory>`, from which
you can flash them into your Carrier.
#### View build logs
You may want to view the build logs (for example, in case of problems with configuration).
For this, add `--log` option after build:
You may want to view the build logs (for example, in case of problems with configuration).
For this, add the `--log` option after `build`:
```shell
afws_client <username> build --log <afws_directory> <variant>
@ -54,9 +54,9 @@ afws_client <username> build --log <afws_directory> <variant>
#### Specify version
By default, AFWS client tries to figure out the installed ARTIQ version. However it works only for Kasli, and not Kasli-SoC.
It also may fail to determine ARTIQ version if you are using AFWS client without ARTIQ installation.
Additionally, you may want to specify version regardless of installed version.
By default, the AFWS client tries to figure out the installed ARTIQ version. However, it works only for Kasli, and not Kasli-SoC.
It may also fail to determine ARTIQ version if you are using the AFWS client without an ARTIQ installation.
Additionally, you may want to specify a version different to the installed version.
In all these cases, you'll need to specify **both** `--major-ver` and `--rev` arguments, so your command will look like this:
```shell
@ -64,18 +64,18 @@ afws_client <username> build --major-ver <MAJOR_VER> --rev <REV> <afws_directory
```
Where:
* `MAJOR_VER` - ARTIQ major version, either `7` (legacy), `8` (current stable),
* `MAJOR_VER` - ARTIQ major version, either `7` (legacy), `8` (current stable),
`9` (current beta) or `10` (experimental with `nac3` compiler)
* `REV` - revision from respective branch and repository - i.e. commit hash. You may obtain it either from:
* [ARTIQ repository](https://github.com/m-labs/artiq) (for Kasli 2.0 and earlier) by
* [ARTIQ repository](https://github.com/m-labs/artiq) (for Kasli 2.0 and earlier) by
[selecting branch](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/viewing-branches-in-your-repository)
and selecting `XXX commits` above list of files. From here, the list of commits in specified branch will appear
and you will be able to choose the commit and press ["Copy full SHA for YYY"](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits#using-the-file-tree)
and selecting `XXX commits` above the list of files. From here, the list of commits in the specified branch will appear
and you will be able to choose the commit and press ["Copy full SHA for YYY"](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits#using-the-file-tree)
button in the right side.
* [ARTIQ on Zynq repository](https://git.m-labs.hk/M-Labs/artiq-zynq) (for Kasli-SoC). In similar way to GitHub,
you can choose branch, commit history and copy SHA1 of the commit.
* [ARTIQ on Zynq repository](https://git.m-labs.hk/M-Labs/artiq-zynq) (for Kasli-SoC). In a similar way to GitHub,
you can choose branch, commit history and copy SHA1 of the commit on Gitea.
The branches currently map as following:
The branches currently map as follows:
* ARTIQ-7 - release-7
* ARTIQ-8 - release-8
* ARTIQ-9 - master
@ -87,21 +87,21 @@ cache (i.e. not rebuilt).
#### Change password
After you received credentials from us, we strongly recommend changing the password as soon as possible via
`afws_client <username> passwd` command. This command will ask you for existing password and new desired password.
After you receive credentials from us, we strongly recommend changing the password as soon as possible via
`afws_client <username> passwd` command. This command will ask you for the existing password and new desired password.
The passwords are stored in a hashed way (i.e. cannot be decrypted back), however it's your responsibility to choose good passwords.
Just keep in mind, that password may contain only alpha-numeric symbols and underscore `[a-zA-Z0-9_]`.
If you cannot login, we may reset your password if you email us at helpdesk.
The passwords are stored in a hashed way (i.e. cannot be decrypted back); however, it's your responsibility to choose good passwords.
Just keep in mind that the password can contain only alphanumeric symbols and underscores: `[a-zA-Z0-9_]`.
If you cannot log in, we can reset your password if you email us at helpdesk.
#### Get variants
You may get variants, which are tied to your account by using `get_variants` command:
You may get a list of the variants tied to your account by using `get_variants` command:
```shell
afws_client <username> get_variants
```
It will ask for password and output the variants and their respective expiry date:
It will ask for a password and output the variants and their respective expiry date:
```text
+-----------+-------------+
@ -114,15 +114,15 @@ It will ask for password and output the variants and their respective expiry dat
#### Get JSONs
Sometimes you may want to view the JSON description, from which AFWS is building the variant. With the JSON, you can
later build the firmware by yourself and/or generate device_db file. The command looks like this (variant
Sometimes you may want to view the JSON description from which AFWS is building the variant. With the JSON, you can
later build the firmware by yourself and/or generate a `device_db` file. The command looks like this (variant
needs to be valid, i.e. not expired and authorized in your account):
```shell
afws_client <username> get_json [-o <OUT>] [-f] <variant>
```
Specify output file `-o <OUT>`, if you want to save it directly to file `<OUT>`, use `-f` if you want to force
Specify output file `-o <OUT>`, if you want to save it directly to file `<OUT>`; use `-f` if you want to force
overwrite. If you do not specify any of these options, you'll get the JSON description directly in stdin (i.e. in your
console/terminal).