Найти тему
Smart home Russia

Установка Armbian на EMMC для s905x

Наконец мне удалось победить проблему связанную с невозможностью установить Armbian на EMMC своей ТВ приставки. Вернее, установить можно было всегда, только во всех прошивках за последние 2 года это приводило к тому, что приставка превращалась в нерабочую и приходилось ее откатывать на Android.

Translation to English is here. Также основной канал в telegram.

Как уже было сказано выше, о данной проблеме я знал давно. Проблемы не было на Armbian 20.05.6 с ядром 5.7.2 и впервые я с ней познакомился на 20.10 с ядром 5.9.0. Тогда, в 2010 я эту проблему так и не решил, но я и не очень хотел, все ждал, пока кто-то что-то сделает и оно само заработает.

Приставка пролежала 2 года в ящике, так как я отлично знал, что флешка, кроме того, что медленная, еще обладает одной плохой чертой - имеет ограниченное количество циклов чтения-записи. Создать на ней умный дом - означало каждый день ждать что он исчезнет в никуда не оставив за собой и следа. Покупать EMMC под разъем SD за 2-3к при наличии такой же EMMC в приставке стоимостью 1к - рука не поднялась. Я стал ждать.

Во время экспериментов я регулярно пробовал разные варианты, поэтому приставку приходилось регулярно восстанавливать.

И вот недавно я решил провести эксперимент и скачать что-то новое в надежде на то, что все заработает. Описал историю тут:

Для тех, кто не читал - в двух словах:
Armbian 22.05.0 с ядром 5.15.38 не запустился, а вот с ядром 5.10 заработал на ура. Такой вариант меня полностью устроил, но работала приставка, как и раньше - с флешки. В этот раз проблемы была еще хуже. Раньше, после установки, загрузчик ругался на отсутствие загрузочного носителя. В этот раз он даже не стартовал. Но это и не удивительно, т.к. теперь про это
пишут в открытую:

Currently s905 boxes can only be used in TF/SD/USB, other types of boxes also support writing to EMMC.

Запускаем приставку с флешки 4Гб и логинемся и видим приветственную надпись:

Прошу прощения за фото, оно сделано телефоном с экрана телевизора
Прошу прощения за фото, оно сделано телефоном с экрана телевизора

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

Тут я немного слукавил, результат - был: появлялась надпись, что установка прошла успешно, что нужно извлечь устройство usb и перезагрузится. Забегая вперед, могу сказать, что Linux успешно устанавливается на EMMC процентов на 90% и нахватает ему совсем немного, но для меня это не имеет значения, т.к. конечный результат не достигнут. Пробовал я и выбирать конфигурацию из списка готовых, но попробовав все для чипа 905 - могу сказать, что оно не работает.

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

I workaround for this issue that I am testing is to use the /boot partition from the sd card but the /root partition from your emmc.  Since the boot parttion is essential not used after boot you don't really need to worry about sd card wear or speed.  To do this you need to modify the boot command in the extlinux.conf file (on your sd card) to use 'root=LABEL=ROOT_EMMC'

Естественно, первым делом я так и сделал. Открываем на флешке наш конфигурационный файл и правим строчку. Перезагрузка и теперь у нас не грузится ничего, но теперь появляется экран с надписями, что раздел не найден.

Я о Linux знаю немного, поэтому догадки мои, возможно, ошибочны, но я предположил, что на флешке в разделе boot находится загрузчик, который работает самостоятельно и главное стабильно и если понять, на что ему указать, то все заработает. Откатываем конфигурацию назад и грузимся с флешки. Выполняем команду lsblk и видим, что EMMC очень даже размечена.

-3

Я пробовал разные адреса в команде root=... но так и не пришел к результату. Решил что нужно провести повторную установку и внимательно посмотреть логи установки

В этом логе я замечаю самое главное, что раздел mmcblk2p2, на который я уже пытался ссылаться, имеет метку ROOTFS_EMMC. Извлекаем флешку и быстро переписываем конфигурационный файл. Проверяем и перезагружаем приставку.

Все как обычно, но объем диска - 6.3Gb, а флешка на 4Gb. Это означает, что все получилось. Проверяем файловую систему - все ок.

Казалось бы, все работает и можно было бы на этом и закончить, но из приставки торчит флешка и так не должно быть. У нас есть TF порт и его мы и задействуем. Я взглянул на размер boot раздела на флешке и путем удаления лишних файлов, снизил его размер до ~ 80Mb. Посмотрел в коробку со старыми флешками - нашел одну на 128Мб. Это меня полностью устроит. Форматируем флешку в FAT32 и просто копируем содержимое boot раздела. Свой раздел я на всякий случай тоже выложу, вдруг кому-то пригодится.

Результат оказался положительным. Теперь приставка загружается с флешки на 128Мб, ничего не пишет на нее и начинает загружаться с EMMC. С нее она и работает дальше. Скорость работы - увеличилась в разы, как и надежность. Такую конфигурацию я пока и оставлю для экспериментов.

Подпишитесь, чтобы не пропускать следующий контент.
Нажмите лайк, если интересно, так я пойму какие публикации больше нужны моей публике.
Также публикации можно найти на других площадках: Instagram, telegram (RU, EN, DE), Medium, LiveJournal, YouTube.