Hello,
I am trying to install and use iCWMP (TR-069 client) on OpenWrt running on a Raspberry Pi 4B. My goal is to test basic TR-069 communication (ACS ↔ CPE) in a lab environment, not to build vendor firmware.
I am building OpenWrt from source and using the public iopsys feed. From that feed I can see and select the following packages:
- icwmp
- bbfdm
Both build correctly, but I run into a conceptual / structural problem related to the TR-181 data model.
bbfdm expects a datamodel input directory (usually called dm-service) that contains TR-181 XML files such as Device.DeviceInfo.xml, Device.WiFi.xml, etc. These XML files are needed for defining the TR-181 data model that iCWMP exposes.
In my setup, the public iopsys feed only contains:
feeds/iopsys/
- bbfdm
- icwmp
There is no dm-service directory or any TR-181 XML files included. Because of this, bbfdm has no input data model to work with, and it is unclear how TR-181 parameters are supposed to be defined on a non-vendor target like Raspberry Pi.
From what I understand, bbfdm does not generate a TR-181 data model on its own, but instead consumes existing XML definitions. This makes dm-service a required component, but it does not seem to be publicly available.
What I am trying to achieve is a minimal, clean setup where:
- OpenWrt runs on Raspberry Pi
- iCWMP is installed
- a basic TR-181 data model is exposed
- TR-069 communication can be tested against an ACS (e.g. GenieACS)
My questions are:
- Is dm-service (the TR-181 XML data model) intentionally not included in the public iopsys feed (for licensing or vendor reasons)?
- For a non-vendor, test-only setup, what is the recommended approach?
- Should I create a minimal TR-181 XML set myself?
- Is there a publicly available TR-181 XML reference that is allowed to be reused?
- Is there an alternative OpenWrt-native way to test iCWMP without bbfdm?
- Is there any example (even minimal) of a dm-service layout that is known to work with bbfdm and iCWMP?
I want to avoid pulling random XML files from the internet without understanding licensing implications, and I want to follow best practices if possible. At the same time, I would like to have a reproducible setup that others can also use for learning and testing TR-069.
Environment:
- OpenWrt: 24.10.4
- Target: Raspberry Pi 4B (aarch64)
- Build host: Ubuntu 24.04
- iopsys feed: public (bbfdm + icwmp available, dm-service missing)
Any clarification from people familiar with iCWMP, bbfdm, or TR-181 on OpenWrt would be greatly appreciated.
Thanks in advance.