docs/telemetry_extension/fingerprint_diag.md
Provide the instructions on the fingerprint diagnostic routines on ChromeOS devices.
For an overview of the Telemetry Extension platform, please visit our main documentation.
[TOC]
This section provides the instructions on how to configure fingerprint diagnostic routines parameters with or without Boxster.
NOTE: It is your responsibility to make sure the parameters you fill in are correct. Neither cros-config nor Boxster validate that value.
config.star
hw_topo.create_fingerprint.fingerprint_diag and fill in all the
fingerprint parameters. Those parameters should be
found in the fingerprint module spec.generated/config.jsonproto and
sw_build_config/platform/chromeos-config/generated/project-config.json by
running: ./config/bin/gen_config config.star.The configuration in config.star would look like this:
// config.star
_FINGERPRINT = hw_topo.create_fingerprint(
"FINGERPRINT",
"Default fingerprint",
location = hw_topo.fp_loc.KEYBOARD_BOTTOM_LEFT,
board = "fake_fingerprint_board",
fingerprint_diag = hw_topo.create_fingerprint_diag(
routine_enable = True,
max_pixel_dev = 5,
max_dead_pixels = 5,
pixel_median = hw_topo.create_fingerprint_diag_pixel_median(
cb_type1_lower = 1,
cb_type1_upper = 2,
cb_type2_lower = 3,
cb_type2_upper = 4,
icb_type1_lower = 5,
icb_type1_upper = 6,
icb_type2_lower = 7,
icb_type2_upper = 8,
),
num_detect_zone = 2,
detect_zones = [hw_topo.create_fingerprint_diag_detect_zone(
x1 = 10,
y1 = 20,
x2 = 30,
y2 = 40,
), hw_topo.create_fingerprint_diag_detect_zone(
x1 = 50,
y1 = 60,
x2 = 70,
y2 = 80,
)],
max_dead_pixels_in_detect_zone = 0,
max_reset_pixel_dev = 5,
max_error_reset_pixels = 5,
),
)
model.yaml
cros-healthd section under the config.routines section under cros-healthd section.fingerprint-diag under routines section.fingerprint-diag section.An example model.yaml could look somewhat like this:
xxx-config:
...
cros-healthd:
routines:
fingerprint-diag:
routine-enable: True
max-dead-pixels: 10
max-dead-pixels-in-detect-zone: 0
max-pixel-dev: 25
num-detect-zone: 2
max-error-reset-pixels: 5
max-reset-pixel-dev: 55
pixel-median:
cb-type1-lower: 180
cb-type1-upper: 220
cb-type2-lower: 80
cb-type2-upper: 120
icb-type1-lower: 15
icb-type1-upper: 70
icb-type2-lower: 145
icb-type2-upper: 200
detect-zones: [
{x1: 20, y1: 16, x2: 27, y2: 23},
{x1: 76, y1: 16, x2: 83, y2: 23},
{x1: 132, y1: 16, x2: 139, y2: 23},
{x1: 20, y1: 56, x2: 27, y2: 63},
{x1: 76, y1: 56, x2: 83, y2: 63},
{x1: 132, y1: 56, x2: 139, y2: 63},
{x1: 20, y1: 88, x2: 27, y2: 95},
{x1: 76, y1: 88, x2: 83, y2: 95},
{x1: 132, y1: 88, x2: 139, y2: 95},
{x1: 20, y1: 128, x2: 27, y2: 135},
{x1: 76, y1: 128, x2: 83, y2: 135},
{x1: 132, y1: 128, x2: 139, y2: 135}
]
...
| Attribute | Type | RegEx | Required | Oneof Group | Build-only | Description |
|---|---|---|---|---|---|---|
| detect-zones | array - detect-zones | False | False | Rectangles [x1, y1, x2, y2]. | ||
| max-dead-pixels | integer | True | False | The maximum allowed number of dead pixels on the fingerprint sensor. Minimum value: 0x0. | ||
| max-dead-pixels-in-detect-zone | integer | True | False | The maximum allowed number of dead pixels in the detection zone. Minimum value: 0x0. | ||
| max-error-reset-pixels | integer | True | False | The maximum allowed number of error pixels when doing the reset test on the fingerprint sensor. Minimum value: 0x0. | ||
| max-pixel-dev | integer | True | False | The maximum deviation from the median for a pixel. Minimum value: 0x0. | ||
| max-reset-pixel-dev | integer | True | False | The maximum deviation from the median for a pixel when doing the reset test. Minimum value: 0x0. | ||
| num-detect-zone | integer | True | False | The number of detect zone. Minimum value: 0x0. | ||
| pixel-median | pixel-median | True | False | Range constraints of the pixel median value of the checkerboards. | ||
| routine-enable | boolean | True | False | Enable fingerprint diagnostic routine or not. |
| Attribute | Type | RegEx | Required | Oneof Group | Build-only | Description |
|---|---|---|---|---|---|---|
| x1 | integer | True | False | x1 should be smaller than x2. Minimum value: 0x0. | ||
| x2 | integer | True | False | x1 should be smaller than x2. Minimum value: 0x0. | ||
| y1 | integer | True | False | y1 should be smaller than y2. Minimum value: 0x0. | ||
| y2 | integer | True | False | y1 should be smaller than y2. Minimum value: 0x0. |
| Attribute | Type | RegEx | Required | Oneof Group | Build-only | Description |
|---|---|---|---|---|---|---|
| cb-type1-lower | integer | True | False | Checkerboard type1 lower bound. Minimum value: 0x0. Maximum value: 0xff. | ||
| cb-type1-upper | integer | True | False | Checkerboard type1 upper bound. Minimum value: 0x0. Maximum value: 0xff. | ||
| cb-type2-lower | integer | True | False | Checkerboard type2 lower bound. Minimum value: 0x0. Maximum value: 0xff. | ||
| cb-type2-upper | integer | True | False | Checkerboard type2 upper bound. Minimum value: 0x0. Maximum value: 0xff. | ||
| icb-type1-lower | integer | True | False | Inverted checkerboard type1 lower bound. Minimum value: 0x0. Maximum value: 0xff. | ||
| icb-type1-upper | integer | True | False | Inverted checkerboard type1 upper bound. Minimum value: 0x0. Maximum value: 0xff. | ||
| icb-type2-lower | integer | True | False | Inverted checkerboard type2 lower bound. Minimum value: 0x0. Maximum value: 0xff. | ||
| icb-type2-upper | integer | True | False | Inverted checkerboard type2 upper bound. Minimum value: 0x0. Maximum value: 0xff. |