Skip to content

Add Recovery Mode docs - #2

Open
gherlein wants to merge 3 commits into
mainfrom
add-recovery
Open

Add Recovery Mode docs#2
gherlein wants to merge 3 commits into
mainfrom
add-recovery

Conversation

@gherlein

@gherlein gherlein commented Mar 4, 2026

Copy link
Copy Markdown
Contributor
  • interim commit
  • interim commit

@gherlein
gherlein requested a review from mingjun7 March 4, 2026 22:07

**Option A -- BrightAuthor:connected Setup**

During player setup, the provisioning/recovery URL is one of the fields configured in the setup wizard before writing to the SD card.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this is embedded inside bacon based on setup type and not customizable by customers.


The `ru` value in the registry can be overridden using DHCP Option 43, meaning that with properly configured network infrastructure, players can set themselves up and begin playing content without manual on-site configuration. This is the preferred method for large deployments since it applies to all players on the network segment without touching each device.

The recovery URL in the DHCP Option 43 payload is prepended with `U` + the ASCII character representing the URL's length. For example, if the URL is 64 characters long, the value would be prepended with `U@` (where `@` is decimal 64 in ASCII).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not aware of this prefix requirement. Is this documented somewhere? Maybe handled in OS?


When a BrightSign player boots and obtains an IP address, it checks for a recovery URL (`ru`) using this priority order:

1. **DHCP Option 43** -- if a recovery URL is found via DHCP Option 43, it overrides any registry value for `ru` until the end of the DHCP lease

@mingjun7 mingjun7 Mar 4, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: The recovery registry keys(ru, recurl etc. See https://ikb.brightsign.biz/os/brightsign-network-recovery#recovery-url-from-registry-keys) are checked by OS before loading default autorun. Same as the recovery url set via DHCP.

If for some reason the DHCP config was not delivered in the initial boot, DA also checks the recovery url set in OS's network settings, but not the registry key.

The RecoveryMode is also a header that OS handles in the logic of network recovery with registry keys. For the requests DA made, it only adds recoverymode as "default-autorun" in option43 to differentiate that the request is made by DA.

When a BrightSign player boots and obtains an IP address, it checks for a recovery URL (`ru`) using this priority order:

1. **DHCP Option 43** -- if a recovery URL is found via DHCP Option 43, it overrides any registry value for `ru` until the end of the DHCP lease
2. **Registry value** -- if no DHCP Option 43 RU is found, the `ru` value stored in the registry is used

@mingjun7 mingjun7 Mar 4, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With what the above mentioned, it means that the registry recovery values and recovery URL in network config are checked first. Then it hands over to default autorun to start with the following:


## Recovery Modes

There are three recovery modes, all of which hit the same `ru` endpoint. The modes are distinguished by the `recoverymode` header value the player sends in its HTTP GET request, which tells your request handler server exactly what situation it's dealing with.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The recoverymode header is something that OS handles. DA only add recoverymode as default-autorun in option 43 mode.


### Minimal HTTP Handler

Your recovery server needs to handle HTTP GET requests and inspect the `recoverymode` header to determine the appropriate response:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If default autorun is running, the recoverymode header is only send in DHCP option 43 mode.

| `serial` | Player serial number |
| `model` | Player model (e.g., `XT2145`) |
| `version` | BrightSign OS version |
| `storagestatus` | Comma-separated status of each storage device (USB, SD, SD2, SSD) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The checking orders are "USB1:/","SD:/","SD2:/","SSD:/". However, recently OS requested to add FLASH:/ for certain models. So the latest implementation is OS decides the list of storage devices.


| Header | Purpose |
|--------|---------|
| `Retry-After` | Number of seconds until next periodic check-in (default: 7200) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Default autorun doesn't use the Retry-After header. Probably used in the OS recovery call.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants