Skip to content

Latest commit

 

History

History
282 lines (249 loc) · 10.9 KB

QtBuildroot.wiki

File metadata and controls

282 lines (249 loc) · 10.9 KB

  1. summary Сборка ядра и корневой ФС с поддержкой Qt в buildroot

Table of Contents

Введение

Описание процесса сборки корневой файловой системы c Qt-embedded (работает без Х-сервера напрямую с framebuffer), на примере buildroot-2012.02. Предполагается что выполнены настройка host-системы и собран кросскомпилятор, как описанно в OsSetup и CrosstoolNg.

Установка buildroot

дальнейшая настройка подразумевает что мы находимся в корне директории buildroot-2012.02

Конфигурация корневой файловой системы

Есть несколько способов внести изменения в ФС под свои нужды

http://www.buildroot.net/downloads/buildroot.html#custom_targetfs

воспользуемся "стандартным" скелетом и будем вносить свои изменения. Сохраняем копию скелета

создаем пароль суперпользователя root 123456

копируем gdb-server который мы собрали в crosstool-ng

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

прописываем настройки сетевого интерфейса

прописываем DNS сервер google

указваем в каком порядке резольвить адреса (сначала искать в локальных файлах, затем на сервере DNS)

вносим настройки tslib и мышки

корректируем конфиг по умолчанию для busybox - для удаленной отладки в Qt Creator нам потребуется pgrep и pkill

Если нужна поддержка сторожевого таймера, пропишите в загрузочные скрипты запуск демона - создайте файл fs/skeleton/etc/init.d/S15watchdog с таким содержимым

и установите права на исполнение для него

переходим к конфигурированию buidroot

Конфигурация buildroot

Запускаем конфигуратор

базовые настройки

  • Примечание:* _если вам нужна отладочная информация в системных библиотеках (например в библиотеках Qt) отключите strip_
http://wiki.starterkit-org.googlecode.com/git/images/Screenshot-buildroot-2012.02-1.png

указываем свой кросскомпилятор

http://wiki.starterkit-org.googlecode.com/git/images/Screenshot-buildroot-2012.02-2.png

настройки системы

  • Примечание:* _вместо ttyS0 нужно прописать в качестве порта getty для i.mx23 - ttyAM0, для i.mx53 - ttymxc0_

http://wiki.starterkit-org.googlecode.com/git/images/Screenshot-buildroot-2012.02-3.png

Выбор пакетов для корневой ФС

для примера в Qt выбран практически полный набор

Для автоматизации загрузки проектов на плату и удаленной отладки потребуется ssh сервер, возможно использовать минималистичный dropbear, я выбираю openssh потому что тестировал с ним

Для работы с nand потребуется набор утилит mtd-utils

В качестве имиджа корневой ФС создаем простой архив tar.gz

Оставляем в Host utilities все по умолчанию - ничего не выбираем. Загрузчик не собираем - воспользуемся отдельным не из состава buildroot, так что Bootloaders так же пропускаем. Правила для ядра

http://starterkit-org.googlecode.com/files/linux-3.2.18-oem.patch - патч для платы Startterkit SK-9G45-OEM, at91sam9g45sd7 - конфиг для корневой на SD и 7" TFT панели, для 4" панели наберите в этом поле at91sam9g45sd4. Конфигурация закончена, выбиаем Exit в главном окне, на вопрос Do you wish to save your new configuration? отвечаем < Yes >

Конфиг который получился в итоге можно взять тут qt_br.config

Сборка

Qt будет собираться достаточно долго - у меня больше 3 часов (если вам что-то не нужно из модулей - вы можете их не включать в конфиг, особенно долго собирается QtWebkit). По окончании сборки имиджи ядра и корневой ФС находятся в директории output/images/.

Конфигурация ядра

После окончания сборки системы можно дополнительно сконфигурировать ядро под свои нужды

например, чтобы собрать ядро с полной вытесняющей многозадачностью

включить поддержку сторожевого таймера

пересобираем ядро (динамические модули автоматически добавятся в корневую ФС)

Конфигурация busybox

После сборке корневой ФС можно дополнительно сконфигурировать busybox, так же как ядро. Например вместо правки конфига по умолчанию, которое было сделано в начале статьи при помощи sed, можно включить поддержку pgrep и pkill

выходим с сохранением конфига и собираем