wiki:angstrom_blueshark
no way to compare when less than two revisions
Различия
Показаны различия между двумя версиями страницы.
— | wiki:angstrom_blueshark [2012/11/20 19:14] (текущий) – создано - внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Компиляция Angstrom Linux для BlueShark ====== | ||
+ | |||
+ | Очень полезная документация для тех, кто хочет в совершенстве овладеть приемами работы с OpenEmbedded: | ||
+ | |||
+ | Процедура сборки Angstrom Linux проверена на машинах: | ||
+ | |||
+ | * **Ubuntu 9.10** | ||
+ | |||
+ | Для компиляции Angstrom Linux потребуется около 15ГБ свободного места на диске. Время компиляции сильно зависит от: | ||
+ | * Скорости Internet, т.к. все исходники выкачиваются с глобальных серверов | ||
+ | * Мощности процессора (рекомендуется иметь процессор не ниже Intel Core2 Duo 3ГГц) | ||
+ | * Объема оперативной памяти (рекомендуется 2ГБ) | ||
+ | |||
+ | //На одноядерном процессоре время компиляции может занимать сутки.// | ||
+ | |||
+ | === Утилиты необходимые для сборки === | ||
+ | |||
+ | * Python (версии 2.4.0 или более поздней), | ||
+ | |||
+ | * GNU Patch (версии 2.5.9 или более поздней) | ||
+ | |||
+ | * GNU m4 | ||
+ | |||
+ | * GNU make (Версии 3.80 или более поздней) | ||
+ | |||
+ | * Psyco JIT компилятор рекомендуется для ускорения сборки | ||
+ | |||
+ | * ccache | ||
+ | |||
+ | * perl (нужна версия новее 5.0, скорее всего >=5.6.2 подойдет) | ||
+ | |||
+ | * diffstat | ||
+ | |||
+ | * bitbake ([[http:// | ||
+ | |||
+ | * wget | ||
+ | |||
+ | * curl | ||
+ | |||
+ | * ftp | ||
+ | |||
+ | * cvs | ||
+ | |||
+ | * subversion | ||
+ | |||
+ | * git | ||
+ | |||
+ | * md5sum | ||
+ | |||
+ | * sha256sum | ||
+ | |||
+ | * tar | ||
+ | |||
+ | * bzip2 | ||
+ | |||
+ | * gzip | ||
+ | |||
+ | * unzip | ||
+ | |||
+ | * Docbook DTDs и DSSSL stylesheets | ||
+ | |||
+ | * sgmltools, called " | ||
+ | |||
+ | * docbook-utils | ||
+ | |||
+ | * Texinfo версии выше 4.4 | ||
+ | |||
+ | * texi2html | ||
+ | |||
+ | * GNU sed 4.x | ||
+ | |||
+ | * Bison | ||
+ | |||
+ | * bc | ||
+ | |||
+ | * mktemp | ||
+ | |||
+ | * help2man | ||
+ | |||
+ | ===== Установка необходимых утилит в Debian и Ubuntu ===== | ||
+ | |||
+ | < | ||
+ | | ||
+ | gawk python-pysqlite2 diffstat help2man python-psyco</ | ||
+ | ====== Angstrom Linux stable ====== | ||
+ | За основу взяты инструкции отсюда: | ||
+ | |||
+ | ===== Ядро 2.6.29 stable ===== | ||
+ | В настоящее время в **стабильной** ветке компилируется именно ядро 2.6.29. | ||
+ | |||
+ | ==== Создание окружения ==== | ||
+ | |||
+ | Данные инструкции предполагают компиляцию Angstrom Linux в домашней директории пользователя, | ||
+ | |||
+ | Войдите в домашнюю директорию пользователя: | ||
+ | < | ||
+ | # cd | ||
+ | </ | ||
+ | |||
+ | Выполните следующие команды, | ||
+ | |||
+ | < | ||
+ | export OETREE=" | ||
+ | mkdir -p ${OETREE} && cd ${OETREE} | ||
+ | git clone git:// | ||
+ | cd openembedded | ||
+ | git checkout origin/ | ||
+ | </ | ||
+ | |||
+ | Обновите локальную копию хранилища OE: | ||
+ | < | ||
+ | cd ${OETREE}/ | ||
+ | git pull | ||
+ | </ | ||
+ | |||
+ | ==== Создание конфигурации ==== | ||
+ | |||
+ | Сначала необходимо установить переменные окружения, | ||
+ | |||
+ | Чтобы создать конфигурацию OE именно для Beagleboard (BlueShark) выполните следующие действия: | ||
+ | |||
+ | 1) Создайте директорию для файла конфигурации local.conf для платформы | ||
+ | < | ||
+ | mkdir -p ${OETREE}/ | ||
+ | </ | ||
+ | |||
+ | 2) Скопируйте пример конфигурации: | ||
+ | < | ||
+ | cp ${OETREE}/ | ||
+ | </ | ||
+ | |||
+ | 3) Добавьте в конец файла строку: | ||
+ | < | ||
+ | MACHINE=" | ||
+ | </ | ||
+ | |||
+ | ==== Компиляция файловой системы ==== | ||
+ | |||
+ | Вы можете не тратить несколько часов и взять готовую файловую систему отсюда [[http:// | ||
+ | |||
+ | Обратите внимание, | ||
+ | |||
+ | * Добавьте в конец файла "/ | ||
+ | < | ||
+ | vm.mmap_min_addr = 0 | ||
+ | </ | ||
+ | * Установите переменные окружения: | ||
+ | < | ||
+ | cd ${OETREE} | ||
+ | source source-me.txt | ||
+ | </ | ||
+ | |||
+ | * Зайдите в директорию OE: | ||
+ | < | ||
+ | cd ${OETREE}/ | ||
+ | </ | ||
+ | |||
+ | * Убедитесь, | ||
+ | < | ||
+ | git pull --rebase | ||
+ | </ | ||
+ | |||
+ | * Зайдите в директорию ${OETREE}/ | ||
+ | < | ||
+ | cd ${OETREE}/ | ||
+ | </ | ||
+ | |||
+ | * Начинайте компиляцию образа для работы через консоль | ||
+ | < | ||
+ | bitbake console-image | ||
+ | </ | ||
+ | |||
+ | Чтобы собрать образ с поддержкой графического интерфейса наберите команду: | ||
+ | < | ||
+ | bitbake x11-image | ||
+ | </ | ||
+ | |||
+ | **Если появилось следующее сообщение об ошибке: | ||
+ | < | ||
+ | ERROR: | ||
+ | Either fix the cause of this error or at your own risk disable the checker (see sanity.conf). | ||
+ | Following is the list of potential problems / advisories: | ||
+ | |||
+ | Using dash as /bin/sh causes various subtle build problems, please use bash instead. | ||
+ | </ | ||
+ | то нужно выполнить следующую команду, | ||
+ | < | ||
+ | sudo dpkg-reconfigure dash | ||
+ | </ | ||
+ | |||
+ | ==== Результаты компиляции ==== | ||
+ | |||
+ | По окончании работы утилиты bitbake вы должны увидеть следующую надпись: | ||
+ | < | ||
+ | NOTE: Tasks Summary: Attempted 2928 tasks of which 0 didn't need to be rerun and 0 failed. | ||
+ | </ | ||
+ | Это означает, | ||
+ | |||
+ | ^ Имя ^ Размер ^ | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |||
+ | Из этих файлов нам подойдут только файловые системы с консольным интерфейсом (Angstrom-console-image..) и графическим интерфейсом (Angstrom-x11-image..). u-boot, ядро и модули для него нам не подходят, | ||
+ | |||
+ | Далее скомпилируем ядро Linux для BlueShark. | ||
+ | ===== Компиляция ядра 2.6.29 ===== | ||
+ | //С этим ядром также работает файловая система [[http:// | ||
+ | |||
+ | Поддержка функций на платформе Atoll: | ||
+ | |||
+ | * Ethernet | ||
+ | * MMC1 | ||
+ | |||
+ | // | ||
+ | |||
+ | Откройте файл $OETREE/ | ||
+ | < | ||
+ | # Where to store sources | ||
+ | DL_DIR = " | ||
+ | |||
+ | INHERIT += " rm_work " | ||
+ | |||
+ | # Make sure you have these installed | ||
+ | ASSUME_PROVIDED += " | ||
+ | ..... | ||
+ | </ | ||
+ | и выключите строку: | ||
+ | < | ||
+ | #INHERIT += " rm_work " | ||
+ | </ | ||
+ | Ключ **rm_work** удаляет все промежуточные файлы при компиляции: | ||
+ | |||
+ | Таким образом мы выключили удаление исходников при компиляции. Теперь пересоберем ядро для Beagleboard и, наконец, | ||
+ | |||
+ | < | ||
+ | bitbake virtual/ | ||
+ | </ | ||
+ | Теперь в директории " | ||
+ | |||
+ | Добавим к ядру патчи для модуля BlueShark и отладочных плат Atoll. Для этого зайдите в директорию " | ||
+ | < | ||
+ | cd $OETREE/ | ||
+ | wget http:// | ||
+ | tar xzf blueshark-2.6.29.patches.tgz | ||
+ | </ | ||
+ | Теперь можно применить исправления для BlueShark: | ||
+ | < | ||
+ | quilt push -a | ||
+ | </ | ||
+ | Скачаем файл конфигурации ядра: | ||
+ | < | ||
+ | wget http:// | ||
+ | cp defconfig-2.6.29 .config | ||
+ | </ | ||
+ | Чтобы настроить конфигурацию ядра используют команду: | ||
+ | < | ||
+ | make ARCH=arm CROSS_COMPILE=$OETREE/ | ||
+ | </ | ||
+ | Компиляция ядра (обратите внимание на опцию -j2, в ней вы задаете кол-во ядер процессора на вашем компьютере): | ||
+ | < | ||
+ | make -j2 ARCH=arm CROSS_COMPILE=$OETREE/ | ||
+ | </ | ||
+ | Компиляция модулей: | ||
+ | < | ||
+ | make -j2 ARCH=arm CROSS_COMPILE=$OETREE/ | ||
+ | </ | ||
+ | Установите модули в файловую систему на SD-карточке: | ||
+ | < | ||
+ | sudo make -j2 ARCH=arm CROSS_COMPILE=$OETREE/ | ||
+ | </ | ||
+ | |||
+ | В результате получаем бинарник, | ||
+ | ^Скомпилированный uImage| | ||
+ | | [[http:// | ||
+ | |||
+ | ====== Angstrom Linux unstable ====== | ||
+ | За основу взяты инструкции отсюда: | ||
+ | |||
+ | Далее описаны действия, | ||
+ | |||
+ | ==== Создание окружения ==== | ||
+ | |||
+ | Войдите в домашнюю директорию пользователя: | ||
+ | < | ||
+ | # cd | ||
+ | </ | ||
+ | |||
+ | Выполните следующие команды, | ||
+ | |||
+ | < | ||
+ | export OETREE=" | ||
+ | mkdir -p ${OETREE} && cd ${OETREE} | ||
+ | git clone git:// | ||
+ | </ | ||
+ | |||
+ | Обновите локальную копию хранилища OE: | ||
+ | < | ||
+ | cd ${OETREE}/ | ||
+ | git pull | ||
+ | </ | ||
+ | |||
+ | ==== Установка bitbake ==== | ||
+ | Лучше использовать локальную версию утилиты **bitbake**, | ||
+ | < | ||
+ | cd ${OETREE} | ||
+ | wget http:// | ||
+ | tar xzf bitbake-1.8.18.tar.gz -C bitbake | ||
+ | </ | ||
+ | |||
+ | ==== Создание конфигурации ==== | ||
+ | < | ||
+ | cd ${OETREE} | ||
+ | cp openembedded/ | ||
+ | </ | ||
+ | |||
+ | Теперь необходимо исправить файл " | ||
+ | < | ||
+ | BBFILES = " | ||
+ | DISTRO = " | ||
+ | MACHINE = " | ||
+ | </ | ||
+ | |||
+ | Также, если у вашего ПК многоядерный процессор, | ||
+ | < | ||
+ | PARALLEL_MAKE = "-j 4" | ||
+ | BB_NUMBER_THREADS = " | ||
+ | </ | ||
+ | Описания этих параметров вы найдете в файле " | ||
+ | |||
+ | // | ||
+ | < | ||
+ | INHERIT += " | ||
+ | </ | ||
+ | |||
+ | Также можете указать, | ||
+ | < | ||
+ | DL_DIR = " | ||
+ | </ | ||
+ | Сохраните файл " | ||
+ | |||
+ | ==== Установка окружения ==== | ||
+ | < | ||
+ | export BBPATH=$OETREE/ | ||
+ | export PATH=$OETREE/ | ||
+ | </ | ||
+ | |||
+ | ==== Компиляция файловой системы ==== | ||
+ | |||
+ | Вы можете не тратить несколько часов и взять готовую файловую систему отсюда\\ | ||
+ | [[http:// | ||
+ | или | ||
+ | [[http:// | ||
+ | |||
+ | Зайдите в папку **build** и наберите команды: | ||
+ | |||
+ | * Компиляцию образа для работы через консоль | ||
+ | < | ||
+ | bitbake console-image | ||
+ | </ | ||
+ | |||
+ | * Компиляция образа с поддержкой графического интерфейса наберите команду: | ||
+ | < | ||
+ | bitbake x11-image | ||
+ | </ | ||
+ | |||
+ | // | ||
+ | ===== Ядро 2.6.32 unstable ===== | ||
+ | ==== Компиляция без среды OE ==== | ||
+ | |||
+ | Ядро Linux 2.6.32-r78 можно скомпилировать без громоздкой системы OpenEmbedded. Для этого выполняют следующие шаги: | ||
+ | |||
+ | 1) Скачивают исходники ядра 2.6.32-r78\\ | ||
+ | [[http:// | ||
+ | < | ||
+ | wget http:// | ||
+ | </ | ||
+ | |||
+ | 2) Скачивают набор исправлений для платформы BlueShark+Atoll-Deluxe\\ | ||
+ | [[http:// | ||
+ | < | ||
+ | wget http:// | ||
+ | </ | ||
+ | |||
+ | 3) Скачивают defconfig для ядра\\ | ||
+ | [[http:// | ||
+ | < | ||
+ | wget http:// | ||
+ | </ | ||
+ | |||
+ | 4) Теперь необходимо распаковать все исходники: | ||
+ | < | ||
+ | tar xzf git_arago-project.org.git.people.sriram.ti-psp-omap.git_a6bad4464f985fdd3bed72e1b82dcbfc004d7869.tar.gz | ||
+ | cd git | ||
+ | tar xzf ../ | ||
+ | </ | ||
+ | |||
+ | 5) Накладываем исправления для BlueShark: | ||
+ | < | ||
+ | quilt push -a | ||
+ | </ | ||
+ | |||
+ | 6) Настраиваем конфигурацию ядра: | ||
+ | < | ||
+ | cp ../ | ||
+ | make ARCH=arm menuconfig | ||
+ | </ | ||
+ | |||
+ | 7) Собственно сама компиляция | ||
+ | < | ||
+ | make -j2 ARCH=arm CROSS_COMPILE=~/ | ||
+ | </ | ||
+ | |||
+ | 8) Модули можно скомпилировать с помощью команды | ||
+ | < | ||
+ | make -j2 ARCH=arm CROSS_COMPILE=~/ | ||
+ | </ | ||
+ | Либо использовать готовые, | ||
+ | [[http:// | ||
+ | < | ||
+ | wget http:// | ||
+ | </ | ||
+ | ==== Компиляция в среде OE ==== | ||
+ | |||
+ | Поддержка функций на платформе Atoll.\\ | ||
+ | Есть поддержка всех функций, | ||
+ | * Ethernet | ||
+ | * MMC1 | ||
+ | * MMC2 | ||
+ | |||
+ | Откройте файл $OETREE/ | ||
+ | < | ||
+ | #INHERIT += " rm_work " | ||
+ | </ | ||
+ | Ключ **rm_work** удаляет все промежуточные файлы при компиляции: | ||
+ | |||
+ | Теперь пересоберем ядро для Beagleboard и, наконец, | ||
+ | |||
+ | < | ||
+ | bitbake virtual/ | ||
+ | </ | ||
+ | Теперь в директории " | ||
+ | |||
+ | Добавим к ядру патчи для модуля BlueShark и отладочных плат Atoll. Для этого зайдите в директорию " | ||
+ | < | ||
+ | cd $OETREE/ | ||
+ | wget http:// | ||
+ | tar xzf blueshark-2.6.32-r78.patches.tgz | ||
+ | </ | ||
+ | Теперь можно применить исправления для BlueShark: | ||
+ | < | ||
+ | quilt push -a | ||
+ | </ | ||
+ | Скачаем файл конфигурации ядра: | ||
+ | < | ||
+ | wget http:// | ||
+ | cp defconfig-2.6.32-r78 .config | ||
+ | </ | ||
+ | Чтобы настроить конфигурацию ядра используют команду: | ||
+ | < | ||
+ | make ARCH=arm CROSS_COMPILE=$OETREE/ | ||
+ | </ | ||
+ | Компиляция ядра (обратите внимание на опцию -j2, в ней вы задаете кол-во ядер процессора на вашем компьютере): | ||
+ | < | ||
+ | make -j2 ARCH=arm CROSS_COMPILE=$OETREE/ | ||
+ | </ | ||
+ | Компиляция модулей: | ||
+ | < | ||
+ | make -j2 ARCH=arm CROSS_COMPILE=$OETREE/ | ||
+ | </ | ||
+ | Установите модули в файловую систему на SD-карточке: | ||
+ | < | ||
+ | sudo make -j2 ARCH=arm CROSS_COMPILE=$OETREE/ | ||
+ | </ | ||
+ | |||
+ | В результате получаем бинарник, | ||
+ | ^Скомпилированный uImage| | ||
+ | | [[http:// | ||
+ | |||
wiki/angstrom_blueshark.txt · Последнее изменение: 2012/11/20 19:14 — 127.0.0.1