После почти недели изысканий, найден идеальный кандидат для построения собственной системы под A13 - ядро из прошивки к Prestigio PMP3670B с открытой конфигурацией под Android 4.1.1, к которому существует SDK для nuclear_evb:
, что предоставляет огромные возможности для построения системы с "0".
Во вложении: .config, zImage и содержимое /vendor/modules/
Цитата:
Linux version 3.0.8+ (ljw@ubuntu-A10) (gcc version 4.5.1 (Sourcery G++ Lite 2010.09-50) ) #1 PREEMPT Wed Jun 5 16:37:51
nuclear_a86-user 4.1.1 JRO03C 20130617 test-keys
Также можно поискать в прошивках для устройств, построенных на nuclear-a86, ядро к 4.0.4,
что и было найдено к прошивке для Prestigio PMP3570C,
Цитата:
Linux version 3.0.8+ (ljw@ubuntu-A10) (gcc version 4.5.1 (Sourcery G++ Lite 2010.09-50) ) #10 PREEMPT Wed Jan 9 14:59:20
nuclear_a86-user 4.0.4 IMM76D 20130118 test-keys
, но в этом случае для сборки дополнительных библиотек придется использовать имеющийся SDK для Android 4.0.3,
А можно поподробнее, что со всем этим делать, применительно к моему случаю.
23.11.2013, 21:07
HoSStiA
Re: Андроид зеркало на Allwinner A13
Цитата:
Сообщение от Rover
А можно поподробнее, что со всем этим делать, применительно к моему случаю.
Сначала попытаюсь создать прошивку на основе данного стокового ядра от Prestigio для DNS E76 при помощи имеющихся SDK, либо взяв готовое для 4.0.4 из прошивки PMP3570C и подставить в прошивку от E76 на предмет совместимости. Поскольку E76 априори совместимо с устройствами nuclear_evb.
Для твоего случая, задача №1 - разработка модулей и библиотек ALSA, совместимых одновременно с текущей версией ядра, Android и поддерживающих USB Audio на любом из устройств под Allwinner A13.
Следующий шаг - это адаптация под твоё устройство работоспособного варианта. Готовых решений на рынке пока не замечено.
---------- Сообщение добавлено 24.11.2013 в 03:40 ----------
По наводке китайцев, нашел еще один вариант исходников Android 4.0.4 на 14Gb для A13:
Оказывается, не все так сложно и собирается. Больше всего проблем, естественно, с поиском исходного кода для нестандартных драйверов.
Тем не менее, неплохая подборка исходников модулей тачскрина:
root@android:/ # lsmod
8188eu 631285 0 - Live 0xbf27b000 snd_usb_audio 71460 0 - Live 0xbf247000
snd_usbmidi_lib 15375 1 snd_usb_audio, Live 0xbf23f000
snd_rawmidi 14979 1 snd_usbmidi_lib, Live 0xbf237000
snd_hwdep 4489 1 snd_usb_audio, Live 0xbf232000
rtl8150 8523 0 - Live 0xbf226000
mcs7830 5810 0 - Live 0xbf220000
qf9700 7414 0 - Live 0xbf21a000
asix 20236 0 - Live 0xbf210000
videobuf_dma_contig 4370 0 - Live 0xbf20b000
videobuf_core 13526 1 videobuf_dma_contig, Live 0xbf203000
cedarx 9722 0 - Live 0xbf1fc000
mali 95664 8 - Live 0xbf1d7000
ump 26381 11 mali, Live 0xbf1ca000
gslx680 575339 0 - Live 0xbf09c000
pixcir_cxx 19118 0 - Live 0xbf092000
gt811 12408 0 - Live 0xbf082000
byd693x_ts 7107 0 - Live 0xbf069000
ssd253x_ts 18129 0 - Live 0xbf046000
inet_ctp 1633 5 gslx680,pixcir_cxx,gt811,byd693x_ts,ssd253x_ts, Live 0xbf034000
mxc622x 4483 0 - Live 0xbf02e000
nand 154139 8 - Live 0xbf000000
, то есть с ядром от Prestigio 3570C, собранными на основе его конфигурации модулями, и оригинальном Android 4.0.4 usb-snd-audio.ko загрузилось,
а также загрузились c подправленными в hex-editor'е на
Цитата:
vermagic=3.0.8+ preempt mod_unload ARMv7
оригинальные модули от тач-скрина.
Ядро и модули подменил в оригинальной прошивке, свернул в образ для LiveSuit и залил этот образ в устройство. Хотя можно было сделать это вручную, подменив /dev/block/nandc образом с новым ядром, и переписав модули в /system/vendor/modules.
Важно! При создании образа для nandc необходимо обязательно положить копию nand.ko в корень initrd.img,
у меня сейчас в Кухне это выглядит так:
Цитата:
_temp/root/ramdisk# ls -la
итого 2544
drwxr-xr-x 8 alex alex 4096 нояб. 25 03:39 .
drwxr-xr-x 3 alex alex 4096 нояб. 29 16:41 ..
drwxrwx--x 2 alex alex 4096 нояб. 25 02:45 data
-rw-r--r-- 1 400 401 116 нояб. 25 03:38 default.prop
drwxr-xr-x 2 alex alex 4096 нояб. 25 02:45 dev
-rwxr-x--- 1 400 401 102944 нояб. 25 03:38 init
-rwxr-x--- 1 400 401 2344 нояб. 25 03:38 init.goldfish.rc
-rwxr-x--- 1 400 401 1536000 нояб. 25 03:38 initlogo.rle
-rwxr-x--- 1 400 401 18544 нояб. 25 03:38 init.rc
-rwxr-x--- 1 400 401 3568 нояб. 25 03:38 init.sun5i.rc
-rwxr-x--- 1 400 401 3445 нояб. 25 03:38 init.sun5i.usb.rc -rw-r--r-- 1 alex alex 878382 нояб. 29 16:04 nand.ko
drwxr-xr-x 2 alex alex 4096 нояб. 25 02:45 proc
drwxr-x--- 2 alex alex 4096 нояб. 29 16:39 sbin
drwxr-xr-x 2 alex alex 4096 нояб. 25 02:45 sys
drwxr-xr-x 2 alex alex 4096 нояб. 25 02:45 system
-rw-r--r-- 1 400 401 272 нояб. 25 03:38 ueventd.goldfish.rc
-rw-r--r-- 1 400 401 3825 нояб. 25 03:38 ueventd.rc
-rw-r--r-- 1 400 401 985 нояб. 25 03:38 ueventd.sun5i.rc
Напоминаю, что концепция CyagenMod акцентирует особое внимание на разработке поддержки внешних звуковых устройств платформой Android (как Bluetooth, так и USB).
04.12.2013, 02:55
HoSStiA
Вложений: 1
Нюансы установки CM10:
1. Вопреки общепринятой практике, лучше всего данный CM10 ставится прямо поверх стоковой прошивки (без предварительной чистки Dalvik, основного кэша и данных пользователя).
2. Первый запуск долгий, так как происходит обновление компонентов Android.
3. После установки CM10 не работал ни тач-скрин, ни wifi, был отключен root-доступ через ADB и сама отладка по USB (если не была включена на стоковой прошивке ранее). Последнее решилось подключением обычной USB-мыши и активации необходимых пунктов в Настройки - Для разработчика.
4. Wifi и тачскрин запустил заменой/копированием необходимых модулей: 8188eu.ko, inet_ctp.ko, gslx680.ko, gt811.ko и mxc622x.ko из оригинальной прошивки планшета в /system/lib/modules/, а также принудительной загрузки всех модулей тач-скрина через скрипт /system/etc/init.d/07touchscreen (ADB и встроенный редактор vi в помощь).
5. Самое важное, что осталось за кадром, но также было одной из причин опробовать CM10: после замены /system/bin/wpa_supplicant на приложенный
заработало подключение к Ah-Hoc WiFi точке доступа на телефоне Nokia ! Это позволяет не заботиться о присутствии 3G модуля в устройстве при наличии современного смартфона. Известны решения для Андроидов версий до 4.0.3 и для 4.3, но данное является решением по Ad-Hoc (IBSS) для Android 4.1.2 .
UPD: для более стабильной работы Wifi и восстановлении связи после "засыпания" пришлось установить приложение REGPON wifi KeepAlive,
Как видим, прогресс уже убежал немного дальше, чем последние прошивки на официальном сайте, и сборка датирована 14 октября 2013 года.
Аппарат пока без root, но это поправимо.
Цитата:
shell@android:/ $ su
/system/bin/sh: su: not found
127|shell@android:/ $ lsmod
A13_gslX680 159200 0 - Live 0x00000000
dmardxx 7197 0 - Live 0x00000000
rtl8150 8523 0 - Live 0x00000000
mcs7830 5810 0 - Live 0x00000000
qf9700 7414 0 - Live 0x00000000
asix 20228 0 - Live 0x00000000
sw_keyboard 1723 0 - Live 0x00000000
sun5i_csi0 28097 0 - Live 0x00000000
gc0308 10732 1 - Live 0x00000000
videobuf_dma_contig 4370 1 sun5i_csi0, Live 0x00000000
videobuf_core 13526 2 sun5i_csi0,videobuf_dma_contig, Live 0x00000000
cedarx 9722 0 - Live 0x00000000
mali 179086 63 - Live 0x00000000
ump 26341 13 mali, Live 0x00000000
nand 218475 10 - Live 0x00000000
Цитата:
shell@android:/ $ getevent
add device 1: /dev/input/event3
name: "gslX680"
add device 2: /dev/input/event2
name: "dmard10"
add device 3: /dev/input/event1
name: "sw-keyboard"
could not get driver version for /dev/input/mice, Not a typewriter
add device 4: /dev/input/event0
name: "axp20-supplyer"
, тесно связанными с воспроизведением аудио в оригинальных устройствах, и деревом устройства softwinner/nuclear-evb из обычного A13-SDK-Android4.0 .
Для окончательной сборки CM9 для имеющихся устройств, собираюсь адаптировать nuclear-evb к CM по образу и подобию другого дерева softwinner для a13, уже адаптированного к сборке CyanogenMod'а:
, используя пропиетарные библиотеки устройств и ядро с успешной сборкой модулей ALSA из эксперимента http://magnitola.org/android/208802-...ml#post2256498 , которые успешно создают требуемые устройства в /dev/snd/ при загрузке.
UPD: Сборка CM9 превратилась в удивительно нудный процесс, поскольку требуется собрать ядро из исходников linux-sunxi, но шедший в SDK leech-3.0 с прекомпилированными built-in.o дает ошибку при сборке с помощью toolchain GCC 4.4.3, поставляемым вместе с исходниками CM9 из репозитория, именно на этих объектных файлах. Зафиксировав этот момент, решил все-таки добиться безошибочной компиляции ядра из основного репозитория,