
Как я веб-приложение на Go для архитектуры MIPS кросс-компилировал
antonCT 8 минут назад Как я веб-приложение на Go для архитектуры MIPS кросс-компилировал Средний 7 мин 0 Go * Linux * Компиляторы * Настройка Linux * Сетевое оборудование Туториал Из песочницы ВведениеПривет, Хабр!...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Значимый прорыв формирует отрасль ИИ: antonCT 8 минут назад Как я веб-приложение на Go для архитектуры MIPS кросс-компилировал Средний 7 мин 0 Go * Linux * Компиляторы * Настройка Linux * Сетевое оборудование Туториал Из песочницы ВведениеПривет, Хабр! Являюсь давним пользователем маршрутизаторов Keenetic/Netcraze. В свое время подкупили надежность устройств, широкие возможности программного обеспечения, оперативная техническая поддержка, большое сообщество пользователей возможность установки дополнительных пакетов через среду Entware.
В относительно недавнем прошлом производитель строил свои устройства на базе mips/mipsel чипов, таким образом, несколько таких устройств оказались у меня в руках. Дополнительные пакеты в репозитории среды Entware позволяют решать массу задач. Я в свою очередь решил использовать ее для решения проблем деградации сети Интернет в текущем месте проживания.
Технические детали
Пример деградации сети. Особенно досадно, что файлы от которых зависит корректная работоспособность веб-сайта, приходят выборочноВ своих поисках остановился на программе Xray. Помимо исходного кода, авторы любезно предоставляют свой продукт собраным в виде консольной программы под различные платформы и архитектуры, включая mips на linux.
Ничего не имею против консоли, но необходимость редактировать достаточно большие json-файлы в поике работоспособной конфигурации, при появлении нововых деградаций, немного удрачает. Особенно когда знаешь, что графические приложения, основанные на исходном коде Xray, умеют конфигурироваться с помощью url-ов или qr-кодов. Поэтому решил найти решение с графическим веб-инфтерфейсом в репозиториях на которые ссылаются авторы Xray.
Подавляющее их большинство написано на языке Go и в бинарном виде поставляется только для архитектур x86_64, arm, s390. Что вполне достаточно для типового VPS/VDS, но не для нашего встраивоемого устройства. Исправим эту оплошность :-)Идеальный вариантКонечно было бы удобнее получить инструмент, который можно было бы интегрировать в веб-интерфейс Keenetic OS (например, в виде плагина, как для OpenWRT или для AsusWRT).
Отраслевые последствия
Но я так понимаю возможностей интеграции сторонних в веб-интерфейс у нее нет. Первая попыткаСреди многообразия вышеупомянутых приложений, было выбрано tx-ui из-за минимизации зависимостей от внешних СУБД и скриптов по настройке, которые по-умолчанию рассчитаны на использование systemd. Компилятор Go предоставляет возможности по кросс-компиляции из коробки для большого количества архитектур через выставление переменных окружения GOARCH и GOOS.
На момент написания статьи есть проблемы с компиляцией под MIPS на версии 1. 26, поэтому пользоваться будем версией 1. Устанавливаем, воспользовавшись инструкцией с официального сайта.
Скачиваем архив с исходным кодом со страницы релизов в github, распаковываем, переходим в директорию:mkdir habr_mipscd habr_mips/wget -xzf v0.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





