Bootstrap

Старые и встраиваемые устройства на dix.su: MIPS, ARMv5, ARMv7 — установка клиента

Старые и встраиваемые устройства на dix.su: MIPS, ARMv5, ARMv7 — установка клиента

Старые и встраиваемые устройства (MIPS, ARMv5, ARMv7)

dix.su поддерживает устройства на старых архитектурах — роутеры на OpenWrt, одноплатники на ARMv5/v7, промышленные системы на MIPS. Бинарники device_client собраны статически (без внешних зависимостей, без glibc) и работают сразу после скачивания.

Поддерживаемые архитектуры

АрхитектураБинарникПримеры устройств
MIPS LE (little-endian)device_client_linux_mipsleTP-Link на OpenWrt, MT7620, MT7621
MIPS BE (big-endian)device_client_linux_mipsСтарые Atheros (AR7xxx, AR9xxx)
ARMv5device_client_linux_armv5NAS-серверы, промышленные контроллеры
ARMv7device_client_linux_armv7Raspberry Pi 2, Orange Pi, Banana Pi
ARM64device_client_linux_arm64Raspberry Pi 3/4/5, современные SBC
x86_64device_client_linux_x86_64ПК, серверы, виртуальные машины

Определить свою архитектуру

☯

Terminal:

⌕

≡

✕
uname -m
ВыводАрхитектура
mips или mipselMIPS (определи ещё endianness — ниже)
armv5telARMv5
armv7lARMv7
aarch64ARM64
x86_64x86_64

MIPS: определить endianness

На OpenWrt самый надёжный способ — через opkg:

☯

Terminal:

⌕

≡

✕
opkg print-architecture | head -1

Вывод mipsel_ — little-endian (mipsle), вывод mips_ — big-endian (mips).

Если opkg недоступен:

☯

Terminal:

⌕

≡

✕
grep -i "endian" /proc/cpuinfo

Little Endian → mipsle, Big Endian → mips.

Установка через install.sh

На OpenWrt и других Linux-системах можно использовать автоматический скрипт — он сам определит архитектуру:

☯

Terminal:

⌕

≡

✕
curl -fsSL https://dix.su/downloads/install.sh | SLUG=my-slug TOKEN=my-token PORT=8080 bash

Скрипт определяет MIPS endianness через opkg или /proc/cpuinfo, выбирает нужный бинарник и скачивает его в ~/.local/bin/.

С автозапуском (systemd)

☯

Terminal:

⌕

≡

✕
curl -fsSL https://dix.su/downloads/install.sh | \
  SLUG=my-slug TOKEN=my-token PORT=8080 INSTALL_SERVICE=yes bash

С автозапуском (OpenRC — Alpine, OpenWrt)

☯

Terminal:

⌕

≡

✕
curl -fsSL https://dix.su/downloads/install.sh | \
  SLUG=my-slug TOKEN=my-token PORT=8080 INSTALL_SERVICE=yes bash

Скрипт автоматически определяет init-систему: если есть rc-update и openrc-run — создаёт OpenRC-сервис, если есть systemctl — systemd-сервис.

Ручная установка

Если curl нет или нужен более полный контроль:

☯

Terminal:

⌕

≡

✕
# Замени mipsle на нужную архитектуру
wget -O /usr/local/bin/device_client https://dix.su/downloads/device_client_linux_mipsle
chmod +x /usr/local/bin/device_client

Запуск:

☯

Terminal:

⌕

≡

✕
DIXSU_TOKEN=my-token SERVER_HOST=proxy.dix.su SERVER_PORT=443 \
  device_client my-slug 8080

Место на устройстве

Бинарники занимают от 7.7 до 9.2 МБ в зависимости от архитектуры. Для устройств с ограниченным хранилищем можно установить во tmpfs-раздел и добавить скрипт скачивания при загрузке.

OpenWrt: пример OpenRC-сервиса вручную

Если установщик недоступен или не работает, создай /etc/init.d/device-client вручную:

☯

Terminal:

⌕

≡

✕
#!/bin/sh /etc/rc.common
USE_PROCD=1
START=99
STOP=01

SLUG="my-slug"
PORT="8080"
TOKEN="my-token"
BINARY="/usr/local/bin/device_client"

start_service() {
    procd_open_instance
    procd_set_param command "$BINARY" "$SLUG" "$PORT"
    procd_set_param env \
        DIXSU_TOKEN="$TOKEN" \
        SERVER_HOST="proxy.dix.su" \
        SERVER_PORT="443"
    procd_set_param respawn
    procd_close_instance
}

☯

Terminal:

⌕

≡

✕
chmod +x /etc/init.d/device-client
/etc/init.d/device-client enable
/etc/init.d/device-client start

Проверка работы

После запуска туннель появится в личном кабинете на dix.su. Проверить локально:

☯

Terminal:

⌕

≡

✕
# Посмотреть процесс
ps | grep device_client

# Логи (OpenRC/procd)
logread | grep device_client

Свежие статьи

Вторая жизнь Asus RT-AC51U: OpenWrt
17
окт

Вторая жизнь Asus RT-AC51U: OpenWrt

Вторая жизнь Asus RT-AC51U: OpenWrt, extroot на флешке, swap и собственная точка входа в домашнюю сеть без белого IP. Разбираем, почему не работает opkg update, как не убить extroot сбросом настроек и зачем писать туннельный клиент на Go под 64 МБ RAM.
Прочитать