Go to file
Piotr Dymacz a3f0fb23b7 mcu-firmware: add support for host side support packages
In case of some of the MCU firmware types, additional setup on the host
side is required before the target application can be used. Example of
such a requirement is a BLE HCI controller on UART bus (firmware type:
'hci_uart') which, before can be registered in system, needs to be
attached to Bluetooth stack (with e.g. 'btattach').

This includes code for generating hidden packages under 'mcu-firmware'
with all the files required for host side support (stored in directory
with the same name as firmware type, under local 'files' directory),
for a selected MCU firmware. For example, below tree:

  ./feeds/mcu/mcu-firmware/files/hci_uart/etc/...

would result in creation of new package 'zephyr-hci_uart-host-support',
included in dependencies lists for all MCU firmware versions of the
'hci_uart' type, with everything from '.../files/hci_uart/'.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2023-03-20 08:26:50 +01:00
.github ipq807x: add cig_wf660a to the CI workflow 2023-03-16 08:30:28 +01:00
docker Docker: do not install llvm 2022-01-31 07:01:31 +01:00
feeds mcu-firmware: add support for host side support packages 2023-03-20 08:26:50 +01:00
patches dnsmasq: fix handling of option 38 2023-03-13 11:55:28 +01:00
profiles feeds: ucentral: include BlueZ 5.66 2023-03-14 15:53:43 +01:00
.gitignore open-converged-wireless: Import 21.02 based uCentral tree 2021-03-25 12:19:47 +01:00
build.sh ucentral: development update 2021-05-04 13:51:23 +02:00
config.yml Add patches/x86 directory to config.yml 2023-01-27 12:18:37 +01:00
dock-run.sh open-converged-wireless: Import 21.02 based uCentral tree 2021-03-25 12:19:47 +01:00
Makefile open-converged-wireless: Import 21.02 based uCentral tree 2021-03-25 12:19:47 +01:00
README.md Update README.md 2022-10-19 17:04:14 -07:00
setup.py open-converged-wireless: Import 21.02 based uCentral tree 2021-03-25 12:19:47 +01:00

OpenWiFi AP NOS

OpenWrt-based access point network operating system (AP NOS) for TIP OpenWiFi. Read more at openwifi.tip.build.

Building

Setting up your build machine

Building requires a recent Linux installation. Older systems without Python 3.7 will have trouble. See this guide for details: https://openwrt.org/docs/guide-developer/toolchain/beginners-build-guide

Install build packages on Debian/Ubuntu (or see above guide for other systems):

sudo apt install build-essential libncurses5-dev gawk git libssl-dev gettext zlib1g-dev swig unzip time rsync python3 python3-setuptools python3-yaml

Doing a native build on Linux

Use ./build.sh <target>, or follow the manual steps below:

  1. Clone and set up the tree. This will create an openwrt/ directory.
./setup.py --setup    # for subsequent builds, use --rebase instead
  1. Select the profile and base package selection. This setup will install the feeds and packages and generate the .config file.
cd openwrt
./scripts/gen_config.py linksys_ea8300
  1. Build the tree (replace -j 8 with the number of cores to use).
make -j 8 V=s

Build output

The build results are located in the openwrt/bin/ directory:

Type Path
Firmware images openwrt/bin/targets/<target>/<subtarget>/
Kernel modules openwrt/bin/targets/<target>/<subtarget>/packages/
Package binaries openwrt/bin/packages/<platform>/<feed>/

Developer Notes

Branching model

  • main - Stable dev branch
  • next - Integration branch
  • staging-* - Feature/bug branches
  • release/v#.#.# - Release branches (major.minor.patch)

Repository structure

Build files:

  • Makefile - Calls Docker environment per target
  • dock-run.sh - Dockerized build environment
  • docker/Dockerfile - Dockerfile for build image
  • build.sh - Build script
  • setup.py - Clone and set up the tree
  • config.yml - Specifies OpenWrt version and patches to apply

Directories:

  • feeds/ - OpenWiFi feeds
  • patches/ - OpenWiFi patches applied during builds
  • profiles/ - Per-target kernel configs, packages, and feeds

uCentral packages

AP-NOS packages implementing the uCentral protocol include the following repositories (refer to the ucentral feed for a full list):