mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-27 03:53:33 +08:00
Move PX4 Guide source into /docs (#24490)
* Add vitepress tree * Update existing workflows so they dont trigger on changes in the docs path * Add nojekyll, package.json, LICENCE etc * Add crowdin docs upload/download scripts * Add docs flaw checker workflows * Used docs prefix for docs workflows * Crowdin obvious fixes * ci: docs move to self hosted runner runs on a beefy server for faster builds Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: don't run build action for docs or ci changes Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: update runners Signed-off-by: Ramon Roche <mrpollo@gmail.com> * Add docs/en * Add docs assets and scripts * Fix up editlinks to point to PX4 sources * Download just the translations that are supported * Add translation sources for zh, uk, ko * Update latest tranlsation and uorb graphs * update vitepress to latest --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com> Co-authored-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
co-authored by
Ramon Roche
parent
8e6d2ebe4a
commit
88d623bedb
@@ -0,0 +1,72 @@
|
||||
# PX4 Board Configuration (Kconfig)
|
||||
|
||||
The PX4 Autopilot firmware can be configured at build time to adapt it for specialized applications (fixed-wing, multicopter, rover or more), to enable new and experimental features (such as Cyphal) or to save flash & RAM usage by disabling some drivers and subsystems.
|
||||
This configuration is handled through _Kconfig_, which is the same [configuration system used by NuttX](../hardware/porting_guide_nuttx.md#nuttx-menuconfig-setup).
|
||||
|
||||
The configuration options (often referred as "symbols" by the _kconfig_ language) are defined in `Kconfig` files under the **/src** directory.
|
||||
|
||||
## PX4 Kconfig Symbol Naming Convention
|
||||
|
||||
By convention, symbols for modules/drivers are named based on the module folder path.
|
||||
For example, the symbol for the ADC driver at `src/drivers/adc/board_adc` must be named `DRIVERS_ADC_BOARD_ADC`.
|
||||
|
||||
To add symbols for driver/module specific options, the naming convention is the module name followed by the option name.
|
||||
For example `UAVCAN_V1_GNSS_PUBLISHER` which is an option `GNSS_PUBLISHER` for the `UAVCAN_V1` module.
|
||||
The options have to be guarded behind an `if` statement to ensure that the options are only visible when the module itself is enabled.
|
||||
|
||||
Full example:
|
||||
|
||||
```
|
||||
menuconfig DRIVERS_UAVCAN_V1
|
||||
bool "UAVCANv1"
|
||||
default n
|
||||
---help---
|
||||
Enable support for UAVCANv1
|
||||
|
||||
if DRIVERS_UAVCAN_V1
|
||||
config UAVCAN_V1_GNSS_PUBLISHER
|
||||
bool "GNSS Publisher"
|
||||
default n
|
||||
endif #DRIVERS_UAVCAN_V1
|
||||
```
|
||||
|
||||
:::info
|
||||
Builds will silently ignore any missing or miss-spelled modules in the `*.px4board` configuration file.
|
||||
:::
|
||||
|
||||
## PX4 Kconfig Label Inheritance
|
||||
|
||||
Each PX4 board must have a `default.px4board` configuration and can have an optional `bootloader.px4board configuration`.
|
||||
However you can add also separate configurations under a different label e.g. `cyphal.px4board`.
|
||||
Note that by default the configuration of `cyphal.px4board` inherits all settings set in `default.px4board`.
|
||||
When changing the `cyphal.px4board` it only stores the delta of the Kconfig keys that are different compared to `default.px4board`, this is useful to simplify configurations management
|
||||
|
||||
:::info
|
||||
When modifying a Kconfig key in `default.px4board` it will be modified in all derivative configurations of the same board that had the same config as well.
|
||||
:::
|
||||
|
||||
## PX4 Menuconfig Setup
|
||||
|
||||
The [menuconfig](https://pypi.org/project/kconfiglib/#menuconfig-interfaces) tool is used to modify the PX4 board configuration, adding/removing modules, drivers, and other features.
|
||||
|
||||
There are command line and GUI variants, both of which can be launched using the PX4 build shortcuts:
|
||||
|
||||
```
|
||||
make px4_fmu-v5_default boardconfig
|
||||
make px4_fmu-v5_default boardguiconfig
|
||||
```
|
||||
|
||||
:::info
|
||||
_Kconfiglib_ and _menuconfig_ come with the _kconfiglib_ python package, which is installed by the normal [ubuntu.sh](https://github.com/PX4/PX4-Autopilot/blob/main/Tools/setup/ubuntu.sh) installation script.
|
||||
If _kconfiglib_ is not installed, you can do so using the command: `pip3 install kconfiglib`
|
||||
:::
|
||||
|
||||
The command line and GUI interfaces are shown below.
|
||||
|
||||
### menuconfig GUI Interface
|
||||
|
||||

|
||||
|
||||
### menuconfig Command Line Interface
|
||||
|
||||

|
||||
Reference in New Issue
Block a user