Сайт | Скачать | Видео | Wiki

Автор Тема: Установка Linux в NAND, EMMC (т.е. вместо android)  (Прочитано 21656 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Итог

Бэкап и залив alexelec делается nand-install
Вероятно для установки линукса надо залить linux.img в /dev/boot , а корень в /system dtb.img в /dev/dtb?
linux.img - собранный и обработанный для использования u-boot образ ядра+initrd+тестовый_dtb_заглушка , он используется при установке системы во внутреннюю память, точнее - это и есть то ядро, котрое используется при старте Linux из eMMC

eMMC и NAND - это одно и то же - память на плате девайса?

Как собрать linux.img и dtb.img?

Раскирпичивание проводить по этой инструкции?
« Последнее редактирование: 19 Февраль 2021, 09:14:47 от sfs »

Оффлайн balbes150

  • Ветеран
  • *****
  • Сообщений: 599
  • Репутация: +5/-0
Re: Установка Linux в NAND
« Ответ #1 : 12 Апрель 2017, 20:38:08 »
У кого получилось?
Насколько мне известно, кол. установок во внутреннюю память Armbian перевалило за несколько сотен (с учётом "размножения" системы некоторыми продавцами перед продажей по заказу пользователя).
На форуме armbian много описаний от пользователей разных моделей об установке и использовании.
Есть два типа памяти NAND и eMMC - это далеко не одно и тоже. Автоматическая установка (с использованием готового скрипта install.sh) для NAND появилась только в последних образах.
Вероятно для установки линукса надо залить linux.img в /dev/boot , а корень в /system dtb.img в /dev/dtb?
Не совсем так. Корень пишется в раздел data, т.к. размер system обычно ограничен 1 Гб (есть модели, где он увеличен до 1.5 или 2 Гб, но это редкость).
И нужно не просто скопировать корень, а выполнить еще перенастройку служебных файлов (fstab, s905_init.sh)
Как собрать linux.img и dtb.img?
Он собирается из готовых ядра, initrd и dtb утилитами mkbootimg или abootimg. Обращаю внимание, что ядро и initrd используются исходные, не обработанные mkimage.
Раскирпичивание проводить по этой инструкции?
Методика восстановления зависит от модели и глубины окирпичивания. Если предварительно, перед установкой системы во внутреннюю память с использованием скрипта /root/install.sh , сделать полную резервную копию (кстати, в составе armbian уже есть все необходимые инструменты для этого под оба вида памяти), то процесс возврата к прежнему состоянию системы существенно легче - достаточно подключить носитель, загрузиться с него и выполнить команду восстановления. При использовании скрипта установки, u-boot остаётся не тронутым (кроме добавки в виде одной переменной) т позволяет запускать внешние системы не зависимо от того, что во внутренней памяти.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Установка Linux в NAND
« Ответ #2 : 13 Апрель 2017, 09:25:28 »
"размножения" системы некоторыми продавцами перед продажей по заказу пользователя).
Есть такие? Можно примеры...
Есть два типа памяти NAND и eMMC
В чем разница и как понять какая?
s905_init.sh
amlogics905x_init.sh - скрипт активации монитора с настройками через /etc/rc.local  ?
собирается из готовых ядра, initrd и dtb утилитами mkbootimg или abootimg.
Есть примеры или мануал?
с использованием скрипта /root/install.sh
Приаттачил
сделать полную резервную копию (кстати, в составе armbian уже есть все необходимые инструменты для этого под оба вида памяти),
Можно подробнее....
Хорошо бы закончить статьейв вики с пошаговыми действиями

dtb.img связан с ядром или только с железом?
Т.е. надо его менять вместе с ядром или лучше брать из /dev/dtb железки
Как переделать dtb.img в папку. Как лучше?
« Последнее редактирование: 13 Апрель 2017, 09:28:05 от sfs »

Оффлайн balbes150

  • Ветеран
  • *****
  • Сообщений: 599
  • Репутация: +5/-0
Re: Установка Linux в NAND
« Ответ #3 : 15 Апрель 2017, 22:15:37 »
Есть такие? Можно примеры...
Есть. Ты готов закупить от 100 единиц ? Есть модели, которые используют в качестве тонких клиентов, подробности обсуждать не хочу, это коммерческий проект. Если будет реальный интерес - сведу с поставщиками.
В чем разница и как понять какая?
Уже же объяснял ...
amlogics905x_init.sh - скрипт активации монитора с настройками через /etc/rc.local  ?
угу. привычка сокращать ....

