Skip to content

Grommerin/meta-strim-tech

Repository files navigation

Инструкция для создания образов на marsboard.

Что бы работать с образами для marsboard необходимо скачать исходный код bitbake.
Сдесь и далее рассматривается установка в домашнюю директорию, однако все действия справедливы
и для установки в любую другую директорию на ваше усмотрение. Требований только три:
1. Для директории должны быть разрешены чтение и запись.
2. ВАЖНО!! Для сборки образов рекомендуется 50Гб свободного места на жестком диске. 
3. (примечание) Объем оперативной памяти рекомендуется не менее 4Гб (а лучше все 8Гб), иначе при недостатке памяти (открыт firefox с кучей вкладок) сборка проекта вылетает с ошибкой "Cannot allocate memory".

//.....................................................................

Устанавливаем необходимые зависимости

	$ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm curl

Инициализируем repo (из Google), добавляем его в переменные среды и даем прав всяких и разных.

	$ mkdir ~/bin

	$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

	$ PATH=$PATH:~/bin

	$ chmod a+x ~/bin/repo

Теперь пришло время скачать исходный код.

	$ mkdir fsl-community-bsp

	$ cd fsl-community-bsp

	$ repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b dora 

	$ repo sync

//.....................................................................

Желательно хотя бы раз в неделю обновлять исходный код:

	$ PATH=$PATH:~/bin

	$ cd fsl-community-bsp

	$ repo sync

//....................................................................

Для начала работы с bitbake нужно из корневой директории (fsl-community-bsp) выполнить команду:

	$ source setup-environment build

* При первом запуске согласитесь с EULA *
Эта команда создаст папку, в которой будут храниться конфигурационные, временные и выходные файлы, созданные при работе bitbake. Вся работа с bitbake происходит в созданной папке build. Вызывайте эту команду всякий раз перед тем, как впервые после релога запустить bitbake (данные не затираются, все Ок).

Теперь у вас есть исходный код для создания образов под различные платформы, однако marsboard среди них нет. Исправим это досадное недоразумение.

	$ cd ../sources

	$ git clone git://github.com/Grommerin/meta-strim-tech.git

Только что вы скачали новый слой рецептов для bitbake. В нем содержится все что нужно для сборки образов для marsboard, а так же разработанные нашей компанией программы для работы с CAN интерфейсом.

Теперь нужно рассказать bitbake о новом слое что бы он узнал о его существовании. Для этих целей в fsl-community-bsp, в папке build/conf есть файл bblayers.conf. Исправим его. 
* Эта и все последующие команды выполнять из папки fsl-community-bsp/build*

	$ gedit conf/bblayers.conf

В результате увидим следующую картину:

		LCONF_VERSION = "6"

		BBPATH = "${TOPDIR}"
		BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"

		BBFILES ?= ""
		BBLAYERS = " \
 		  ${BSPDIR}/sources/poky/meta \
		  ${BSPDIR}/sources/poky/meta-yocto \
		  \
		  ${BSPDIR}/sources/meta-openembedded/meta-oe \
		  \
		  ${BSPDIR}/sources/meta-fsl-arm \
		  ${BSPDIR}/sources/meta-fsl-arm-extra \
		  ${BSPDIR}/sources/meta-fsl-demos \
		"

Перед вами список всех слоев, о которых знает bitbake. Переменная "${BSPDIR}" - наша папка fsl-community-bsp.
Добавим новый слой после meta-fsl-demos.

		  ${BSPDIR}/sources/meta-strim-tech \

Теперь bitbake знает про новый слой, но это еще не все. По умолчанию он будет собирать образы для платы SabreBoard, что нам, конечно, не подходит. наставим его на путь истинный отредактировав файл local.conf.

	$ gedit conf/local.conf

В данный момент нас интересует переменная MACHINE ??= 'imx6qsabresd'. Заменим эту строку на такую:
	
		MACHINE ??= 'marsboard'

В конце файла добавим строку:

		GCCVERSION = "4.7%"

Данный параметр принуждает bitbake для сборки проектов использовать gcc версии 4.7.x. 
Использование именно этой версии gcc связано с ошибкой в gcc 4.8, которая при сборке ядра linux приводила к его неработоспособности и Kernel panic при загрузке ядра.

В этом же файле есть такие строки:
		
		BB_NUMBER_THREADS = '4'
		PARALLEL_MAKE = '-j 4'

Это число потоков сборки и параллельных задач сборки. Рекомендуемые значения -  в два раза больше, чем число ядер вашего процессора. 
Однако работа с числами больше 4 мной не тестировалась.

Все, теперь можно сохранить изменения и выйти. Предварительная настройка bitbake окончена и можно начинать работу.

//.....................................................................

Если хотите узнать имена доступных для сборки образов выполните команду:

	$ find ../sources -name *image*

Что бы собрать наш образ для marsboard используйте команду:

	$ bitbake strim-image-minimal

Bitbake соберет rootfs для marsboard, ядро и загрузчик.

ВАЖНО!! Сборка образа занимает довольно много времени, от часа и более. Для предупреждения появления ошибок рекомендуется на время сборки не оставлять открытыми другие приложения и вообще оставить компьютер в покое.

Для редактирования настроек ядра используйте команду:

	$ bitbake -c menuconfig linux-marsboard

После изменения насроек ядра его необходимо пересобрать:

	$ bitbake -c clean linux-marsboard

	$ bitbake linux-marsboard
	


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors