Pull to refresh

Comments 33

Рекомендую автору попробовать EmuELEC, там заявлена поддержка S905x3. Превращает TV-box на чипсете Amlogic в эмулятор десяток приставок (и других девайсов вроде ретро компьютеров), это обёртка для libretro. Подсказки по установке тут.

Да тут вообще не очень все понятно в статье. Есть приставки у меня H96Max X3 4/64 и H96Max X3 4/128. Процессор тот же самый что и у автора. На обе прекрасно без проблем встал Armbian и на основе debian и на основе ubuntu. Все работает без проблем, ставится 5 минут, ничего компилировать не надо. Все работает из коробки.

Наверное автору не повезло с железом или испортил Андроид неудачной установкой в начале. Те же разработчики EmuELEC пишут, что эти китайские боксы могут иметь много различных модификаций, даже если продаются с одним названием. Если легко получилось на одном - не значит что получится на другом, внешне таком же. Что и в статье упоминалось. Бывают даже подделки с худшими характеристиками, чем заявлено. Статья наверное о том как пойти самым сложным путём, но такой "низкоуровневый" опыт может оказаться полезным для восстановления окирпиченных боксов.

Совершенно верно.
Андроид был испорчен, но это было уже потом в результате экспериментов. Наложилось слишком много факторов, которые в сумме давали результат будто передо мной кирпич. Самый главный - это отсутствие микросхемы PHY. Для того чтобы задействовать встроенный в SoC сетевой интерфейс MII пришлось подбирать DTB. И да, мне на самом деле такие эксперименты дали мотивацию углубиться в суть процессов.

китайские боксы могут иметь много различных модификаций

У меня на руках в разное время было четыре маршрутизатора ZTE WE1026, на которые я ставил прошивки. Среди них не было двух одинаковых, несмотря на то, что надписи на плате совпадали, включая версию.

Почему не грузилось вкратце резюме из написанного в статье:

  1. В следствие отличия сетевого модуля от моделей с таким же названием была неработоспособность сети. Решилось подбором DTB.

  2. Отсутствие HDMI сигнала из-за серверной сборки. В десктопных сборках с поддержкой потом HDMI начал работать, но до этого нужно было дойти.

  3. Несовместимость с горой флэшек или глючность кардридера.

Результат такой загрузки выглядел внешне как кирпич. Чтобы разобраться пришлось подключить UART консоль.

Плюс у меня слетела EMMC партиция после экспериментов. Это, как оказалось, корянит скрипты автозагрузки, которые в первую очередь проверяют файлы на EMCC. Я переписал скрипты так, чтобы пропускали обращение к EMMC.

А для тех кто запорол систему на EMMC и хочет вернуть Адроид, внизу есть ссылочка на видео как раскирпичить такой девайс через замыкание контакта на плате. Этот метод работает отлично, проверил.

Можно привести четкую ссылку на образ именно под приставку? или вес таки есть моменты, типа что если зайти на сайт Arbian то в разделе скачать этой приставки не будет?

вот собственно про такое я и вел речь: это совсем не "Все работает без проблем, ставится 5 минут, ничего компилировать не надо. Все работает из коробки." это уже не просто зайти на сайт armbian и скачать. как минимум, надо сыскать этот репозиторий (причем с названием amlogic-s9xxx-armbian а там и rockchip и allwinner :) да выбрать правильный dtb А если его нет (никто не сделал) то и начинаются мытарства описанные в статье.

Что такое "рутер"? Устройство для рутования?

очень напоминает слово "буфер" в попытке выговорить слово "сабвуффер".

в вашем случае роут-маршрут (рут говорить тут категорически нельзя), соответственно маршрутизатор - роутер.

1) первое - это англицизм и говорить его нужно так как принято в нашей стране

2) второе - вы вон там кнопочку нажмите чтобы вам голосом произнесли, он там и говорит "раутер" о чем и указано в транскрипции

3) третье - транскрипция u: читается как долгое u или как руутер, в русском языке это слово читают как роутер.

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

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

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

тут именно какая-то приколюха, везде и для малинки для апельсинки банально предлагают менять карту и форматировать разными утилитами. я для своей апельсинки так и не нашел вариант такой, чтобы она начала работать, вообще считаю идиотской систему, которая не умеет выводить какой-то базовый пустой сигнал на экран без наличия загрузчика еще и капризную до sd карты. а треш про u-boot из статьи вообще капец полный, проще купить нормальный x86 NUC и не возиться с этой китайщиной.

Меня пайка UART смутила, хотелось бы способ обновлять u-boot без пайки. Но полезно иметь такие инструкции для тяжелых случаев.

Часто имея дело с такими девайсами, уже на автомате подкидываю к ним хвост UART и сразу подключаю консоль. Никакой проблемы в том чтобы поставить три кляксы припоя. Просто непривычно для тех, кто всегда был на x86. Меня тоже долгое время это все пугало и я никак не решался, а оказалось как два пальца об асфальт. Помогает очень часто в случаях когда надо сбить пароль на камере или видеорегистраторе, точно диагностировать поломку из высыпавшихся в логи загрузки ошибок.

кто всегда был на x86

не особо понятно почему именно x86, я чинил/изучал массу устройств на x86 путём подпаивания UART.

