К вопросу о том, "что за дом без серверной стойки для души и экспериментов":
серверная в подвале, с круглосуточно гудящими аппаратами - теперь в прошлом. Для серьезных вещей удобнее купить VDS на хостинге, а для несерьезных...

Ну вот, например, попалась смарт-приставка для TV MXQ pro 4K.


По описанию на маркетплейсе - там и 64Gb, и тут же одновременно 512Gb (интересно, что именно они имели ввиду?) при цене, скажем так, пакета апельсинов.
Ну, что ж, надо глянуть, чего там внутри.

Ну, софт особо не интересует — Андроид, стандартные для таких приставок приложения типа онлайн‑кинотеатров, ничего необычного.

Коробка по нынешним временам просто огромная, при том что внутри половина места занята пустотой. Что там предполагалось создателями — теперь сказать сложно, т.к. такой дизайн платы, судя по форумам, известен уже много лет, и наверное когда-то в этом был глубокий смысл.

На плате - аж три USB-порта, старинный полноразмерный слот для SD-карт, HDMI-выход, сетевой разъем, аудиовыход и еще что-то, возможно гнездо для дополнительного IR-приемника

Уже по опыту зная, что в подобных устройствах может быть примерно любой процессор, и даже надпись на нем не гарантирует что он именно такой как написано - сразу ищем serial port. И находим - четыре площадки под гребенку - это наверняка он.
Теперь надо разобраться что есть что: тут очень помогает простейший карманный осциллограф - там где четко 0 - Gnd, где более-менее постоянные 3в - Rx, где 3в с импульсами-провалами - Tx, данные передает.

А вот фиг, Gnd есть, остальные контакты просто висят в воздухе. А почему? А потому что рядом с ними площадки для распайки двух резисторов, на которых этих резисторов нет.

С помощью все того же осциллографа убеждаемся, что там, на площадках, есть искомые Rx-Tx, значит можно туда подпаяться, а лучше - припаять резисторы и гребенку, пригодится.
Резисторы можно примерно любые подходящие по размеру, сопротивлением до 200 Ом - они там токоограничивающие, но если не планируется подключать ничего кроме USB-TTL адаптера то можно особо не заморачиваться.

С какой-нибудь платы-донора (например, от старой материнки) феном снимаем пару подходящих резисторов, и феном же пришлепываем на места (спойлер - это была самая сложная часть работы. И при этом - самая необязательная).

Теперь на пинах гребенки есть сигнал, остается подключить адаптер и смотреть, что там.

Там - на скорости 1500000 бод виден процесс загрузки. Всё стандартно: SPL, U-Boot, kernel...

