| # Onboarding NPIs to tlBMC |
| |
| go/tlbmc-onboarding-npis |
| |
| <!--* |
| # Document freshness: For more information, see go/fresh-source. |
| freshness: { owner: 'tlbmc-dev' reviewed: '2025-10-13' } |
| *--> |
| |
| This document describes how to onboard an NPI to different modules of tlBMC. |
| Since tlBMC is divided into several modules(go/composable-tlbmc), each module |
| can be enabled and configured independently. |
| |
| [TOC] |
| |
| ## Enable tlBMC with default modules |
| |
| Developers can see the default config in "general config" section |
| [here](http://google3/third_party/milotic/external/cc/tlbmc/central_config/tlbmc_config_bundle.textproto) |
| |
| For platform specific config, please refer to "platform_to_config" and find the |
| corresponding platform name key. |
| |
| To build image with tlbmc enabled, add `DISTRO_FEATURES:append = " tlbmc"` to |
| `/path/to/your/machine.conf`. |
| |
| After installing such image, developer can check if tlbmc if enabled by |
| grepping them in journal or by redfish call: |
| |
| ``` |
| root@bmc:~# journalctl -u bmcweb | grep -i tlbmc |
| ... tlbmc enabled: true |
| |
| # OR |
| |
| root@bmc:~# curl localhost/redfish/tlbmc |
| { |
| "@odata.id": "/redfish/tlbmc", |
| "AllChassis": { |
| "@odata.id": "/redfish/tlbmc/AllChassis" |
| }, |
| "AllSensors": { |
| "@odata.id": "/redfish/tlbmc/AllSensors" |
| }, |
| "Debug": { |
| "@odata.id": "/redfish/tlbmc/Debug" |
| }, |
| "Metrics": { |
| "@odata.id": "/redfish/tlbmc/Metrics" |
| }, |
| "Name": "tlBMC Root Service" |
| } |
| ``` |
| |
| ## Per-Module Onboarding Guides |
| |
| - [Fru Collector Module](fru_collector_module.md) |
| - [Sensor Collector Module](sensor_collector_module.md) |
| - [Metric Collector Module](metric_collector_module.md) |
| - [Install Module](install_module.md) |
| - [Redfish Rate Limiter Module](redfish_rate_limiter_module.md) |
| |
| ## tlBMC Configuration |
| |
| The tlBMC modules enabled for each platform are controlled by |
| `tlbmc_config_bundle.textproto`. Developers can see the default config in |
| "general config" section |
| [here](https://gbmc-private.git.corp.google.com/meta-google-private/+/refs/heads/master/recipes-google/tlbmc/files/tlbmc_config_bundle.textproto) |
| |
| For platform specific config, please refer to "platform_to_config" and find the |
| corresponding platform name key. If a platform is not listed, it will use |
| the "general_config". Each module must be enabled in this file to function. |