Комментарии 28
Нормально отрабатывает и по стандартной инструкции за 10 мин. Виртуалка с Ubuntu 22.04.3 LTS уже преднастроена. Собирал для другой железки.
https://github.com/armbian/build
В BRANCH=legacy собирает с vmlinuz-5.10.160-legacy-rk35xx
./compile.sh build BOARD=hinlink-h28k BRANCH=legacy BUILD_DESKTOP=no BUILD_MINIMAL=yes EXPERT=yes KERNEL_CONFIGURE=no RELEASE=bookworm
ls -la ~/build/output/images/
sudo kpartx -av ~/build/output/images/Armbian_23.11.0-trunk_Hinlink-h28k_bookworm_legacy_5.10.160_minimal.img
sudo parted -l | grep loop0p
Диск /dev/mapper/loop0p1: 268MB
Диск /dev/mapper/loop0p2: 3909MB
Маунт в файл-манагере.
mount | grep loop0p
ls -la /media/user/armbi_boot
ls -la /media/user/armbi_root
screenshot

Вы заменяли .dtb? Я только два чужих проверял - для hinlink, и с тем же названием внутри (rk3528-evb1-ddr4-v10) что .dtb из андроида. Но в Armbian файл с тем же именем различается по размеру. С ними Линукс не грузится, с .dtb из андроида грузит. Похоже производитель моего устройства взял стандартный rk3528-evb1-ddr4-v10, внёс в него свои правки и не заморачивался с изменением названия. По чипам памяти с платы (K4B4G0446D) - используется память DDR3.
Через adb shell копировал boot или recovery, распаковывал с abootimg и использовал родной .dtb
(для примера - данные старые Android 4.4) - Dump the partition to a file using dd
Extracting Existing Kernel + Ramfs
https://gist.github.com/azureru/478fe60ee5b9ec545fa5eb286fb2c4be
sudo apt-get install abootimg device-tree-compiler
dtc -b 0 -O dts -I dtb -o my.dts recovery.img-second.gz
nano(mcedit, gedit ...) my.dts
dtc -b 0 -O dtb -I dts -o my.dtb my_box.dts
Нечитаемые флэшки
Надо попробовать F2FS.
https://docs.armbian.com/Developer-Guide_Build-Options/
ROOTFS_TYPE ( ext4 | f2fs | btrfs | nilfs2 | xfs | nfs | fel ): create image with different root filesystems instead of default ext4. Requires setting FIXED_IMAGE_SIZE to something smaller than the size of your SD card for F2FS
FIXED_IMAGE_SIZE= 4000 8000 16000 ...
./compile.sh build BOARD=hinlink-h28k BRANCH=legacy BUILD_DESKTOP=no BUILD_MINIMAL=yes EXPERT=yes FIXED_IMAGE_SIZE=4000 KERNEL_CONFIGURE=no RELEASE=bookworm ROOTFS_TYPE=f2fs
dtc -b 0 -O dts -I dtb -o my.dts recovery.img-second.gz
Каким образом это работает? dtc находит первый попавшийся в потоке данных dtb по заголовку? Например, на TV-боксе Amlogic я вытаскивал 6 .dtb конфигов из boot раздела:
gxbb_p201_1g.dtb
gxbb_p201_2g.dtb
gxl_p211_1g.dtb
gxl_p211_2g.dtb
gxl_p215_1g.dtb
gxl_p215_2g.dtb
Какой из них использовать - можно понять выполнив команду в adb shell
:
$ echo $(cat /proc/device-tree/amlogic-dt-id)
gxbb_p201_1g
Да, в данном случае используется первая, что нашлась бы поиском заголовка .dtb, но могла быть и другая.
nano(mcedit, gedit ...) my.dts
Что предлагается редактировать?
Надо попробовать F2FS.
Это не связано с файловой системой. Имеется в виду стадия загрузки, U-Boot эту флэшку не посчитал загрузочной. Через картридер работало с тем же самым образом системы.
фото поддельного USB 2.0 хаба

Достался мне подарком к другому TV-боксу. Микросхема MW7211A IPA170201-1, на обратной стороне только USB разъёмы. Очевидно, что в качестве подарков добавляют хлам, который хоть и работает, но со скоростями USB 1.1 бесполезен.
Кто поставил минус за "Низкий технический уровень материала" - я согласен что инструкция не глубокая, но у меня цель была запустить хоть какой-то Линукс, и я её добился. Тут самое главное - что нужен U-Boot загрузчик с патчами из Armbian, и правильный .dtb файл для устройства. Базовая поддержка этого чипа в Linux уже есть.
Разбираюсь сейчас с настройкой Armbian сборки Ubuntu - там всё проглюченно и приходится искать как решить разные проблемы, пока я написал только про одну с Xfce. Плюс надо разобраться как включить графическое ускорение, интерфейс не тормозит, но я хочу попробовать 3D графику. Драйвер на GPU Mali-450 уже должен быть в Linux.
чую я что ему то как раз требовалась инструкция как поставить линукс в один клик, что и обещал заголовок, а тут только какой то git, make, dd
Для Mali-450 есть опенсорсный драйвер Lima, что читает значения из Device Tree, которые Rockchip решил переименовать под имена для более новых Mali. В итоге Lima не может их найти по старым названиям.
если нет Ethernet разъёма - то через USB адаптер.
вот тут меня смущает идея что обязательно найдется неподдреживаемый адаптер ...
Дополнительно купил DQ08, TV-бокс на том же чипе, за ту же цену, но с разъёмами Ethernet, USB 3.0 и разъёмом для карты памяти. Андроид работает. Кстати, сразу рутованный из коробки.
Но с Линуксом не тут то было - загрузил с карты, по HDMI сигнала нет, по сети выделяет адрес в DHCP, но ssh не может войти - connection refused. Выключил питание, посмотрел логи Линукса на карте - они есть, Линукс запускался, там пара падений в ядре, но таких же, как на первом TV-боксе (H96 MAX M1).
Device Tree этого TV-бокса делался из шаблона "Rockchip RK3528 DEMO1 LP4 V10 Board" (rk3528-demo1-lp4-v10).
Частично разобрался - карточка отваливается (даже вставленная в разъём на плате!) и Линукс виснет. Я смог загрузить Линукс на DQ08 через старую медленную флэшку. Новая USB 2.0 флэшка тоже отваливается. По логам, для ядра это выглядит как отключение USB устройства. Что происходит - пока непонятно, возможно Линукс не умеет полноценно читать Device Tree из Андроида и не может управлять энергопотреблением, поэтому USB устройствам не хватает питания, и всем вообще. В логе регулярно проскакивают ошибки что Ethernet в чипе отключился. Пока такие теории. Кажется, одно из падений в ядре при запуске - как раз про регуляцию энергопотребления устройств.
Заработал нормально с microsd карты, я не понял почему раньше не грузился. Как будто если при первом запуске его слишком рано подключить к сети - то он виснет и не отвечает по сети. А графический интерфейс он не показывает пока по сети не подключишься и не настроишь.
С быстрой карты работает шустро. Интерфейс вроде не тормозит.
Видеокарта очень слабая и драйвер мало что поддерживает.
rbdoom3bfg пробовал запустить - он требует GL_ARB_uniform_buffer_object, что не поддерживается драйвером Lima.
ioquake3 - запускается, можно настроить чтобы работал сносно (в низком разрешении), но нельзя настроить чтобы работал без артефактов, часть полигонов на объектах дальше нескольких метров становятся белые. При опции освещения Vertex - уровни нормальные, глючит на противниках и предметах на уровне. Для другой опции освещения становятся белыми еще и уровни, на этом уже играть невозможно.
warzone2100 вроде работает без глюков.
сколько занятных штуковин с этим вашим линуксом :)
И еще заметил что звук через HDMI не работает, отдельно вывода звука у этих TB-боксов нет. Потихоньку пытаюсь сделать правильный Device Tree, что подходит драверу в Linux (simple-audio-card). У Андроид то работает, видимо там драйвер другой и настройки в Device Tree он понимает.
Есть какая-то istoreos (на базе OpenWrt), и для неё китайцы улучшают Device Tree для Rockchip на гитхабе. Возможно там какой-то одноплатник появится на RK3528 и я смогу правильный конфиг с него взять. Хотя поддержку звука через HDMI для клона OpenWrt в последнюю очередь будут исправлять.
А чип слабый откровенно, особенно видео (мобильный GPU 2012-го года!). Но таки 4ГБ версии - это неплохо для дешевого одноплатника (еще бы с драйверами разобраться чтобы всё нормально работало). OrangePi Zero 3 стоит чуть дороже с 4ГБ, ~2500.
опять тот самый реторический вопрос откуда китайцы берут инфу для этих Device Tree
я как раз наблюдаю за процессом с той точки зрения что у некоторых выходит проще и дешевле купить бокс и накатить линукс . Там ведь еще за корпус доплатить и с охладом вопрос ... и использовать как пополненный ПК причем
может я сейчас скажу глупость но там ведь есть еще av разъем четырехконтактный у которого вполне можно взять звук. и на некоторых приставках раббтает даже простой аудиоджек неполностью "дотокнутый" в этот разъем. но через hdmi правильнее конечно
А чип слабый откровенно
В каком месте он слабый? Вы просто задачу выбрали не соответствующую для него. Зачем на такой штуке видео гонять или иксы? Это шикарный роутер, система автоматизации, умный дом, даже домашний NAS.
Видео - просто не его стихия.
Для проводного роутера - только один порт (а на некоторых моделях его нет вообще), на WiFi чипы на таких роутерах часто жалуются что медленно работает, даже впритык к источнику сигнала (нет нормальной антенны, ни разъёма для неё, только металлический уголок торчащий из платы, что выполняет роль антенны). И кстати WiFi я так и не завёл в линуксе. NAS на карте памяти что-ли? Диск можно подключить только через USB, устройство обвешанное всякими дополнениями через USB хаб - ну так себе.
Это младший чип в линейке RK35xx, он очень дешевый, но слабый. Вот какой-нибудь Orange Pi 5 на RK3588 - это крутая штука, но и стоит 5-7 раз дороже.
А у кого-нибудь получилось завести Lima на BPI-M2 zero? Похоже что в последних ядрах armbian его по умолчанию не включили.
Собираюсь выложить на гитхабе свои настройки и хаки - так и не смог добиться работоспособности HDMI-аудио, хотя драйвер есть и он делает вид что работает, определяется в ALSA и PulseAudio, но при воспроизведении тишина. Через TV-выход звук идёт (нужны правки конфига ядра, для hinlink-h28k эти драйверы отключены).
Запуск Линукс на TV-боксе на чипе RK3528