Инструменты пользователя

Инструменты сайта


wiki:somiq-am37-android-ics
no way to compare when less than two revisions

Различия

Показаны различия между двумя версиями страницы.


wiki:somiq-am37-android-ics [2013/01/09 11:26] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Портирование Android ICS 4.0.3 на SomIQ-AM37 ======
 +
 +В качестве готовой сборки Android ICS берем дистрибутив Android IceCream Sandwich (ICS) 4.0.3 для процессоров Texas Instruments Sitara(TM) AM3715, DevKit 3.0.0. Этот дистрибутив содержит: драйвер SGX (3D графический акселератор), WLAN и Bluetooth для чипа TI WL1271 (см [[somiq-wlan|WLAN адаптер для Somiqboard]]), USB mass storage, и т.п. Также в дистрибутиве присутствует компилятор ARM GCC.
 +
 +**Полезные ссылки**
 +
 +[[http://code.google.com/p/rowboat/wiki/ICSonBeagleboard]]
 +
 +[[http://www.ti.com/tool/androidsdk-sitara]]
 +
 +[[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_ICS_4_0_3_DevKit_3_0_0/index_FDS.html]]
 +
 +[[http://processors.wiki.ti.com/index.php/TI-Android-ICS-4.0.3-DevKit-3.0.0_DevelopersGuide]]
 +
 +[[http://processors.wiki.ti.com/index.php/TI-AM37x-Android-4.0-Guide]]
 +
 +[[http://processors.wiki.ti.com/index.php/TI-Android-ICS-PortingGuide]]
 +
 +===== Пресобранный образ =====
 +В данной таблице данны ссылки на файлы, компиляция которых описана ниже.
 +^ Файл ^ Размер ^ Ссылка ^
 +| MLO (для DDR 512M) | 20k | [[http://mentorel.ru/downloads/somiq-am37/android/ics/demo/MLO]] |
 +| u-boot.bin | 202k | [[http://mentorel.ru/downloads/somiq-am37/android/ics/demo/u-boot.bin]] |
 +| uImage | 3.1M | [[http://mentorel.ru/downloads/somiq-am37/android/ics/demo/uImage]] |
 +| Полное демо с установкой на SD (MLO, u-boot.bin, boot.scr, ядро, filesystem, benchmark tests, media files и др) | 192M | [[http://mentorel.ru/downloads/somiq-am37/android/ics/demo/somiq_am37_ics.tgz]] |
 +===== Подготовка окружения =====
 +Для разработки ПО для операционной системы Android 4.0.3 рекомендован дистрибутив Ubuntu 10.04 LTS 32bit. В общем случае может потребоваться установить следующие пакеты:
 +<code>
 +$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
 +$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
 +$ sudo apt-get update
 +$ sudo apt-get install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev minicom tftpd uboot-mkimage expect
 +$ sudo update-java-alternatives -s java-6-sun
 +</code>
 +Если вы собираетесь скомпилировать все пакеты, поставляемые в данной сборке от TI, то потребуется не менее 25ГБ свободного места на жестком диске. Для компиляции загрузчиков и ядра потребуется порядка 1ГБ сверх устанавливаемых. 
 +
 +**Всего сборка занимает 11ГБ после распаковки и без компиляции.**
 +
 +Исходные тексты можно скачать используя Rowboat Gitorious (долго и не всегда доступно), либо скачать полностью всё необходимое одним файлом. Для этого перейдите на страницу\\
 +[[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_ICS_4_0_3_DevKit_3_0_0/index_FDS.html]]\\
 +и скачайте установочный файл (внимание: размер файла 4.5ГБ)\\
 +[[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_ICS_4_0_3_DevKit_3_0_0/exports/TI-Android-ICS-4.0.3_AM37x_3.0.0.bin]]
 +
 +Далее, как рекомендует руководство от TI, но вы можете установить данный пакет в любую директорию, где достаточно места:
 +<code>
 +$ mkdir $HOME/rowboat-android
 +$ cd $HOME/rowboat-android
 +$ chmod a+x TI-Android-ICS-4.0.3_AM37x_3.0.0.bin
 +$ ./TI-Android-ICS-4.0.3_AM37x_3.0.0.bin
 +</code>
 +Согласитесь с предлагаемой лицензией и наберите "I ACCEPT", когда спросят.\\
 +Будут созданы следующие директории:
 +  * Android File system : $HOME/rowboat-android/TI-Android-ICS-4.0.3_AM37x_3.0.0/
 +  * Android Linux Kernel: $HOME/rowboat-android/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel
 +  * Bootloader: $HOME/rowboat-android/TI-Android-ICS-4.0.3_AM37x_3.0.0/u-boot
 +  * Toolchain (компилятор) $HOME/rowboat-android/TI-Android-ICS-4.0.3_AM37x_3.0.0/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
 +
 +Теперь самое главное - скачайте дополнения, чтобы добавить поддержку SomIQ-AM37 в Android:
 +<code>
 +$ wget http://mentorel.com/downloads/somiq-am37/android/ics/patch/ics.patch
 +</code>
 +Перейдите в директорию TI-Android-ICS-4.0.3_AM37x_3.0.0
 +<code>
 +$ cd $HOME/rowboat-android/TI-Android-ICS-4.0.3_AM37x_3.0.0/
 +</code>
 +Примените дополнения (патч):
 +<code>
 +patch -p1 < <путь к патчу>/ics.patch
 +</code>
 +
 +Добавьте сразу путь к компилятору в переменные окружения, чтобы собирать всё программное обеспечение по короткому имени компилятора:
 +<code>
 +$ export PATH=$HOME/rowboat-android/TI-Android-ICS-4.0.3_AM37x_3.0.0/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
 +</code>
 +
 +===== x-loader =====
 +Перейдите в директорию с исходными текстами x-loader:
 +<code>
 +$ cd <android source path>/x-loader
 +</code>
 +Задаем конфигурацию для SomIQ-AM37:
 +<code>
 +$ make somiq_am37_config
 +</code>
 +Компилируем:
 +<code>
 +$ make ARCH=arm CROSS_COMPILE=arm-eabi-
 +</code>
 +В результате получаем файл x-load.bin, который нужно преобразовать в формат, понятный загрузчику процессора (Boot ROM). Для этого скачайте утилиту signGP ([[http://beagleboard.googlecode.com/files/signGP]]), если она еще не установлена в вашей системе.
 +<code>
 +$ signGP x-load.bin
 +</code>
 +Полученный файл x-load.bin.ift переименовывают в «MLO». Позже этот файл будет записан на FAT раздел карты SD.
 +<code>
 +$ mv x-load.bin.ift MLO
 +</code>
 +===== u-boot =====
 +Перейдите в директорию с исходными текстами u-boot:
 +<code>
 +$ cd <android source path>/u-boot
 +</code>
 +Задаем конфигурацию для SomIQ-AM37:
 +<code>
 +$ make somiq_am37_config
 +</code>
 +Компилируем:
 +<code>
 +$ make ARCH=arm CROSS_COMPILE=arm-eabi-
 +</code>
 +В результате получаем файл u-boot.bin, который будет записан на FAT раздел карты SD.
 +===== Ядро Android =====
 +Перейдите в директорию с исходными текстами ядра:
 +<code>
 +$ cd <android source path>/kernel
 +</code>
 +Выполните следующие команды:
 +<code>
 +$ make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
 +$ make ARCH=arm CROSS_COMPILE=arm-eabi- somiq_am37_android_defconfig
 +$ make ARCH=arm CROSS_COMPILE=arm-eabi- uImage
 +</code>
 +После завершения компиляции будет создан файл uImage в директории "arch/arm/boot"
 +===== Файловая система =====
 +==== Готовый образ ====
 +В результате следующего шага вы получите образ файловой системы, готовый для записи на SD карту. Однако вы можете взять готовый образ, который мы уже исправили как надо и выкладываем готовым:
 +| Полное демо с установкой на SD (MLO, u-boot.bin, boot.scr, ядро, filesystem, benchmark tests, media files и др) | 192M | [[http://mentorel.ru/downloads/somiq-am37/android/ics/demo/somiq_am37_ics.tgz]] |
 +Скачайте этот архив, распакуйте и переходите к шагу "**Запись образов на карту**"
 +==== Редактирование файловой системы ====
 +
 +Мы не будем вручную компилировать ПО, поставляемое в данной сборке, т.к. TI выкладывает уже собранные, готовые образы файловых систем для AM37EVM и Beagleboard. Скачаем файловую систему для beagleboard:
 +<code>
 +$ wget http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_ICS_4_0_3_DevKit_3_0_0/exports/beagleboardXM.tar.gz
 +</code>
 +Распакуем архив:
 +<code>
 +$ tar xzf beagleboardXM.tar.gz
 +</code>
 +Получится директория "beagleboard", в которой мы изменим некоторые файлы.\\
 +Содержимое директории beagleboard:
 +<code>
 +beagleboard$ ls
 +Boot_Images  Filesystem  Media_Clips  mkmmc-android.sh  README.txt  START_HERE
 +</code>
 +Заменим загрузочные файлы. Перейдите в директорию "Boot_Images" и замените файлы MLO, u-boot.bin, uImage на скомпилированные для SomIQ-AM37.
 +
 +==== Запись образов на карту ====
 +
 +Теперь можно записать SD карту. Возьмите SD карту объемом от 2ГБ и классом не ниже 4-го (лучше 10го). Вставьте в устройство чтения карт и определите файл устройства для карты. Предположим, в вашей системе вставленная карта определяется как "/dev/sdc", тогда выполните команду (все данные на карте будут удалены):
 +<code>
 +$ sudo LANG=c ./mkmmc-android.sh /dev/sdc
 +Assuming Default Locations for Prebuilt Images
 +All data on /dev/sdc now will be destroyed! Continue? [y/n]
 +y
 +[Unmounting all existing partitions on the device ]
 +umount: /dev/sdc: not mounted
 +umount: /dev/sdc1: not mounted
 +umount: /dev/sdc2: not mounted
 +umount: /dev/sdc3: not mounted
 +[Partitioning /dev/sdc...]
 +Disk /dev/sdc doesn't contain a valid partition table
 +DISK SIZE - 4035969024 bytes
 +CYLINDERS - 490
 +[Making filesystems...]
 +[Copying files...]
 +[Copying START_HERE floder to boot partition]
 +[Copying all clips to data partition]
 +[Done]
 +</code>
 +Данный скрипт автоматически отмонтирует все разделы на карте (их было создано три), но нам необходимо изменить файл конфигурации, чтобы пользоваться сетью Ethernet. Подмонтируйте раздел ext4 на карте и откройте файл init.rc для редактирования. Обратите внимание, что даже для чтения этого файла нужны права суперпользователя (root). В конец файла добавьте следующие строки:
 +<code>
 +service dhcpcd_eth0 /system/bin/dhcpcd -ABKL
 +    disabled
 +    oneshot
 +</code>
 +Сохраните файл и отмонтируйте раздел SD карты. Теперь можно загружать Somiqboard.
 +====== Запуск Android ======
 +
 +===== Переменные окружения u-boot =====
 +Для корректной загрузки Android нужны специальные параметры "bootargs" для ядра, которые задают с помощью следующей команды:
 +<code>
 +setenv bootargs 'console=ttyO2,115200n8 androidboot.console=ttyO2 mem=256M root=/dev/mmcblk0p2 rw rootfstype=ext4 rootdelay=1 init=/init \
 +ip=off omap_vout.vid1_static_vrfb_alloc=y vram=12M omapfb.vram=0:12M omapdss.def_disp=dvi omapfb.mode=dvi:1280x720-24'
 +</code>
 +Параметры, которые вы можете изменить для конкретно вашей конфигурации:
 +  * mem=256M - на модулях с ОЗУ 512М вы можете изменить значение с "256M" на "512M"
 +  * ip=off    - по умолчанию сеть Ethernet не включена, чтобы получить IP адрес автоматически можно изменить "off" на "dhcp"
 +  * omapdss.def_disp=dvi    - здесь значение "dvi" может также быть и "lcd", если вы добавили соответствующий драйвер для LCD дисплея (не DVI монитор)
 +  * omapfb.mode=dvi:1280x720-24     - можно менять разрешение для подключенного дисплея. Например, omapfb.mode=dvi:1024x768-16  (1024x768, 16 бит глубина цветности)
 +===== Загрузка ядра и старт =====
 +Выполните последовательно следующие команды:
 +<code>
 +mmc init
 +run loaduimage
 +bootm ${loadaddr}
 +</code>
 +===== Настройка Ethernet =====
 +После запуска Android вы можете вручную включить сеть Ethernet. Для этого выполните команду:
 +<code>
 +netcfg eth0 dhcp
 +</code>
 +===== Демонстрация =====
 +Чтобы увидеть скорость работы и возможности новой операционной системы для процессорного модуля SomIQ-AM37 предлагаем видео:\\
 +[[http://www.youtube.com/watch?v=5obkgc0fH0I]]
  
wiki/somiq-am37-android-ics.txt · Последнее изменение: 2013/01/09 11:26 — 127.0.0.1