Решил немного оптимизировать свою сеть умного дома и перейти с проприетарного SLS на полностью открытый проект zigbee2mqtt. И чтобы избавиться от одного лишнего узла (в случае с SLS это переделанный ZigBee шлюз от Xiaomi), задумал все настроить на борту Xiaomi Mi Router 3G.
При установке “больших” пакетов на роутер можно столкнуться с проблемой нехватки свободного места. Справиться с этой проблемой можно путем переноса файловой системы на внешний USB накопитель.
Потребовалось мне установить Node.js на свой Xiaomi Mi Router 3G, прошитый под OpenWrt. В дефолтных репозиториях необходимого пакета не оказалось. Немного погуглив, были найдены всего пара источников (раз, два) в которых присутствовали нужные мне ipk файлы. Но, в первом случае они падали с ошибкой “Illegal instruction” (как позже выяснилось, для их работы необходимо пересобрать ядро с поддержкой MIPS FPU Emulator, о чем я расскажу ниже), а во втором версии были слишком старые (v8.17.0) и меня не устраивали (а если бы и устраивали, то я снова бы столкнулся с предыдущей ошибкой). Однако, эти поиски привели меня к проекту nxhack/openwrt-node-packages, бинарники которого можно было собрать самостоятельно, что я и сделал. Делюсь инструкцией по сборке (как и получившимися ipk файлами) со всеми желающими.