Kernel & Hardware Services Quick Start/ru
From Symbian Developer Community
Пакет ядра и интерфейсов взаимодействия с аппаратным обеспечением (Kernel & Hardware Service) — это основа, на которой строится вся остальная система. Однако, для того чтобы запустить Symbian ядро, необходима база (baseport), которая включает в себя основные аппаратные части Symbian платформы. Для других систем часто это все известно как Board Support Package (BSP, пакет поддержки платформы). Этот термин используется в Symbian, но "Board Support Packages" пакет на данный момент почти пуст и содержит только Windows эмулятор, а также тесты некоторых абстрактных аппаратных интерфейсов.
На момент выхода ядра под EPL, представлены две базы с открытым исходным кодом доступных для широкого использования и экспериментирования, а также надеемся, что это поспособствует созданию новых баз. Первая база называется Syborg: она позволяет запускать бинарные ARM файлы для платформы Symbian на популярном эмуляторе QEMU. Другая база предназначена для дешевых BeagleBoard платформ разработки с процессором OMAP3530 от Texas Instruments.
В дополнение к базам с открытыми исходными кодами, доступна также бинарная база для официальной Symbian^3 аппаратной платформы - Zoom II. Загрузить ее можно на omapzoom.org.
Contents |
С чего начать
Для того чтобы собрать и запустить Symbian ядро на поддерживаемых ее платформах, необходимо выполнить следующую последовательность шагов:
- Получить необходимые для сборки программные инструменты.
- Установить среду разработки.
- Получить исходный код ядра.
- Получить исходный код базы.
- Собрать базу.
- Создать образ ROM.
- Загрузить образ ROM на платформу.
Для того чтобы ускорить процесс получения всего этого набора, для SEE 2009 был создан Kernel Taster Kit, в котором уже включены большая часть шага 2 и полностью 3-6 шаги. Он включает исходный код, бинарные файлы сборки и ROM образы для баз QEMU/Syborg и BeagleBoard.
Приведенные ниже инструкции подразумевают, что используется Microsoft Windows (XP или Vista, возможно даже Windows 7). Также возможно собрать и запустить Symbian код на Linux, но это потребует чуть-чуть больших усилий, смотри эти темы на форуме.
Получение необходимых для сборки программных инструментов
Для того чтобы собрать код Symbian платформы и базы, необходимо установить:
- Компилятор, который это поддерживает.
- Существует бесплатная версия компилятора ARM RVCT 4.0 совместимая для использования с Symbian (инструкции по установке смотри здесь).
- Поддержка с помощью GCCE находится в стадии разработки.
- ARM RVCT 2.2, который все еще официально поддерживается для сборки платформы.
- Product Development Toolkit (PDT) и необходимые зависимости от Perl и Python (инструкции по установки смотри здесь).
Установка Kernel Taster Kit
Затем откройте командную строки и создайте новую директорию (в примере, приведенном ниже, я назвал ее Symbian_Kernel_Taster) и замените (с помощью команды subst) ее какой-либо буквой диска (в примере используется X: ):
C:\>mkdir Symbian_Kernel_Taster
C:\>subst X: Symbian_Kernel_Taster
Распакуйте Kernel Taster Kit в корень только что созданного диска. Можно воспользоваться, например, WinZip или Windows пунктом контекстного меню "Extract all files..." (Извлечь все файлы).
Установка среды Kernel Taster
В командной строке установите следующие переменные окружения:
C:\>set EPOCROOT=\
C:\>set path=\epoc32\tools;\epoc32\gcc\bin;%path%
Это укажет средствам разработки место поиска кода и других необходимых для процесса сборки программ. В примере использовались пути без буквы диска, это означает, что теперь команды, которые относятся к средствам разработки Symbian, можно запускать с подключенного нами диска.
Если используется RVCT 4.0 и при этом не установлен RVCT 2.2, то для предотвращения поиска компилятора RVCT 2.2 необходимо определить следующие переменные среды:
C:\>set RVCT22BIN=ignored
C:\>set RVCT22INC=ignored
C:\>set RVCT22LIB=ignored
| Note Таким способом устанавливаются переменные только для одной сессии в определенной командной строке. Чтобы они оставались постоянными, установите их через панель управления или, что предпочтительнее, сделайте это в отдельном bat файле. |
Загрузка образа ROM на платформу
Kernel Taster Kit предоставляется с образами ROM для Syborg и BeagleBoard. Они находятся в \epoc32\rom. Также там можно найти бинарную сборку Windows для эмулятора QEMU.
Для того чтобы запустить образ Syborg ROM на QEMU, выполните следующую команду в командной строке (сначала смените диск, если не сделала этого раньше):
C:\>X:
X:\>cd \symbian-qemu-0.9.1\bin
X:\symbian-qemu-0.9.1\bin>arm-none-symbianelf-qemu-system -M \sf\adaptation\qemu\baseport\syborg\syborg.dtb -kernel \epoc32\rom\SYBORGARMV5D.IMG
Если все было установлено правильно, то появится окно QEMU с Symbian, примерно такое какое показано на рисунке ниже:
Для более подробной информации по использованию QEMU и Syborg с Symbian обратитесь к этой странице wiki, а для инструкций по отладке сюда.
Если у вас имеется BeagleBoard (или вы планируете его приобрести) и хотите запустить BeagleBoard ROM образ, то обратитесь за инструкциями сюда.
Что дальше?
Перед тем как пойти дальше, необходимо проверить то, что среда установлена корректно. Для этого перекомпилируем базу Syborg, затем заново создадим и запустим образ ROM. Если у вас есть BeagleBoard, также можно попробовать пересобрать базу и ROM для BeagleBoard.
Сборка Syborg
Закройте текущее окно QEMU (если оно все еще запущено) и выполните следующую команду:
X:\symbian-qemu-0.9.1\bin>cd \sf\adaptation\qemu
X:\sf\adaptation\qemu>sbs -s package_definition_2.0.1.xml -c armv5.rvct4_0 -k -j 4
Все изменения произойдут в корневой директории QEMU пакета, в которой находится база Syborg. Сборка пройдет с помощью SBSv2 (Raptor) и RVCT 4.0. В зависимости от характеристик компьютера это может занять чуть более трех минут и завершится без ошибок, правда с 136 предупреждениями.
| Note На самом деле, armv5.rvct4_0 - это не самый верный путь делать сборку, потому что armv5 подразумевает использование RVCT2.2, а опция .rvct4_0 говорит о том, что необходимо использовать 4.0, однако, не удаляет зависимости от RVCT22, поэтому приходится устанавливать переменные, так как это было проделано выше. Правильный способ сборки — это -c arm.v5.udeb.rvct4_0 -c arm.v5.urel.rvct4_0. Со временем инструменты разработки будут настроены на использование правильного компилятора RVCT по умолчанию, что позволит избежать проблем в большинстве случаев -- TimBand Product Owner, Raptor |
Файл package_definition_2.0.1.xml указывает Raptor, что собирать, опция -j 4 определяет количество параллельных потоков компиляции. Цифра 4 выбрана для того, чтобы гарантировать максимальное использование типичных на сегодня двухядерных систем. Это будет прекрасно работать и в том случае, если доступно всего лишь одно ядро.
Теперь соберем образ ROM командой:
X:\sf\adaptation\qemu>cd \sf\os\kernelhwsrv\kernel\eka\rombuild
X:\sf\os\kernelhwsrv\kernel\eka\rombuild>rom --variant=syborg --inst=armv5 --build=udeb --type=tshell --name=\epoc32\rom\SYBORGARMV5D.IMG
Эти изменения произойдут в директории, где находятся rom сборки, там появится новая сборка Syborg ROM. Параметры строки означают:
- --variant определяет директорию в \epoc32\rom, которая содержит IBY файлы, определяющие платформо-зависимые бинарные файлы необходимые для ROM
- --inst определяет архитектуру сборки
- --build определяет отладочные или релиз версии бинарных файлов должны использоваться
- --type=tshell выбирает из текущей директории tshell.oby файл, который определяет имена IBY файлов, получаемых из --variant директории и запоминаемых для определения стандартного текстового shell ROM
- --name определяет имя получаемого образа
Предположим, что сборка ROM прошла без ошибок, а следовательно теперь можно проделать все те шаги по запуску образа на QEMU из предыдущей секции.
Сборка BeagleBoard
Для пересборки базы BeagleBoard и получения ROM, воспользуйтесь следующими командами:
X:\>cd \sf\adaptation\beagleboard
X:\sf\adaptation\beagleboard>sbs -s package_definition_2.0.1.xml -c armv5.rvct4_0 -j 4
X:\sf\adaptation\beagleboard>cd \sf\os\kernelhwsrv\kernel\eka\rombuild
X:\sf\os\kernelhwsrv\kernel\eka\rombuild>rom --variant=beagle --inst=armv5 --build=udeb --name=\epoc32\rom\BEAGLEARMV5D.IMG
| Note Опция tshell, которая используется выше (для создания Syborg ROM), здесь указывать не надо, так как она определена по умолчанию. |
Теперь, когда вы убедились, что можете пересобирать и затем запускать ROM, можно перейти к модифицированию исходного кода. В этом документе для примера проделано простое изменение исходного кода.
Решение проблем
Возникли ли проблемы при попытке проделать предложенные инструкции? Найденные проблемы и их решения можно найти на этой странице. Оставьте там комментарии по своей проблеме.
Итоги
Если все инструкции в этой статье были выполнены правильно, то теперь у вас есть возможность работать и экспериментировать с ядром Symbian и базами. Это подразумевает сборку базы и получение образа ROM.
Что дальше? Можно попробовать сделать это.
Ссылки и материалы для дальнейшего чтения
- Kernel & Hardware Services package landing page
- Kernel & Hardware Services Guide in the Symbian Developer Library for Product Developers
- Complete version of the Symbian OS Internals book
- Base Porting Quick Start
- BeagleBoard Quick Start
- Guide to using ROM.bat - for creating text shell ROMs, as in this article.
- ROM Building Guide - for creating more complex ROMs than a text shell!
- More information on Syborg & QEMU
- Debugging Symbian code on QEMU
Comments
Sign in to comment…