Есть примеры или мануал?
дык там весь мануал - запустить утилиту без параметров и она сама подскажет, если кратко - берёшь три нужных файла и выполняешь команду с параметрами сборки и именами этих файлов.
Приаттачил
В смысле ?
Можно подробнее....
Для eMMC - запустить от root скрипт dd_backup_x (в новых образах имя упрощено до ddbr), он сам подскажет что дальше.
Для NAND - два скрипта ddbr_backup_nand  ddbr_restore_nand , у них все понятно из названия - один создает копию, второй восстанавливает.
Хорошо бы закончить статьейв вики с пошаговыми действиями
Попробую.
dtb.img связан с ядром или только с железом?
dtb описывает параметры железа для ядра.
Т.е. надо его менять вместе с ядром или лучше брать из /dev/dtb железки
Лучше использовать те, что собраны вместе с ядром, переменные могут измениться и новое ядро не сможет работать со старыми описаниями.
Как переделать dtb.img в папку. Как лучше?
Не понял вопроса.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Установка Linux в NAND
« Ответ #4 : 16 Апрель 2017, 09:29:00 »
Ты готов закупить от 100 единиц ? Есть модели, которые используют в качестве тонких клиентов, подробности обсуждать не хочу, это коммерческий проект. Если будет реальный интерес - сведу с поставщиками.
У себя в конторе планирую переводить тонкие клиенты на s905. Как сделать - почти понятно. Надо оптимизировать по цене. Если есть готовое решение - интересно. Прямо сразу 100 не уверен. Надо xfreerdp c сетевой или NAND загрузкой

Приаттачил
Твой скрипт приаттачит с своему сообщению выше - чтобы не искали сложно
Не понял вопроса.
Как из папки dtb сделать dtb.img?

Оффлайн balbes150

  • Ветеран
  • *****
  • Сообщений: 599
  • Репутация: +5/-0
Re: Установка Linux в NAND
« Ответ #5 : 23 Апрель 2017, 18:03:22 »
У себя в конторе планирую переводить тонкие клиенты на s905. Как сделать - почти понятно. Надо оптимизировать по цене. Если есть готовое решение - интересно. Прямо сразу 100 не уверен. Надо xfreerdp c сетевой или NAND загрузкой
Опиши задачи\технологию которую планируешь использовать, возможно подскажу что-то полезное. У каждого ТВ бокса есть свои особенности, которые желательно учитывать при выборке под конкретные задачи.
Советую сразу исключить из потенциальных кандидатов нонеймы с мизерной ценой - экономия в несколько долларов, почти на 100%, вылезет в дальнейшем проблемами (это из опыта общения с этими железками).
Кстати, ты сам наверное уже много раз натыкался на 4pda на не приятные "особенности" самых дешевых вариантов.
Твой скрипт приаттачит с своему сообщению выше - чтобы не искали сложно
Этот скрипта периодически изменяется (под текущие особенности новых образов, исправляются ошибки, добавляется новый функционал т.д.), поэтому очень скоро он станет не актуален. На мой взгляд - нет такой необходимости его выдёргивать из образов, сейчас все образы идут с самой актуальной (на текущий момент) версией, которая как раз рассчитана на образ, в состав которого входит этот скрипт.
Как из папки dtb сделать dtb.img?
dtb.img - не делают из файлов из этой папки. Из этой папки выбирают один подходящий файл (или перебирают все подходящие по очереди) и копирую в корень носителя (в FAT раздел) с именем "dtb.img". Это связано с тем, что в самих dtb файлах содержится индексная информация, по которой u-boot определяет, что этот файл подходит для ТВ бокса (если в dtb.img содержится несколько данных для разных платформ). Поэтому при попытке собрать все файлы в один мультифайл - там окажутся файлы с одинаковыми индексами (описанием одной платформы) и система не сможет выбрать нужный, тупо зависнет , как в случае с отсутствующим полностью dtb набором.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Установка Linux в NAND
« Ответ #6 : 24 Апрель 2017, 09:29:15 »
Из этой папки выбирают один подходящий файл (или перебирают все подходящие по очереди) и копирую в корень носителя (в FAT раздел) с именем "dtb.img"
Именно этот рецепт помог здесь

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Установка Linux в NAND
« Ответ #7 : 17 Май 2017, 12:30:05 »
Если 2А базируется на том же ядре , что и Armbian, всё элементарно, есть специальный скрипт , который переносит систему с внешнего носителя во внутреннюю память с сохранением штатного загрузчика и всех служебных разделов. Система размещается в разделе /data, а готовый образ ядра - копируется в раздел /boot , вместо андройда.
2А и LAB на твоем ядре из armbian-ubuntu 3.14.29 #10 SMP PREEMPT Thu Mar 23 09:58:41 MSK 2017
Это получается вместо андроида. А хотелось бы его сохранить.
С другой стороны пользы от него мало:
kodi не хуже, но и не лучше
браузер : хром без мультимедиа, дефолтный - кастрированный
Полезных приложений именно для тв-бокс для себя не нашел...

