Насколько понимаю, сейчас среда NDM Systems Buildroot сделана так, чтобы как можно меньше отличаться от OpenWrt Buildroot. Пакеты конфигурируются, компилируются и пакуются без упоминания префикса /opt, что позволяет использовать Makefile'ы OpenWrt'шных пакетов без какой-либо модификации, а для распаковки на роутере в конфиге opkg.conf указывается опция dest root /opt. В частности, вижу в билдруте NDM:
$ cat include/package-defaults.mk
...
CONFIGURE_PREFIX:=/usr
CONFIGURE_ARGS = \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--program-prefix="" \
--program-suffix="" \
--prefix=$(CONFIGURE_PREFIX) \
--exec-prefix=$(CONFIGURE_PREFIX) \
--bindir=$(CONFIGURE_PREFIX)/bin \
--sbindir=$(CONFIGURE_PREFIX)/sbin \
--libexecdir=$(CONFIGURE_PREFIX)/lib \
--sysconfdir=/etc \
--datadir=$(CONFIGURE_PREFIX)/share \
--localstatedir=/var \
--mandir=$(CONFIGURE_PREFIX)/man \
--infodir=$(CONFIGURE_PREFIX)/info \
$(DISABLE_NLS) \
$(DISABLE_LARGEFILE) \
$(DISABLE_IPV6)
Получается, что пакеты, которые конфигурируются с помощью GNU Build System (половина, а то и большинство) получат в своих бинарниках hardcoded-пути: /etc для поиска своих конфигов, /var — для сохранения временных данных, /usr/share для поиска данных и т.п., что неправильно.
Правильный вариант кроме указания корректных опций конфигурирования потребует соответсвующего изменения Makefile'ов пакетов, что значительно более трудоёмкая задача.
Первый путь был выбран исходя из перечисленных доводов? Не будет ли это нарушение FHS выглядеть коряво?
Здесь лежат все необходимые правки билдрута, если будет выбран «правильный» путь. С пакетами, повторюсь, придётся повозиться отдельно.