A layer for integrating the mrobot project into Yocto build. Supports Mickeldore. Might work on previous versions down to Hardknott (tested only with Mickeldore).
Assuming all Yocto's dependies are installed. The project "yocto-tools" contains a Dockerfile for creating a container with all the tools required for Yocto build. Clone poky and required layers:
git clone git://git.yoctoproject.org/poky -b mickledore
git clone https://git.yoctoproject.org/meta-raspberrypi/ -b mickledore poky/meta-raspberrypi/
git clone https://github.com/openembedded/openembedded-core.git -b mickledore poky/openembedded-core
git clone https://github.com/amnonpaz/meta-mrobot.git -b mickledore poky/meta-mrobot
Execute:
source ./poky/oe-init-build-env rpi-build
Edit conf/bblayers.conf:
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
/home/amnon/workspace/poky/meta \
/home/amnon/workspace/poky/meta-poky \
/home/amnon/workspace/poky/meta-yocto-bsp \
/home/amnon/workspace/poky/meta-raspberrypi \
/home/amnon/workspace/poky/meta-openembedded/meta-multimedia \
/home/amnon/workspace/poky/meta-openembedded/meta-networking \
/home/amnon/workspace/poky/meta-openembedded/meta-oe \
/home/amnon/workspace/poky/meta-openembedded/meta-python \
/home/amnon/workspace/poky/meta-mrobot \
"
Edit conf/local.conf, and set MACHINE to the proper machine type. For RPI zero w:
MACHINE = "raspberrypi0-wifi"
Build:
bitbake mrobot-rpi
Flashing an SD: CAUTION: Destination device should be set to /dev/sdX, where sdX is the SD device on your machine. Setting this to the wrong value may delete other drives, cause lose of data and even bricking your machine.
bunzip2 -c rpi-build/tmp/deploy/images/raspberrypi0-wifi/mrobot-rpi-raspberrypi0-wifi.wic.bz2 | sudo dd of=/dev/sdX bs=10M status=progress
For automatically connecting to a WiFi network, the network's SSID and password should be set in recipes-connectivity/wpa-supplicant/files/wpa_supplicant-nl80211-wlan0.conf
.
To generate a configuration file with hashed password, execute:
wpa_passphrase <SSID> <Password>
As noted in meta-raspberrypi
, enabling UART on the RPI-0-W causes performance issues. If UART is not needed, it is recommended to remove this flag.
Accepting "commercial" licenses is required for allowing installation of gstreamer libav & ugly plugings. If these plugins packages are not used, then commercial
can be removed from the accepted list.