LINUX.ORG.RU
ФорумMobile

AllWinner A10 & MOMO9c & Linux

 


0

1

Приветствую! Решил попробывать загрузить линукс (для начала Ubuntu с ядром для ARM архитектуры) на своем планшете-китайце на базе процессора AllWinner A10. Так вот, согласно документу:

A10 boot overview

A10 is a quite 'closed chip'. There is a brom in the chip, which can not be modified. This brom will load program from external storage(nand, mmc), which is called boot0 in allwinner. Brom will check the header of boot0, and get hardware information from boot0. The hardware information is in a config file called sys_config.fex. A pc tools will read the config file, and write the hardware information to the head of boot0. After boot0 is booted up, it will continue to load another loader boot1, boot1 init all other hardware and provides hardware abstracts and services. According to the boot OS, boot1 loads an arm elf program, boot.axf. For booting linux, boot.axf loads the u-boot and jumps to the u-boot. Then u-boot will take over.

So, the whole boot process is: brom -> boot0 -> boot1 -> boot.axf -> u-boot -> kernel

BROM Brom in A10 is at the address 0xFFFF0000, After power up, arm core will fetch the first instruction at 0xFFFF0000 and execute it. The brom code contains two parts, one is the normal boot, the other is a block of code called FEL, which is mainly a USB communication program with host pc. Steps of brom boot: 1. Check the status of one pin (the bsp pin), if the pin is low, jump to FEL, waiting host command through usb, usually communicate with a pc tool livesuite to update the firmware in nand flash. This pin can be accessible by a button marked as Recovery or RECV on tablets. 2. Load 4k data from sdcard slot 0 beginning at offset 8k to the internal sram, check if the data has a magic string, if so, it's a boot0 head. Get boot0 size from the boot0 head, and load the whole boot0. If the checksum of boot0 is ok, will jump to boot0. Any of above is wrong, will jump to FEL. 3. Similar to 2, load boot0 from nand flash. First load the first page of nand flash, check the magic string, get the boot0 size, load the whole boot0, and jump to boot0. 4. Almost the same as step 2, except that boot0 is loaded from sdcard slot 2.

Т.е, согласно документу, загрузка начинается с BROM (подобие BIOS) который проверяет носители в таком порядке: 1. SDCard на 1 слоте 2. EEPROM (NAND) Flash 3. SDCard на втором слоте Где раньше будет «замечен» загрузчик boot0, оттуда и начнется загрузка. Но возиться с boot0 … u-boot мне не пришлось. Хотя, надо бы тоже разобраться, но потом). Так вот, есть уже готовые линукс-дистрибутивовы распространяемые в виде образа для SD карточки установленным загрузчиком. Просто, достаточно скопировать этот образ на диске.

#dd if=linux-image.img of=/dev/sd[x]

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

Образы брал с данного топика: https://www.miniand.com/forums/forums/2/topics/1

Собственно, кто может что посоветовать?



Последнее исправление: denisnet (всего исправлений: 2)

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

anonymous
()
Ответ на: комментарий от anonymous

Да, но делов в том, что планшет вообще не заводится, как я понял. А так бы он завелся, прото бы экран не работал. Интересно, можно из андроид взять драйвер дисплея и подсунуть в этот образ с линуксом? Или надо подобрать именно одинаковые версии ядер?

denisnet
() автор топика
Ответ на: комментарий от denisnet

Да, но делов в том, что планшет вообще не заводится, как я понял. А так бы он завелся, прото бы экран не работал. Интересно, можно из андроид взять драйвер дисплея и подсунуть в этот образ с линуксом? Или надо подобрать именно одинаковые версии ядер?

просто возьми оригинальный загрузчик, ядро и модули от предустановленного андроида.

exception13 ★★★★★
()
Ответ на: комментарий от denisnet

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

дополнительные модули сможешь потом дособрать.

exception13 ★★★★★
()
Ответ на: комментарий от exception13

Интересно, как boot0 достать? Я же его в образе прошивки редактором не найду. Он размером 4к, на сколько я понял. Потом же вторая стадия boot1 долже лежать уже в корне первого раздела, как например у grub.

denisnet
() автор топика
Ответ на: комментарий от denisnet

Вообщем, все китайские устройства используют allwinner A10 и графику мейл 400.Видел запуск под айнол дебиана - погугли и дерзай, о результатах расскажи.

anonymous
()
Ответ на: комментарий от anonymous

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

denisnet
() автор топика
Ответ на: комментарий от denisnet

Может кто подскажет, с помощью чего можно заставить мое устройство распознаваться пк как usb сетевая карта, т.е. создать сетевой мост межу пк и планшетом через USB коннект?

denisnet
() автор топика
Ответ на: комментарий от anonymous

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

denisnet
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.