DDR Version V1.09 20190628
In
ID:0xFFF
300MHz
LPDDR3
Bus Width=32 Col=10 Bank=8 Row=14 CS=2 Die Bus-Width=32 Size=1024MB
mach:14
OUT
Boot1 Release Time: May  4 2018 15:21:31, version: 2.49
ChipType = 0xc, 342
mmc2:cmd19,256
SdmmcInit=2 0
BootCapSize=2000
UserCapSize=7456MB
FwPartOffset=2000 , 2000
SdmmcInit=0 NOT PRESENT
StorageInit ok = 27978
SecureMode = 0
GPT 00@0x00012000(kernel),0x0000a000@0x00018000(boot),0x00010000@0x00022000(recovery),0x00020000@0x00032000(backup),0x00040000@0x00052000(cache),0x00008000@0x00092000(metada
ta),0x00002000@0x0009a000(kpanic),0x00400000@0x0009c000(system),-@0x0049c000(userdata)D��� signature is wrong
LOADER Check OK! 0x60000000, 44681
TOS    Check OK! 0x68400000, 55736
Enter Trust OS
INF TEE-CORE:init_primary_helper:319: Initializing (1.0.1-72-gf230aa2 #2 Fri Sep 29 10:22:10 UTC 2017 arm)
INF TEE-CORE:init_primary_helper:320: Release version: 2.0
INF TEE-CORE:init_teecore:79: teecore inits done


U-Boot 2014.10-RK322X-06 (May 23 2023 - 16:43:56)

CPU: rk322x
cpu version = 3
CPU's clock information:
    arm pll = 600000000HZ
    periph pll = 1200000000HZ
    ddr pll = 600000000HZ
    codec pll = 500000000HZ
Board:  Rockchip platform Board
Uboot as second level loader
DRAM:  Found dram banks: 1
Adding bank:0000000060000000(0000000040000000)
Reserve memory for trust os.
dram reserve bank: base = 0x68400000, size = 0x00100000
128 MiB
GIC CPU mask = 0x00000001
......
  

В общем, процессор rk322x, обьем "диска" (mmc) 7Gb, RAM - 1Gb, LPDDR3
Могло быть и хуже, так-то в общем неплохой 4-ядерный 32-битный процессор, хоть и устаревший.

Что из этого можно сделать?

Ну, например, можно сделать небольшой веб‑сервер, или что‑то подобное. Один гигабайт памяти — теперь считается немного, но если не размахиваться на J2EE решения то сойдет.
Или можно сделать десктоп — есть графический акселератор, есть куда подключать периферию — конечно, отнюдь не самая быстрая конфигурация, но для некоторых применений и этого достаточно.

В конце концов, для души и экспериментов — самое то.

Чем хороши процессоры Rockchip - системы на их базе сложно окирпичить, то есть если не удается запуститься со встроенной памяти, например, туда записано что-то не то - тогда они будут пытаться загрузиться с других доступных носителей, SD-карты, USB и так далее.
Но можно: например, конкретно эта модель в любом случае СНАЧАЛА читает загрузчик со встроенной mmc, и только ПОТОМ переходит к внешней. Если на внутренней вообще ничего не будет - это не проблема, а вот если сначала начнет загружаться, и зависнет в процессе...
Есть методы с закорачиванием вывода Clck чипа mmc, но надо его еще найти и подступиться. В общем, сломать при желании можно всё.

Но в данном случае не стал заниматься самостоятельной сборкой загрузчика и ОС, а взял готовое (именно поэтому подключение к RxTx и пайка резисторов по сути оказалась не нужна. На этот раз.)

Есть такой проект Armbian, и есть форум, на котором уже разобраны примеры с установкой ОС на подобное железо.

Кратко, процесс сводится к тому, что надо подобрать образ mutlitool.img, который успешно запустится на конкретном устройстве, и образ Armbian, который не менее успешно запустится после записи на встроенную mmc.

Конкретно с этим девайсом особых проблем быть не должно, потому что там стоит достаточно стандартная LPDDR3-память, и никаких особых извращений в процессе запуска системы не требуется.

Достаточно 2Gb SD-карты.
Допустим, она определилась в системе как /dev/sdb:

dd if=multitool.img of=/dev/sdb status=progress

Ждем, сразу вынимаем, загружаемся - первый запуск может быть довольно долгим, потому что программа будет расширять предзаписанный NTFS-раздел на всё доступное пространство SD-карты.

Заморгали красно-синие светодиоды - на экране, подключенном к HDMI, появляются диалоговые окна.

Делаем бекап (необязательно), потом Reboot, и тащим карту снова в компьютер.

На ней появился раздел MULTITOOL - там должен быть бекап, если делался, и туда же в images нужно записать образ ОС, в моем случае Armbian-unofficial_24.11.0-trunk_Rk322x-box_bookworm_edge_6.11.3_minimal.img (можно найти, где-то там на форуме пробегала ссылка, и не обязательно именно этот).

Потом отмонтировать раздел, чтобы он точно записался на карту, и потом снова загружать коробку с карточки.

На этот раз желательно сделать Erase flash, а потом записать новый образ системы. Карту вынуть, перезагрузиться — если всё прошло хорошо, то система загрузится, задаст несколько вопросов типа «Установите пароль», «Выберите локаль» — и собственно всё. Еще один перезапуск и должна работать.

По сути - обычный Debian с некоторыми дополнениями, типа armbian‑config, armbianmonitor и т. п. — что‑то уже установлено, что‑то устанавливается через apt.
Кто не доверяет чужим сборкам — может собрать свою собственную, начиная с ядра и заканчивая ОС, но это уже другая история.

Ну а еще можно вспомнить о том, что SD‑разьем — это по сути SPI‑интерфейс, куда можно что‑то подключить если написать драйвер работающий с SPI, что у этого процессора есть встроенный криптомодуль, умеющий аппаратно, например, sha256, что есть наконец IR‑приемник — при желании есть куда копать.

Комментарии (8)


  1. kenomimi
    09.12.2024 10:02

    Правильнее было бы выдернуть с платы dtb/dts файл, и в новый образ переложить. А то работа железа с фиг знает каким конфигом будет лотереей...


    1. JBFW Автор
      09.12.2024 10:02

      Там можно в конфиге настроить откуда чего загружать.
      Но тут как раз про простой случай, когда ничего делать не пришлось вообще: сборка уже сделана под такой тип железа, dtb готовые

      А вот были другие интересные случаи - там да...


  1. Kononvaler
    09.12.2024 10:02

    Прямо в тему, с полгода если не больше валялась эта фиговина, брал попробовать как клиента для видеосервера. Тогда не срослось, не появилась програмулина в меню и не нашел возможности запустить после вроде успешной установки.
    Сегодня установил Jellyfin под андроид TV и он вдруг начал ругаться что прога предназначена под андроид ТВ а не под эту железку. Оказывается это на коробке написан ТВ бокс, на самом деле он в системе так даже не позиционируется! Скачал apk видеонаблюдения под armeabi-v7 и клиент почти нормально запустился. Джелифин кстати вполне пригодно заработал в обычной для андроид версии, с пультом и всеми плюшками. Вполне можно оставлять как есть под старый телик, 1080 тянет без фризов.
    И, кстати, там 4 USB порта, не три. Три сбоку и один с морды, на фото разобранной мамки видно.
    Еще хорошо соединяться к шаре по NFS из файлового менеджера, работает обзор сети и весьма шустро, кино так-же легко воспроизводится встроенным плеером.
    Перешивать наверно не буду, так хоть явно работает аппаратное для видео.
    После сегодняшних опытов вдруг попадается эта статья, прям в тему.
    Было интересно, спасибо.


    1. JBFW Автор
      09.12.2024 10:02

      Там в чипе встроенный видеоускоритель, Mali 450 кажется, не помню.
      Вообще с точки зрения как приставки - недостаток в том что всего 1 Гб памяти, есть другие модели с 2 - они получше.
      Но продавцы врут как дышат - там и про память врут, и про процессор, всё равно никто же через Андроид не поймет ничего...


      1. Javian
        09.12.2024 10:02

        Китайцы на потоке подделывают характеристики Когда обманули во всем: изучаем фейковый планшет, которым забиты маркетплейсы https://habr.com/ru/articles/848586/

        Специально выбирал дешевый ТВ бокс, на который уже есть адаптированный Armbian.

        Взял Q96 mini. Название ничего не обозначает - китайцы поделывают какой-то Q96.


        1. JBFW Автор
          09.12.2024 10:02

          Q96 это классика обмана, у меня таких несколько и всё разные ))

          Это как раз там, глядя на надпись на процессоре - не верь глазам своим


  1. RKupkenov
    09.12.2024 10:02

    Почему бы не купить нормальный Vontar X3 с 4Гб ОЗУ? Явно лучше чем 1Гб, хоть и дешевле?

    Спокойно ставится Armbian и на него уже что душе угодно, хоть Home Assistan c Zigbee, хоть WEBсервер...


    1. JBFW Автор
      09.12.2024 10:02

      Потому что:
      1 - в данном кейсе речь шла именно об этой железке, а не о других. Скажем так, это не лучший вариант, просто из свежих
      2 - зачем же именно Volnar X3, если есть X88mini13 с теми же 4Гб ОЗУ? К тому же дешевле и уже проверенно хорошо работает

      Тут вообще идея была в том, что можно за копейки собрать некий зоопарк из серверов, на которых можно устраивать всякие эксперименты по клиент-серверным системам: сервера приложений, распределение нагрузки и проч.
      Так-то, если нужен один - конечно лучше 4Гб.