Installing iCWMP on Raspberry Pi – missing dm-service / TR-181 data model files

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:

  1. Is dm-service (the TR-181 XML data model) intentionally not included in the public iopsys feed (for licensing or vendor reasons)?
  2. 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?
  1. 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.

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button (red circle; this works best in the 'Markdown' composer view in the blue oval):

Screenshot 2025-10-20 at 8.14.14 PM

Remember to redact passwords, VPN keys, MAC addresses and any public IP addresses you may have:

ubus call system board
{
	"kernel": "6.6.110",
	"hostname": "OpenWrt",
	"system": "ARMv8 Processor rev 3",
	"model": "Raspberry Pi 4 Model B Rev 1.5",
	"board_name": "raspberrypi,4-model-b",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "24.10.4",
		"revision": "r28959-29397011cc",
		"target": "bcm27xx/bcm2711",
		"description": "OpenWrt 24.10.4 r28959-29397011cc",
		"builddate": "1760891865"
	}
}

This is output of that command

3rd paarty repos are supported by 3rd parties.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.