Хочу рассказать о своем увлекательном опыте установки linux на приставку z28 tv box ott, которая оснащена soc чипом Rock64 RK3328.

Некоторую информацию, я подчерпнул на 4pda.ru:
4pda.to-device
4pda.to-ubuntu

Цитирую 4pda:

Нам понадобится: — Любая прошивка для Z28 (стоковая или кастомная) — Micro SD флешка на 8 гигов (и более) — Программа Etcher (https://etcher.io/) — USBA-USBA кабель — Программа AndroidTool из этого поста (не каждая версия корректно срабатывает, поэтому лучше брать 2.39 отсюда — я делал на ней) — Программа Driver Assistant из этого поста

Процесс запуска с SD флеш:

  1. Ставим драйвера с помощью Driver Assistant.
  2. Качаем образ LINUX отсюда — https://github.com/ayu…4/linux-build/releases (я взял xenial-mate-rock64-0.4.0-63-arm64.img.xz — это образ Ubuntu с графическим рабочим столом и прочим полезным барахлом, конкретно на этом образе и ветке 0.4 работает WiFi и все остальное (на оригинальной Z28, на остальных возможно не будет WiFi и\или ethernet, надо проверять), версии ветки 0.5 умеют загружаться только с внутреннеей памяти, на флешку записывать их смысла нет, подробнее — по ссылке в конце статьи.)
  3. Распаковываем (нужно получить файл .img) и записываем его с помощью кардридера и программы Etcher на sd-флешку
  4. Если хотите сохранить текущую прошивку, то читайте пост про то, как сделать бекап (ссылка есть у меня в подписи)
  5. Теперь нам надо стереть память устройства для того, чтобы оно начало грузиться с SD флешки. Для этого запускаем AndroidTool, обесточиваем устройство, зажимаем кнопку сброса (сзади коробочки отверстие, в нем кнопка. это и есть кнопка сброса), не отпуская кнопки подключаем коробочку к компьютеру кабелем USBA-USBA через OTG разъем. Затем отпускаем кнопку сброса. В программе AndroidTool устройство должно определиться. Теперь переходим на вкладку «UpgradeFirmware», там жмем «Firmware», выбираем прошивку (подойдет любая для Z28), и после этого жмем «EraseFlash». Всё, теперь флешка внутри устройства чиста и грузиться устройство будет пытаться с SD флешки.
  6. Обесточиваем коробочку, вставляем подготовленную SD флешку, подключаем монитор, клавиатуру, мышь и подключаем питание.
  7. Смотрим на монитор — должна начаться загрузка.(rock64 — логин rock64 — пароль)

Процесс установки на внутреннюю память:

  1. Понадобится еще одна флешка, но уже USB, для хранения образа системы перед записью на внутренний накопитель и USB разветвитель, чтобы подключить мышь, клавиатуру и USB флешку одновременно
  2. Выполняем предыдущий пункт для того, чтобы получить работающую систему с SD флешки.
  3. Загружаемся с SD флешки, включаем терминал, переходим в режим работы от суперпользователя (команда sudo su, затем вводим пароль rock64)
  4. Копируем образ системы (который ранее вы записывали на SD флешку) на USB флешку (img файл), вставляем эту USB флешку в нашу коробочку.
  5. С помощью команды ls /media/rock64/ убеждаемся, что флешка подмонтировалась
  6. Запускаем команду dd if=<путь к="" файлу="" образа="" с="" флешки=""> of=/dev/mmcblk0 bs=2048 status=progress (в моем случае команда получилась такая: dd if=/media/rock64/KINGSTON/xenial-mate-rock64-0.4.0-63-arm64.img of=/dev/mmcblk0 bs=2048 status=progress)
  7. Ждём, пока скопируется весь образ, в моем случае это заняло около 25 минут.
  8. Даем команду sync, обесточиваем устройство, вынимаем обе флешки, подаем питание. Должна начаться загрузка с внутренней флешки.

Дополнение от 23 июля 2017г.:

После первого запуска (с SD флешки, либо с внутренней памяти) рекомендую выполнить команду resize_rootfs.sh с правами рута (получить права рута можно с помощью команды sudo su) и затем перезагрузиться. Эта команда расширит корневой раздел, чтобы флешка использовалась полностью. ~~~

Из собственного опыта хочу отметить следующие детали.

  1. Стоковая или кастомная прошивка нужна для того чтобы rkAndroidTool желательно версии 2.39 (один бог знает где вы его найдете) разрешил нам нажать кнопочку EraseFlash, делает он это только после выбора файла с валидной прошивкой.
  2. Для прошивки приставки нужен будет usb a — usb a кабель. Желательно короткий, т.к на 4pda пишут что с длинными могут быть проблемы. Сам прошивал на метровом всё нормально.
  3. Забэкапить прошивку как пишут на 4pda можно программой rkDumper. У меня этого не получилось, нажимаю reset на приставке (маленькая дырочка снизу приставки), чтото там определяется и вылетает с ошибкой.
  4. Чтобы загрузиться с флешки microsd, да нужно грохнуть(стереть) прошивку на внутренней флешке.
  5. Если убьете всё, есть загрузчик maskrom через который можно восстановиться. Я убивал и после само устройство какимто образом автоматически определялось в maskrom режиме.
  6. Можно прошивать образы с архитектурой armhf. Это архитектура с каким то дополнительным набором комманд, наша приставка держит.
  7. Можно зашить armbian linux http://armbian.hosthatch.com/archive/rock64/archive/ всё по аналогии c ayufan.
  8. На armbian и ayufan 0.5 и выше неработает ethernet, https://github.com/ayufan-rock64/linux-build/issues/39 причина в том что какието драйвера конфликтуют либо ведут себя не стабильно поэтому наш ethernet выключили из device-tree ядра. Вот этим скриптом https://github.com/ayufan-rock64/linux-package/blob/master/root/usr/local/sbin/enable_dtoverlay делаем вот так enable_dtoverlay eth1 ethernet@ff550000 okay и помещаем куданибудь в автозагрузку либо нужно самому отредактировать dts.

enable_dtoverlay:

#!/bin/bash

if [[ $# -lt 3 ]]; then
  echo "usage: $0 <name> <target-path> <okay|disabled> <additional dt configs...>"
  exit 1
fi

if [[ "$(basename "$1")" != "$1" ]]; then
  echo "$1: has to be file name"
  exit 1
fi

if [[ ! -d /sys/kernel/config/device-tree/overlays ]]; then
  echo "Your kernel does not support CONFIG_OF_OVERLAY."
  exit 1
fi

if ! which dtc &>/dev/null; then
  echo "Please install dtc: sudo apt-get install device-tree-compiler"
  exit 1
fi

if [[ "$3" != "okay" ]] && [[ "$3" != "disabled" ]]; then
  echo "$3: only 'okay' or 'disabled' is valid"
  exit 1
fi

NAME="$1"
TARGET="$2"
STATUS="$3"
shift 3

set -eo pipefail
cd /sys/kernel/config/device-tree/overlays

rmdir "$NAME" 2>/dev/null || true
mkdir -p "$NAME"

args() {
  for i in "$@"; do
    echo "$i;"
  done
}

generate() {
cat <<EOF
/dts-v1/;
/ {
    fragment@0 {
        target-path = "/$TARGET";
        __overlay__ {
            $(args status=\"$STATUS\" "$@")
        };
    };
};
EOF
}

echo "Applying..."
generate "$@"

generate "$@" | dtc -I dts -Odtb -o "$NAME/dtbo"

if [[ "$(cat "$NAME/status")" == "applied" ]]; then
  echo "Applied!"
else
  cat "$NAME/status"
  rmdir "$NAME"
fi

По Xorg нашёл только так -> /etc/X11/xorg.conf.d/01-armbian-defaults.conf:

Section "Monitor"
        Identifier              "Monitor0"
        Option                  "DPMS" "false"
EndSection
Section "ServerFlags"
        Option                  "BlankTime" "0"
        Option                  "StandbyTime" "0"
        Option                  "SuspendTime" "0"
        Option                  "OffTime" "0"
EndSection
Section "Device"
    Identifier  "Default Device"
    Driver      "modesetting"
    Option      "AccelMethod"    "glamor"
EndSection