Оффлайн balbes150

  • Ветеран
  • *****
  • Сообщений: 599
  • Репутация: +5/-0
Re: Установка Linux в NAND
« Ответ #8 : 19 Май 2017, 21:02:41 »
Это получается вместо андроида. А хотелось бы его сохранить.
без переделки загрузки и разделов - не реально.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Установка Linux в NAND
« Ответ #9 : 22 Май 2017, 09:29:07 »
без переделки загрузки и разделов - не реально.
Есть рецепт переделки?
Или может можно андроид с флэша запускать?

Оффлайн balbes150

  • Ветеран
  • *****
  • Сообщений: 599
  • Репутация: +5/-0
Re: Установка Linux в NAND
« Ответ #10 : 28 Май 2017, 13:33:31 »
Есть рецепт переделки?
У Khadas есть вариант двойной системы в eMMC (Android + Ubuntu). Там же есть вариант загрузчика с такой поддержкой.
Или может можно андроид с флэша запускать?
Можно. Смотри , как это реализовано в Odroid C2. Там все системы запускаются, как с внешних носителей, в том числе и Android.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Установка Linux в NAND
« Ответ #11 : 05 Июнь 2017, 12:54:46 »
Если найти рабочее ядро с aufs можно в NAND так поставить

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Установка Linux в Emmc, NAND
« Ответ #12 : 09 Февраль 2019, 14:35:15 »
Установка Linux в NAND, EMMc
дистр: 5.74 https://mirror.yandex.ru/puppyrus/armbian/aml/aml-9xx/
Делал на тв-боксе x96 (s905x 2\16) и x96mini  (s905w 1\8)
Другие дистрибутивы от balbes на другие боксы - аналогично (сам не тестировал)

1. Устанавливаем armbian на sd или флэш
2. Проверяем, что все нужные устройства работают
3. Определяемся что android не нужен. При желании можно восстановить - если сделан бэкап : /usr/bin/ddbr (в аттаче). LibreElec можно будет доустановить в nand вместе с линуксом
4. Переименовываем на sd или флэш /boot/s905x-uboot.img в /boot/uboot.img
5. Запускаем /root/install.sh (в аттаче). Этот скрипт сделает :
  a. копию android uboot : /boot/u-boot-default.img - храните иначе андроид будет не восстановить
  b. Переформатирует nand под линукс (сделает разделы как на флэшке)
  с. Скопирует файлы линукс и поправит fstab и прочие конфиги
6. Вытаскиваем все SD и флэшки. Перезагружаемся

    [How To] Install run Manjaro ARM on Amlogic TV Boxes with S922X - S905X3 SOC
https://forum.manjaro.org/t/how-to-install-run-manjaro-arm-on-amlogic-tv-boxes-with-s922x-s905x3-soc/40777
« Последнее редактирование: 11 Март 2021, 15:59:14 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Установка Linux в NAND
« Ответ #13 : 09 Февраль 2019, 16:50:35 »
Насколько я экспериментально понял - с uboot.img (т.е. линуксовым) что-либо прошить можно только из под линукса dd
Т.е. не через usb - никак. Чтобы заработали андроид - методы прошивки надо из под линукса обратно dd залить u-boot-default.img

