Without systemd, bthelper runs from udev when hci0 appears, before bluetoothd starts. It brings the interface up with hciconfig, which powers the adapter without the kernel's power-on initialisation: that runs only when the adapter is powered through the management interface, and it is where the SMP channels are registered and Secure Simple Pairing is enabled. bthelper's delayed "bluetoothctl power off; power on" is meant to recover from this, but bluetoothd isn't running yet, so the adapter ignores LE pairing requests after every boot, and bluetoothd logs "Failed to set privacy: Rejected (0x0b)", until the Bluetooth stack is restarted. Upstream bthelper now takes the interface down again once it is done, so bluetoothd powers the adapter on when it starts, and powers it on through bluetoothd when that is already running: https://github.com/RPi-Distro/pi-bluetooth/pull/39. The same symptom is reported on Raspberry Pi OS in https://github.com/RPi-Distro/pi-bluetooth/issues/35. Refresh the hciconfig path patch to cover the new hciconfig call. Signed-off-by: devgianlu <altomanigianluca@gmail.com>
meta-raspberrypi
Yocto BSP layer for the Raspberry Pi boards - http://www.raspberrypi.org/.
|
Sponsored by:
|
Quick links
- Git repository web frontend: https://github.com/agherzan/meta-raspberrypi
- Mailing list (yocto mailing list): yocto@lists.yoctoproject.org
- Issues management (Github Issues): https://github.com/agherzan/meta-raspberrypi/issues
- Documentation: http://meta-raspberrypi.readthedocs.io/en/latest/
Description
This is the general hardware specific BSP overlay for the RaspberryPi device.
More information can be found at: http://www.raspberrypi.org/ (Official Site)
The core BSP part of meta-raspberrypi should work with different OpenEmbedded/Yocto distributions and layer stacks, such as:
- Distro-less (only with OE-Core).
- Yoe Disto (Video and Camera Products).
- Yocto/Poky (main focus of testing).
Yocto Project Compatible Layer
This layer is officially approved as part of the Yocto Project Compatible Layers Program. You can find details of that on the official Yocto Project
website.
Dependencies
This layer depends on:
-
URI: https://git.openembedded.org/bitbake
- branch: master
- revision: HEAD
-
URI: https://git.openembedded.org/openembedded-core
- branch: master
- revision: HEAD
-
URI: https://git.yoctoproject.org/meta-yocto
- branch: master
- revision: HEAD
Quick Start
- source openembedded-core/oe-init-build-env rpi-build
- Add this layer to bblayers.conf and the dependencies above
- Set MACHINE in local.conf to one of the supported boards
- bitbake core-image-base
- Use bmaptool to copy the generated .wic.bz2 file to the SD card
- Boot your RPI
Quick Start with kas
-
Install the kas build tool from PyPI:
pip3 install kas -
Select the appropriate machine configuration file from
kas/(for exampleraspberrypi4.yml,raspberrypi3-64.yml, etc.) -
Run the build:
kas build meta-raspberrypi/kas/<machine>.yml -
Use
bmaptoolto copy the generated.wic.bz2image to the SD card -
Boot your Raspberry Pi
The kas configuration is split into a shared base.yml and per-machine
configuration files. Machine selection is done by choosing the appropriate
kas file rather than editing a machine variable.
To adjust the build configuration with specific options (I2C, SPI, etc.),
extend the configuration by adding a local_conf_header section, for example:
local_conf_header:
rpi-specific: |
ENABLE_I2C = "1"
RPI_EXTRA_CONFIG = "dtoverlay=disable-bt"
Additional configurations can be layered by including extra kas files. For example,
to enable runtime testing with testimage:
kas build meta-raspberrypi/kas/raspberrypi4.yml:meta-raspberrypi/kas/testimage.yml
For further details, see the kas documentation: https://kas.readthedocs.io/en/latest/index.html
Contributing
You can send patches using the GitHub pull request process or/and through the Yocto mailing list. Refer to the documentation for more information.
Maintainers
- Andrei Gherzan
<andrei at gherzan.com>