Или может можно андроид с флэша запускать?
Запуск ОС Андроид с SD-карты для устройств на процессоре Amlogic S912 (https://habr.com/ru/post/525116/)
https://4pda.ru/forum/index.php?showtopic=998873&st=0#entry97732150
свой ZTEМожно подробнее - что за устройство? Телефон?
ставил на него по две разные прошивки одновременно.прошивки каких систем?
Телефон?Да. ZTE Libra.
прошивки каких систем?Ну линукс на телефон ставить смысла нет и ни кто этим не заморачивается. Кастомные прошивки, обновления ну и свои эксперименты. Это чтобы основную системму не трогать.
Или может можно андроид с флэша запускать?
Я привёл это как пример загрузки с флешки:Можно подробнее
# mount mtd partitions
# Mount /system rw first to give the filesystem a chance to save a checkpoint
mount yaffs2 mtd@system /system
mount yaffs2 mtd@system /system ro remount
mount yaffs2 mtd@userdata /data nosuid nodev
mount yaffs2 mtd@cache /cache nosuid nodev
mkdir /sdz 0777 system system
mount ext4 /dev/block/mmcblk0p3 /sdz utf8
# mount mtd partitions
# Mount /system rw first to give the filesystem a chance to save a checkpoint
mount ext2 loop@/sdz/multiboot/system-loop-files/cm11 /system
mount ext2 loop@/sdz/multiboot/system-loop-files/cm11 /system ro remount
mount ext2 loop@/sdz/multiboot/data-loop-files/cm11 /data nosuid nodev
mount yaffs2 mtd@cache /cache nosuid nodev
перевод статьи Яна Мориссона. Оригинал здесьДля амлоджика тоже должны быть "tools" аналогичные Rk !
(https://plus.google.com/+IanMORRISON/posts/XyZrNp8YvJu?cfem=1)СпойлерВсегда хотели попробовать другую версию системы на вашем устройстве с RK3188 но не хотите подвергать устройство риску?
Или может на вашем устройстве установлен Linux а вы хотите попробовать андроид. Я создал инструмент который позволяет создать загрузочную карту SD с помощью которой можно работать с андроид непосредственно с карты
Вам нужен будет компьютер под управлением линукс, SD карта на 8 Гб или выше, и ваш образ операционной системы
В этом примере я использую KitKat ROM Radxa Rock: http://radxa.com/Rock/prebuilt_images
Так же загрузите необходимый инструментарий https://drive.google.com/file/d/0B99O3A0dDe67b3dBUjFzcUoyLWs
В нём вы увидете скрипт 'create-android-sdcard' а так же папку 'tools'
Первым делом вставьте вашу Sd карту в пк и используйте команду 'blkid' или 'lsblk' что бы определить имя устройства.
Теперь запустите программу и передайте имя и местоположение android rom который вы хотите поставить на вашу карту например:
./create-android-sdcard radxa_rock_android_kitkat_140909_update.img
Программа предложит вам подтвердить имя устройства SD карты. После того как подтвердите,начнётся распаковка android rom и создание разделов
на SD карте которые будут имитировать ROM включая раздел 'user'. Начнётся установка Android ROM на карту памяти и по завершению вы полуите уведомление.
Теперь вам осталось просто взять вашу карту и поставить в ваше устройство.
Первая загрузка идёт довольно медленно так что запаситесь терпением.Некоторые ROMы грузятся очень долго так что будьте особенно терпеливыми.
Впрочем это только первая загрузка, в дальнейшем всё будет гораздо быстрее.
На android KitKat всё должно работать "из коробки". Но с 4.2.2. могут работать не совсем правильно. Это связанно с тем чт встроенная память реализованна иначе. Я нашёл один конкретный ROM где проводник не распознавал внутреннюю память,
однако "ES EXplorer" смог. Все остальные работали нормально.
Теоретически эта схема должна работать с любыми образами системы. Моя программа использует стандартные инструменты RK включенными в каталоге "Tools". Я включил проверку формата памяти как в традиционной сборке так что даже если ваши параметры отличаются от традиционных то скрипт всё равно должен работать.[свернуть]
Кто-нибудь пробовал этот или другие рецепты?Ддя амлоджика похоже никто ничего не делал ... Все инструменты для других SoC.
как из образа для LiveSuit сделать загрузочную microSD-карту, с которой можно загружать планшет не используя встроенную флешь-память.
Таким образом, изменения в прошивке сводятся к изменениям файлов на microSD, а, стоит вытащить её из слота, и планшет загрузится со своей памяти как ни в чём не бывало
вот отсюда: http://dl.miniand.com/allwinnera10/system/image/tools.tar.gz скачиваем набор инструментов для работы с образами
Ддя амлоджика похоже никто ничего не делал ... Все инструменты для других SoC.Вроде, а Вас как раз AML и линуксом владеете ... ;)
Хотя для владеющего линуксом - труда не составит
Вроде, а Вас как раз AML и линуксом владеете ...Ну, то такое ...
Вообще интересно только с точки зрения установки линукса на emmc без убийства андроидВ соседней теме обсуждали скорость носителей - в итоге надо сначала определиться - надо ли вообще к этому стремиться...У меня интерес - задействовать бокс с мертвым внутр. флешем. Скорость для меня - вторично.
У меня интерес - задействовать бокс с мертвым внутр. флешемТогда вам и "карты в руки"
Как в Армбиан через CLI разрешение гуя изменить, у меня DVI монитор 1600х900 ?man xrandr
Тогда вам и "карты в руки"Придется подождать :(
Android
5.Running Android from an SD Card
=====================================СпойлерInstead of running Android from internal storage, you can run Android from SD card.
You will need to prepare the SD card as follow:
$ sudo fdisk /dev/<your sdcard,for example sdd>
Command (m for help): p
Disk /dev/sdd: 1977 MB, 1977614336 bytes
64 heads, 63 sectors/track, 957 cylinders
Units = cylinders of 4032 * 512 = 2064384 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdd1 1 30 60448+ b W95 FAT32
/dev/sdd2 31 957 1868832 83 Linux
Format the partitions using the following commands:
$ sudo mkfs.msdos /dev/sdd1
$ sudo mkfs.ext3 /dev/sdd2
Download a kernel the Android release from here and placed it in the FAT32 partition:
$ sudo mkdir -p /mnt/fat32
$ sudo mount /dev/sdd1 /mnt/fat32
$ sudo cp uImage.android /mnt/fat32
Unpack the Android rootfs tarball prepared earlier onto the EXT2 partition:
$ sudo mkdir -p /mnt/ext3
$ sudo mount /dev/sdd2 /mnt/ext3
$ sudo tar jxfv out/target/product/m1ref/rootfs.tar.bz2 --numeric-owner -C /mnt/ext3
And the final steps:
$ sync
$ sudo umount /mnt/fat32
$ sudo umount /mnt/ext3
Now you can take the SD card and insert into the M1 reference board, at the uboot
command line prompt, issue the following command:
# setenv bootcmd 'mmc init;mmcinfo;fatload mmc 0:1 82000000 uImage.android;bootm 82000000;'
# setenv bootargs 'console=ttyS0,115200n8 root=/dev/cardblksd2 rw rootfstype=ext3 init=/init mac=${ethaddr} rootwait'
# saveenv
# boot[свернуть]
rootfs tarballГде его взять (как сделать)
Сами пробовали рецепт?Нет конечно :) Пока только рецепты собираю!
Где его взять (как сделать)В теме про RK нам вроде удалось снять дамп андроида и раздербанить его
В теме про RK нам вроде удалось снять дамп андроида и раздербанить егоДля раздербанивания амлоджика тоже инструмент есть, даже два - китайский и от любителей (https://forum.xda-developers.com/devdb/project/?id=26925#downloads). Оба под винду.
Я для армбиана в готовый образ вставляю 1М с 0 сектора (там SPL и uBoot) и в нем WinHex-ом меняю таблицу разделов на ту , что в образе (+ совет Balbes150 загрузочному скрипту и .dtb.) Только после этого идет загрузка с SD !Извращенцы ... для записи u-boot в существующий (записанный на носитель) образ, есть давно отработанная методика
Извращенцы ... для записи u-boot в существующий (записанный на носитель) образ, есть давно отработанная методикаСтанешь с вами извращенцем :) !
Write u-boot to SD cardТ.е.
dd if=u-boot-<model>.img of=/dev/<SD_card> conv=fsync bs=1 count=442
dd if=u-boot-<model>.img of=/dev/<SD_card> conv=fsync bs=512 skip=1 seek=1
Для тех, у кого emmc жив - пока не понятно, какие плюсы на выходеПлюсы - для экспериментаторов-модификаторов андроида. Можно проверять новые сборки не трогая основную внутри бокса
Тогда подойдет любой линуксПоставил Armbian_19.11.3_Aml-g12_buster_legacy_5.3.0_desktop_20191126, но его теперь надо еще и правильно настроить.
Наиболее просто использовать этот. Свежее ядро под боксы из коробки
ssh ftp и т.п. есть везде
[LIST_NORMAL]Что-бы это значило ?
file="DDR.USB" main_type="USB" sub_type="DDR"
file="UBOOT.USB" main_type="USB" sub_type="UBOOT"
file="aml_sdc_burn.UBOOT main_type="UBOOT" sub_type="aml_sdc_burn"
file="aml_sdc_burn.ini" main_type="ini" sub_type="aml_sdc_burn"
file="manifest.xml" main_type="xml" sub_type="manifest"
file="meson1.dtb" main_type="dtb" sub_type="meson1"
file="platform.conf" main_type="conf" sub_type="platform"
[LIST_VERIFY]
file="boot.PARTITION" main_type="PARTITION" sub_type="boot"
file="bootloader.PARTITION" main_type="PARTITION" sub_type="bootloader"
file="logo.PARTITION" main_type="PARTITION" sub_type="logo"
file="recovery.PARTITION" main_type="PARTITION" sub_type="recovery"
file="system.PARTITION" main_type="PARTITION" sub_type="system"
/dts-v1/;Часы на передней панели ;)
/ {
model = "Amlogic";
compatible = "amlogic, Gxbb";
interrupt-parent = <0x1>;
#address-cells = <0x2>;
#size-cells = <0x2>;
......
fd628_dev {Таблица разделов ?
compatible = "amlogic,fd628_dev";
status = "okay";
clk_pin = <0x1f 0x58 0x0>;
dat_pin = <0x1f 0x59 0x0>;
stb_pin = <0x1f 0x5a 0x0>;
};
partitions {
parts = <0xb>;
part-0 = <0x34>;
part-1 = <0x35>;
part-2 = <0x36>;
part-3 = <0x37>;
part-4 = <0x38>;
part-5 = <0x39>;
part-6 = <0x3a>;
part-7 = <0x3b>;
part-8 = <0x3c>;
part-9 = <0x3d>;
part-10 = <0x3e>;
logo {
pname = "logo";
size = <0x0 0x2000000>;
mask = <0x1>;
linux,phandle = <0x34>;
phandle = <0x34>;
};
recovery {
pname = "recovery";
size = <0x0 0x2000000>;
mask = <0x1>;
linux,phandle = <0x35>;
phandle = <0x35>;
};
rsv {
pname = "rsv";
size = <0x0 0x800000>;
mask = <0x1>;
linux,phandle = <0x36>;
phandle = <0x36>;
};
tee {
pname = "tee";
size = <0x0 0x800000>;
mask = <0x1>;
linux,phandle = <0x37>;
phandle = <0x37>;
};
crypt {
pname = "crypt";
size = <0x0 0x2000000>;
mask = <0x1>;
linux,phandle = <0x38>;
phandle = <0x38>;
};
misc {
pname = "misc";
size = <0x0 0x2000000>;
mask = <0x1>;
linux,phandle = <0x39>;
phandle = <0x39>;
};
instaboot {
pname = "instaboot";
size = <0x0 0x20000000>;
mask = <0x1>;
linux,phandle = <0x3a>;
phandle = <0x3a>;
};
boot {
pname = "boot";
size = <0x0 0x2000000>;
mask = <0x1>;
linux,phandle = <0x3b>;
phandle = <0x3b>;
};
system {
pname = "system";
size = <0x0 0x40000000>;
mask = <0x1>;
linux,phandle = <0x3c>;
phandle = <0x3c>;
};
cache {
pname = "cache";
size = <0x0 0x20000000>;
mask = <0x2>;
linux,phandle = <0x3d>;
phandle = <0x3d>;
};
data {
pname = "data";
size = <0xffffffff 0xffffffff>;
mask = <0x4>;
linux,phandle = <0x3e>;
phandle = <0x3e>;
};
};
Часы на передней панелиКак можно было догадаться что это часы?
Какие могут быть особенности при работе с SD ?Некоторые тормозные
Как можно было догадаться что это часы?Я по названию fd628 догадался :)
The FD628 Service Kodi add-on has been updated as well, check out the configuration dialog to see the new features.
Любые могут умереть. Делайте бэкапыСохранять всю SD в образ для бэкапа ?
Сохранять всю SD в образ для бэкапа ?Смотря какую инфу храните. Дистр можно перенакатить с образа. Свои настройки - наработки лучше на sd не держать
А "запаковщик" не нашли?"Запаковщик" готовый есть только для образов прошивки зубочисткой
Не совсем по теме.С SD каточки как его запустить, есть готовый загрузочный образ ?
Вот недавно наткнулся случайно на форпда - TWRP запускаемый из стокового рекавери.
С SD каточки как его запустить, есть готовый загрузочный образ ?Из штатного рекавери или из самого андроида выбрать пункт > обновление и указать на архив .
можете сами найти "как запускать ведро с SD карты") :)
http://wiki.friendlyarm.com/wiki/index.php/Main_Page
Совет конечно дельный :) и интересного там много ! Обязательно постараюсь посмотреть и понять!Загрузчик с меню тоже интересно, но это другая задача
Но задача проще - не надо делать сложные загрузчики с меню. У меня есть только SD.
На ней нужно создать структуру аналогичную внутр флеш. И исправить пути монтирования.
Собрать можно в файле-образе. Для знающих это дело нескольких минут, а мне приходиться изучать все пошагово.
Сегодня подключился к КII pro терминалом и копирую разделы внутр флеш на юсб винтЦитата/dev/block/platform/d0074000.emmc/by-num:Если-бы я заранее слил все с живого андроида Т95, то сейчас было-бы проще ;)
p1 и до p14
Вас интересует только андроид? Линукс нет?Твбокс только этот - без emmc?
По ссылке для каждого девайса в конце про андроид
В итогше получилось?Ничего. Слил все блоки в один файл образа и пока остановился.
Где править пути для загрузки с SD ?У Вас на боксе ссзади есть видеовыход "тюльпан"? В нём должна быть кнопочка. Зажмите ёё зубочисткой и включите питание. Должен запуститься рекавери. В нем выбрать обновление и указать на зип-архив (ссылку я давал на предыдущей странице). Должен запуститься TWRP. В нём восстановить на своё устройство данный Вам дамп.
У Вас на боксе ссзади есть видеовыход "тюльпан"? В нём должна быть кнопочка. Зажмите ёё зубочисткой и включите питание. Должен запуститься рекавери. В нем выбрать обновление и указать на зип-архив (ссылку я давал на предыдущей странице). Должен запуститься TWRP. В нём восстановить на своё устройство данный Вам дамп.У меня внутренний флеш (eMMC) накрылся, рекавери не запустится, тк его нет :)
Starting kernel ...
uboot time: 5254679 us
[ 0.000000@0] Initializing cgroup subsys cpu
[ 0.000000@0] Initializing cgroup subsys cpuacct
[ 0.000000@0] Linux version 3.14.29-g0492a01-dirty (it01@ubuntu) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) ) #1 SMP PREEMPT Thu May 12 10:12:26 CST 2016
[ 0.000000@0] CPU: AArch64 Processor [410fd034] revision 4
[ 2.401725@1] emmc: new high speed MMC card at address 0001
[ 2.401750@1] emmc: clock 50000000, 8-bit-bus-width
[ 2.406884@0] mmcblk1: emmc:0001 M MOR 7.21 GiB
[ 2.411499@0] mmcblk1boot0: emmc:0001 M MOR partition 1 2.00 MiB
[ 2.417547@0] mmcblk1boot1: emmc:0001 M MOR partition 2 2.00 MiB
[ 2.423591@0] mmcblk1rpmb: emmc:0001 M MOR partition 3 128 KiB
[ 2.425628@3] [aml_sd_emmc_probe] aml_sd_emmc_probe() success!
[
[ 2.435742@1] mmcblk1: unknown partition tableядро загрузилось и в конце пошла ошибка :
[ 2.436081@1] [mmc_read_partition_tbl] magic error:
[ 2.436083@1] [mmc_read_partition_tbl]: partition verified error
[ 2.436085@1] [mmc_read_partition_tbl] mmc read partition ERROR!
[ 2.436322@0] amlmmc_dtb_init: register dtb chardev
[ 2.436396@0] amlmmc_dtb_init: register dtb chardev OK
[ 2.436397@0] Exit aml_emmc_partition_ops OK.
[ 2.437243@0] mmcblk1boot1: unknown partition table
[ 2.437864@0] mmcblk1boot0: unknown partition table
[ 2.438033@0] clear_emmc_wait_flag
[ 24.429227@0] init: property 'ro.product.manufacturer' doesn't exist while expanding '${ro.product.manufacturer}'
[ 24.439288@0] init: cannot expand '${ro.product.manufacturer}' while writing to '/sys/class/android_usb/android0/iManufacturer'
[ 24.450693@0] init: property 'ro.product.model' doesn't exist while expanding '${ro.product.model}'
[ 24.459640@0] init: cannot expand '${ro.product.model}' while writing to '/sys/class/android_usb/android0/iProduct'
[ 24.470002@0] init: property 'ro.usb.vendor.string' doesn't exist while expanding '${ro.usb.vendor.string}'
[ 24.479652@0] init: cannot expand '${ro.usb.vendor.string}' while writing to '/sys/class/android_usb/android0/f_mass_storage/vendor_string'
[ 24.492082@0] init: property 'ro.usb.product.string' doesn't exist while expanding '${ro.usb.product.string}'
[ 24.501910@0] init: cannot expand '${ro.usb.product.string}' while writing to '/sys/class/android_usb/android0/f_mass_storage/product_string'
[ 24.545847@0] init: cannot find '/system/bin/FD628_Demo', disabling 'fd628'
[ 24.547273@0] init: property 'ro.product.manufacturer' doesn't exist while expanding '${ro.product.manufacturer}'
[ 24.557366@0] init: cannot expand '${ro.product.manufacturer}' while writing to '/sys/class/android_usb/android0/iManufacturer'
[ 24.568772@0] init: property 'ro.product.model' doesn't exist while expanding '${ro.product.model}'
[ 24.577732@0] init: cannot expand '${ro.product.model}' while writing to '/sys/class/android_usb/android0/iProduct'
[ 24.588079@0] init: property 'ro.usb.vendor.string' doesn't exist while expanding '${ro.usb.vendor.string}'
[ 24.597734@0] init: cannot expand '${ro.usb.vendor.string}' while writing to '/sys/class/android_usb/android0/f_mass_storage/vendor_string'
[ 24.610158@0] init: property 'ro.usb.product.string' doesn't exist while expanding '${ro.usb.product.string}'
[ 24.619987@0] init: cannot expand '${ro.usb.product.string}' while writing to '/sys/class/android_usb/android0/f_mass_storage/product_string'
[ 25.228472@0] binder: 2711:2711 transaction failed 29189, size 0-0
[ 25.658518@0] CPU1: shutdown
[ 26.229522@0] binder: 2711:2711 transaction failed 29189, size 0-0
[ 27.230469@0] binder: 2711:2711 transaction failed 29189, size 0-0
reading dtb.img
** Unable to read file dtb.img **
ee_gate_off ...
Amlogic multi-dtb tool
Cannot find legal dtb!
load dtb from 0x1000000 ......
ERROR: image is not a fdt - must RESET the board to recover.
PhoenixCardНадо учить китайский ;)
[Option]И будет на англ. :)
Option=1250
;option=0为系统默认语言,option=936为简体中文,其余状态为英文
CtrlCnt=25
InfoCnt=54
936=SChinese
1250=English
Phoenixcard – это бесплатное программное обеспечение на базе Windows, предназначенное для создания загрузочных образов и записи их на подключенные съемные диски, такие как SDCARD или MicroSD.:'(
Затем съемный диск помещается в целевое устройство, и устройство загружается со съемного диска, применяя обновление или полное восстановление образа для целевого устройства.
Используется специально для процессоров Allwinner A10 ARM.
U-Boot does not need to be able to read a filesystem in order for the kernel to use it as a root filesystem or initial ramdisk;
U-Boot simply provides an appropriate parameter to the kernel, and/or copies the data to memory without understanding its contents.
However, U-Boot can also read from (and in some cases, write to) filesystems.
This way, rather than requiring the data that U-Boot will load to be stored at a fixed location on the storage device, U-Boot can read the filesystem to search for and load the kernel, device tree, etc., by pathname.
http://forum.puppyrus.org/index.php?topic=19887.0
На amlogic будет немного своей специфики, но может получиться
Спасибо +
Нет. сортировал темы - думал Вы не виделиНе видел. Спасибо !
Процессор S905X — это ARM Cortex-A53 с тактовой частотой до 1,5GHz, напичканый всевозможными декодерами для видео и аудио потоков, как например H.265 4K, VP9, поддерживающий 4КUHD и т.д.
В общем не самый плохой выбор.
В отличии от своего предшествинника, AMLogic встроила в этот процессор так называемую «Advanced TrustZone security system», которая контроллирует все критичиские системные операции, например такие как обращение к защищённым участкам памяти ROM'а, проверку сигнатуры и расшифровку ПО и т.п.
Детальную документацию на эту тему можно найти на сайте производителя (https://developer.arm.com/ip-products/security-ip/trustzone).
В качестве SecureOS выступает ATOS-V1.5-g3e467d9
Android
5.Running Android from an SD Card
=====================================
Instead of running Android from internal storage, you can run Android from SD card.
You will need to prepare the SD card as follow:
$ sudo fdisk /dev/<your sdcard,for example sdd>
Command (m for help): p
Disk /dev/sdd: 1977 MB, 1977614336 bytes
64 heads, 63 sectors/track, 957 cylinders
Units = cylinders of 4032 * 512 = 2064384 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdd1 1 30 60448+ b W95 FAT32
/dev/sdd2 31 957 1868832 83 Linux
Format the partitions using the following commands:
$ sudo mkfs.msdos /dev/sdd1
$ sudo mkfs.ext3 /dev/sdd2
Download a kernel the Android release from here and placed it in the FAT32 partition:
$ sudo mkdir -p /mnt/fat32
$ sudo mount /dev/sdd1 /mnt/fat32
$ sudo cp uImage.android /mnt/fat32
Unpack the Android rootfs tarball prepared earlier onto the EXT2 partition:
$ sudo mkdir -p /mnt/ext3
$ sudo mount /dev/sdd2 /mnt/ext3
$ sudo tar jxfv out/target/product/m1ref/rootfs.tar.bz2 --numeric-owner -C /mnt/ext3
And the final steps:
$ sync
$ sudo umount /mnt/fat32
$ sudo umount /mnt/ext3
Now you can take the SD card and insert into the M1 reference board, at the uboot
command line prompt, issue the following command:
# setenv bootcmd 'mmc init;mmcinfo;fatload mmc 0:1 82000000 uImage.android;bootm 82000000;'
# setenv bootargs 'console=ttyS0,115200n8 root=/dev/cardblksd2 rw rootfstype=ext3 init=/init mac=${ethaddr} rootwait'
# saveenv
# boot
На amlogic будет немного своей специфики, но может получитьсяВот со спецификой и проблема !
Спасибо +
объединилСпасибо !
на AML не используется внешний u-boot (если конечно самому руками его не стереть из eMMC)в зависимости от железа
Судя по
Цитата: balbes150 от 04 Март 2020, 15:30:53
на AML не используется внешний u-boot (если конечно самому руками его не стереть из eMMC)
в зависимости от железа
Load fip header from SD, src: 0x0000c200, des: 0x01400000, size: 0x000000b0
Load bl30 from SD, src: 0x00010200, des: 0x01000000, size: 0x0000a9b0
Sending bl30...........................................OK.
Run bl30...
Load bl301 from SD, src: 0x0001c200, des: 0x01000000, size: 0x00001c20
Wait bl30...Done
Sending bl301........OK.
Run bl301...
Load bl31 from SD
, src: 0x00020200, des: 0x10100000, size: 0x00011130
Как понимать - "внешний" ? На SD - это какой ?насколько я понял - это внешний
насколько я понял - это внешнийЧто-то мне кажется, что все сложнее и проще одновременно !
GXBB:BL1:08dafd:0a8993;FEAT:EDFC318C;POC:3;RCY:0;EMMC:0;READ:0;CHK:F3;SD:800;USB:8;LOOP:1;если она найдет, то
GXBB:BL1:08dafd:0a8993;FEAT:EDFC318C;POC:3;RCY:0;EMMC:0;READ:0;CHK:F3;SD:0;READ:0;CHK:0;
no sdio debug board detected
BL2 Built : 15:24:17, Oct 28 2015.
gxb g5d0d038 - xiaobo.gu@droid05
Load fip header from SD, src: 0x0000c200, des: 0x01400000, size: 0x000000b0
Load bl30 from SD, src: 0x00010200, des: 0x01000000, size: 0x0000a9b0
Sending bl30...........................................OK.
Run bl30...
Load bl301 from SD, src: 0x0001c200, des: 0x01000000, size: 0x00001c20
Wait bl30...Done
Sending bl301........OK.
Run bl301...
Load bl31 from SD
, src: 0x00020200, des: 0x10100000, size: 0x00011130
--- UART initialized after reboot ---
[Reset cause: unknown]
[Image: unknown, amlogic_v1.1.3048-cfe1053 2015-12-04 16:31:11 xing.xu@droid05]
bl30: check_permit, count is 1
bl30: check_permit: ok!
chipid: ef be ad deLoad bl33 from SD, src: 0x00034200, des: 0x01000000, size: 0x0009ec90
d f0 ad ba ef be ad de not ES chip
efuse init ops = 13
efuse init hdcp = c, cf9=7
[0.367469 Inits done]
secure task start!
high task start!
low task start!
NOTICE: BL3-1: v1.0(debug):02cce1e
NOTICE: BL3-1: Built : 15:47:40, Nov 6 2015
INFO: BL3-1: Initializing runtime services
INFO: BL3-1: Preparing for EL3 exit to normal world
INFO: BL3-1: Next image address = 0x1000000
INFO: BL3-1: Next image spsr = 0x3c9
U-Boot 2015.01-g685bb0b-dirty (Jan 08 2016 - 16:40:53)и в логе uBoot у меня
DRAM: 2 GiB
mmc read lba=0x14000, blocks=0x400а при нормальной загрузке андроида так
Amlogic multi-dtb tool
Cannot find legal dtb!
start dts,buffer=0000000073ec8d70,dt_addr=0000000073ec8d70
get_partition_from_dts: FDT_ERR_BADMAGIC
!!!!get dts FAILED
mmc get partition error!
get partition info failed !!
Using default environment
mmc read lba=0x14000, blocks=0x400
Amlogic multi-dtb tool
Multi dtb detected
Multi dtb tool version: v2 .
Support 2 dtbs.
aml_dt soc: gxl platform: sx6b6x variant: 1g
dtb 0 soc: gxl plat: sx6b6x vari: 1g
dtb 1 soc: gxl plat: sx6b6x vari: 2g
Find match dtb: 0
start dts,buffer=0000000033ecd270,dt_addr=0000000033ecda70
parts: 11
00: logo 0000000002000000 1
01: recovery 0000000002000000 1
02: rsv 0000000000800000 1
03: tee 0000000000800000 1
04: crypt 0000000002000000 1
05: misc 0000000002000000 1
06: instaboot 0000000020000000 1
07: boot 0000000002000000 1
08: system 0000000050000000 1
09: cache 0000000040000000 2
10: data ffffffffffffffff 4
get_dtb_struct: Get emmc dtb OK!
overide_emmc_partition_table: overide cache
[mmc_get_partition_table] skip partition cache.
Partition table get from SPL is :
name offset size flag
===================================================================================
0: bootloader 0 400000 0
1: reserved 2400000 4000000 0
2: cache 6c00000 40000000 2
3: env 47400000 800000 0
4: logo 48400000 2000000 1
5: recovery 4ac00000 2000000 1
6: rsv 4d400000 800000 1
7: tee 4e400000 800000 1
8: crypt 4f400000 2000000 1
9: misc 51c00000 2000000 1
10: instaboot 54400000 20000000 1
11: boot 74c00000 2000000 1
12: system 77400000 50000000 1
13: data c7c00000 10a400000 4
mmc read lba=0x12000, blocks=0x2
mmc read lba=0x12002, blocks=0x2
mmc_read_partition_tbl: mmc read partition OK!
eMMC/TSD partition table have been checked OK!
eMMC память по подключению мало отличается от простой MMC карты , известны даже случаи успешной подмены чипа eMMC обычной SD-MMC картой *
Hi,
first, the SoC loads the BL1 (first lever bootloader) from maskrom, then depending on state described by the flowchart in the S912 datasheet, BL1 loads and authenticates BL2 from external storage.
BL2 is mainly in charge of setting up DDR and clocks, then it loads and authenticates BL30 from the same storage as itself.
BL30 is in charge of various things like setting up (undisclosed) security stuff and loading the firmware of the cortex-M3 core that handles power-management and CPU cores DVFS (also known as SCPI in ARM terminology).
BL2 also loads/authenticates BL31, also called the secure monitor, running in trustzone and in charge of providing secure services to the main OS, and finally BL33, which is u-boot.
на s905, для линукса подошел meson-g12b-odroid-n2.dtbНе верю .... g12b = s922x
Не верю .... g12b = s922xИ это Правильно !!!
s905 и s922x это разные чипы, с не совместимыми DTB.вот этот dtb :
Запуск ОС Андроид с SD-карты для устройств на процессоре Amlogic S912Практически получилось? Хорошо бы более пошаговую инструкцию...
На s905x есть прошивка андроид 8 с архитектурой arm64 aonly .Она находится на сайте freaktab.Такая же архитектура arm64 и у s912. Из неё можна сделать порт на новее андроид .Я лично делал из неё и андроид 10 .Но там по мелочам не доделовал а так работал.Если хотите улучшить посмотрите здесь прошивки с архитектурой arm64 aonly.Ещё сделал андроид 11 но с архитектурой a64 ab для s905x.Но там только начало нет gapps и браузер не скачивает приложения и нет twrp.Вот в таком состоянии пока но будет лучше.
Сделал порт прошивки XVortex Android TV 9. v2.3.0 для S912 для запуска с SD-карты.
Особо ее пока не тестировал, но первое впечатление - это отличная ATV9.
Благодарим * XVortex.
Проверялась на KM8P 2G/8G. Из недостатков обнаружено следующее:
- Не работает пульт,
- Нет Wi-Fi.
Остальное работает.
Порядок установки и запуска прошивки с SD-карты описан в этом сообщении, раздел "Инструкция по установке". Или смотрим описание из архива прошивки.
#
#include <string.h>
#include "mmcparts_a9.h"
//int mmc_partition_tbl_checksum_calc(struct partitions *part, int part_num);
void init_parts()
{
memset(&g_mmcparts, 0, sizeof(struct mmc_partitions_fmt));
strcpy(g_mmcparts.magic, MMC_PARTITIONS_MAGIC);
struct partitions logo;
strcpy(logo.name, "logo");
logo.size = 0x800000;
logo.offset = 0x2800000;
logo.mask_flags = 0x1;
struct partitions recovery;
strcpy(recovery.name, "recovery");
recovery.size = 0x1800000;
recovery.offset = logo.offset + logo.size;
recovery.mask_flags = 0x1;
struct partitions misc;
strcpy(misc.name, "misc");
misc.size = 0x800000;
misc.offset = recovery.offset + recovery.size;
misc.mask_flags = 0x1;
struct partitions dtbo;
strcpy(dtbo.name, "dtbo");
dtbo.size = 0x800000;
dtbo.offset = misc.offset + misc.size;
dtbo.mask_flags = 0x1;
struct partitions cri_data;
strcpy(cri_data.name, "cri_data");
cri_data.size = 0x800000;
cri_data.offset = dtbo.offset + dtbo.size;
cri_data.mask_flags = 0x1;
struct partitions rsv;
strcpy(rsv.name, "rsv");
rsv.size = 0x1000000;
rsv.offset = cri_data.offset + cri_data.size;
rsv.mask_flags = 0x1;
struct partitions metadata;
strcpy(metadata.name, "metadata");
metadata.size = 0x1000000;
metadata.offset = rsv.offset + rsv.size;
metadata.mask_flags = 0x1;
struct partitions vbmeta;
strcpy(vbmeta.name, "vbmeta");
vbmeta.size = 0x200000;
vbmeta.offset = metadata.offset + metadata.size;
vbmeta.mask_flags = 0x1;
struct partitions param;
strcpy(param.name, "param");
param.size = 0x1000000;
param.offset = vbmeta.offset + vbmeta.size;
param.mask_flags = 0x1;
struct partitions boot;
strcpy(boot.name, "boot");
boot.size = 0x1000000;
boot.offset = param.offset + param.size;
boot.mask_flags = 0x1;
struct partitions tee;
strcpy(tee.name, "tee");
tee.size = 0x2000000;
tee.offset = boot.offset + boot.size;
tee.mask_flags = 0x1;
struct partitions vendor;
strcpy(vendor.name, "vendor");
vendor.size = 0x14000000;
vendor.offset = tee.offset + tee.size;
vendor.mask_flags = 0x1;
struct partitions odm;
strcpy(odm.name, "odm");
odm.size = 0x8000000;
odm.offset = vendor.offset + vendor.size;
odm.mask_flags = 0x1;
struct partitions system;
strcpy(system.name, "system");
system.size = 0x62c00000;
system.offset = odm.offset + odm.size;
system.mask_flags = 0x1;
struct partitions product;
strcpy(product.name, "product");
product.size = 0x8000000;
product.offset = system.offset + system.size;
product.mask_flags = 0x1;
struct partitions cache;
strcpy(cache.name, "cache");
cache.size = 0x46000000;
cache.offset = product.offset + product.size;
cache.mask_flags = 0x2;
struct partitions data;
strcpy(data.name, "data");
//data.size = 0xffffffff;
//data.size = 3470 * SZ_1M;
data.size = 0xe2c00000;
data.offset = cache.offset + cache.size;
data.mask_flags = 0x4;
/*struct partitions ;
strcpy(.name, "");
.size = 0x800000;
.offset = 0;
.mask_flags = 0x1;*/
struct partitions mmc_parts[] = { logo, recovery, misc, dtbo, cri_data, rsv,
metadata, vbmeta, param, boot, tee, vendor, odm, system, product, cache, data };
int mmc_parts_count = 17;
for(int i = 0; i < mmc_parts_count; i++)
{
g_mmcparts.partitions = mmc_parts;
}
g_mmcparts.part_num = mmc_parts_count;
g_mmcparts.checksum = mmc_partition_tbl_checksum_calc(mmc_parts, mmc_parts_count);
}
int mmc_partition_tbl_checksum_calc(struct partitions *part, int part_num)
{
int i, j;
uint32_t checksum = 0, *p;
for (i = 0; i < part_num; i++) {
p = (uint32_t *)part;
for (j = sizeof(struct partitions)/sizeof(checksum);
j > 0; j--) {
checksum += *p;
p++;
}
}
return checksum;
}
тут прошивка и инструкция для 912У меня такого нет. Переадаптировать под другие не чувствую в себе сил
Запуск любой ОС (в тос числе андроида) с SD интересен в первую очередь при сдохшей внутренней флешПринимайте еще одного счастливого владельца набора мёртвых NAND и eMMC.
Надо все 7 страниц прочитать, может у кого и получилось.нет