Соответственно если линукс не грузится = невосстанвыливаемый кирпич
А грузиться после прошивки он может только из emmc (nand). Точнее загрузиться можно с чего угодно, но это должно быть прописано в emmc в /boot/extlinux/extlinux.conf
Т.е. достаточно накосячить в extlinux.conf = невосстанвыливаемый кирпич
Или есть какие-то варианты обхода\прошивки? Если нет - прошивать стремно...
Когда линукс на sd - просто вставляем куда-нибудь и правим в текст. редакторе

Оффлайн balbes150

  • Ветеран
  • *****
  • Сообщений: 599
  • Репутация: +5/-0
Re: Установка Linux в NAND
« Ответ #14 : 10 Февраль 2019, 19:24:52 »
Установка Linux в NAND
дистр: https://yadi.sk/d/srrtn6kpnsKz2/Linux/ARMBIAN/5.74/s905
Делал на тв-боксе x96 (s905x 2\16)
Другие дистрибутивы от balbes на другие боксы - аналогично

1. Устанавливаем на sd или флэш аналогично 2A
2. Проверяем, что все нужные устройства работают
3. Определяемся что android не нужен. При желании можно восстановить (если сделан бэкап : /usr/bin/ddbr ). LibreElec можно будет доустановить в nand вместе с линуксом
4. Переименовываем на sd или флэш /boot/s905x-uboot.img в /boot/uboot.img
5. Запускаем /root/install-2018.sh. Этот скрипт сделает :
  a. копию android uboot : /boot/u-boot-default.img - храните иначе андроид будет не восстановить
  b. Переформатирует nand под линукс
  с. Скопирует линукс и поправит fstab и прочие конфиги

6. Вытаскиваем все устройства. Перезагружаемся

В этой инструкции указан самый экстремальный вариант установки - с заменой штатного u-boot-2015 на u-boot-2018 (и с удалением всех разделов и данных от андройд), это делают только те, кто точно знает, для чего ему нужен u-boot-2018.

Для всех остальных рекомендован безопасный вариант установки - с сохранением штатного u-boot-2015 и всех важных служебных разделов андройд, поэтому Linux ставиться со смещением в 700Мб от начала eMMC. В этом режиме полностью сохраняется штатный u-boot recovery все данные в ENV и прочее. И можно легко вернуть родную прошивку штатным инструментом через кабель USB или SD карту. При желании, если сдвинуть установку еще дальше, можно полностью сохранить андройд и запускать его, но как это будет работать я не проверял.
Это режим включен по умолчанию и автоматически используется при выполнении штатного варианта установки в eMMC для Armbian, который описан в официальных доках (это запуск команды nand-sats-install или через общую конфигурялку Armbian - armbian-config). Кстати, официальная конфигурялка умеет много чего полезного, в том числе локализацию включать, ставить софт, настраивать и т.д. Почитайте доки.

Чтобы заработали андроид - методы прошивки надо из под линукса обратно dd залить u-boot-default.img
Не обязательно восстанавливать родной u-boot, можно просто стереть, без u-boot прошивальщик сам через кабель USB всем рулит (на первом этапе записывает u-boot из прошивки и потом ставит всю прошивку).

Соответственно если линукс не грузится = невосстанвыливаемый кирпич
Не пугай народ, восстанавливается, но сложнее и нужны разные шаги.

А грузиться после прошивки он может только из emmc (nand). Точнее загрузиться можно с чего угодно, но это должно быть прописано в emmc в /boot/extlinux/extlinux.conf
Т.е. достаточно накосячить в extlinux.conf = невосстанвыливаемый кирпич
u-boot-2018 отлично работает с внешними носителями, для всех ТВ боксов (для которых этот u-boot-2018 подходит) гарантировано работает запуск с SD (для этого на ней должна быть система со своим /boot/extlinux.conf ) и ни какого отношения это не имеет к аналогичному файлу в eMMC. Для моделей VIM\VIM2 с новым вариантом, работает SD и USB запуск.

Когда линукс на sd - просто вставляем куда-нибудь и правим в текст. редакторе
Именно так это и работает с новым u-boot-2018, править нужно файл /boot/extlinux.conf на Sd карте.
А файл в eMMC - не трогай, если точно не знаете, что и как там должно быть прописано.
« Последнее редактирование: 11 Февраль 2019, 14:56:04 от balbes150 »