Не разбивается. Андроид грузится со встроенной EMCC, а тут речь идет о MicroSD карточках. С USB флэшки все тоже работает отлично. Форматировать разными утилитами тоже не годится, потому что на горсть разных карточек я записывал один и тот же образ с абсолютно одинаковой файловой системой. Одни читаются, другие не читаются. Так что для решения проблемы с малинкой просто нужно брать горсть побольше. У меня с RPi2 первая попавшаяся завелась в свое время, но это из старых карт. С подобными и ТВ-приставка работает. А вот все новые трахают мозги. Я, не зная о подобной проблеме, эту малинку в свое время в утиль списал потому что тоже выглядела как кирпич, даже LED не моргнул.

Согласен, что для бытовых устройства это совсем не удобное поведение, но встраиваемые системы это совсем не бытовуха. В них ресурсы очень уж ограничены чтобы зашить поддержку графики в загрузчик. Загрузчик стараются сделать минимально упрощенным. В большинстве из них даже выхода HDMI нет. ТВ приставка это лишь частный случай ARM девайса. А взять камеру видеонаблюдения и уже некуда выводить кроме UART. Просто надо смириться с этим.

Вспомнив, что из горсти карт именно рабочая карточка имеет наклейку, я обрадовался и начал клеить на другие. Но это ничего не дало. Удалось лишь на одной прочесть из юбута содержимое в битом виде только частично:

[mmc_init] mmc init success
g12a_u212_v1#fatls mmc 0
      709   aml_autoscript 
      637   aml_autoscript.cmd 
     1536   armbian_first_run.txt.template 
      953   boot-emmc.cmd 
      571   boot-emmc.ini 
emmc/sd response crc error, cmd16, cmd->cmdarg=0x200, status=0x1ff2400
 926094819   boot-emmc.scr 
 926094819   �g�t�q.=� 
 2525971989   ���p�~�.��g 
   k�]�
          �v.}�k
           
�.�~�
 3698441086   �xu⧑.�pw 
            �▒5-��.��
            �����i��.r��
            �8��6
                 �.<�
            am�xf��.�
            ��:*߽#.�&�
MMC: block number 0x100002fd1 exceeds max(0x1dc3000)

9 file(s), 8 dir(s)

Склоняюсь к тому, что это глюки кардридера приставки.

Наверное с контактами что-то, раз сначала определяется, а потом ошибки. Возможно зависит от скорости чтения, как она автоматически увеличивается - то контакт уже оказывается недостаточно хороший и даёт ошибки. Может пыль попала или окислились. А старые карты просто не поддерживают высокоскоростной режим, поэтому и читаются.

да, скорее всего именно в скоростном режиме.

флэшка не загрузочная лишь потому, что она тупо не совместима с загрузчиком

В качестве загрузочного носителя можно использовать как USB флэшку, так и MicroSD карточку. Но, имейте ввиду, что загрузчик может закапризничать независимо от брендовости. Так у меня он отказался работать с MicroSD Samsung на 32Гб. и Transcend 16Гб., но заработал с древней ноунейм карточкой 16Гб. с надписью Taiwan и с обычной древней USB флэшкой Transcend 8Гб. Выглядят эти ошибки вот так:

я таки нашел обозначение проблемы и ее решение, жаль, я думал там будет какой-то новый рецепт.

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

С картами проблемы были, потому что они тупо не читаются.

emmc/sd response crc error, cmd16, cmd->cmdarg=0x200, status=0x1ff2400
** Unrecognized filesystem type **

Причину несовместимости я так и не выяснил. Из горсти карт лишь две подошли. Возможо глючный кард-ридер в боксе или грязь внутри на контактах.

Надо попробовать F2FS. Недавно собирал под другую железку и были проблемы с ext4 на флешке.
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=aml-s9xx-box BRANCH=current BUILD_DESKTOP=no BUILD_MINIMAL=yes EXPERT=yes FIXED_IMAGE_SIZE=4000 KERNEL_CONFIGURE=no RELEASE=bookworm ROOTFS_TYPE=f2fs

Можно было через UART-консоль скопировать boot или recovery и использовать родной .dts
(для примера - данные старые Android 4.4) - Dump the partition to a file using dd
https://gist.github.com/azureru/478fe60ee5b9ec545fa5eb286fb2c4be
sudo apt-get install device-tree-compiler
https://packages.debian.org/bookworm/abootimg
https://packages.debian.org/bookworm/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

Если нет вариантов с DTS, то такой тоже вполне рабочий. Но на большинство приставок они уже есть. Скорее всего таким же образом и вытащены.

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

как хорошо жить когда есть устраивающие образы и готовый uboot. Не думать о составе busybox, отсутствия в нем апплетов типа wget, ftpput и даже tftpd. Не пытаться собрать драйвер на вшивый mt7601 собирая костыли из серии, что половина зависимостей wifi зашита в ядро, а половину нужно собрать модулем и по функции вырезать из сырцов.......да даже не париться какую ногу поднять, чтоб изменить режим загрузки.

Хорошо вообще что есть busybox и можно просто перечислить что нужно из аплетов, buildroot или yocto, которые все сбилдят вместе с зависимостями, а не как в конце 90х каждый пакет через make configure. Очень хорошо, что мир не стоит на месте.

Sign up to leave a comment.

Articles