BSP для Embedded Linux

BSP для Embedded Linux

Сообщение AirRoman » 22 фев 2011, 13:10

Создание Linux дистрибутива для встроенных систем для процессоров ARM9 архитектуры.

Участники:
Яналов Роман - 3101 (2010/2011); ник - AirRoman;
Коваленко Александр - 3101 (2010/2011); ник - AlexLance;
AirRoman
 
Сообщения: 12
Зарегистрирован: 30 сен 2010, 13:39

Re: BSP для Embedded Linux

Сообщение AirRoman » 24 фев 2011, 01:22

Устанавливаем QEMU. Это бесплатный эмулятор различных платформ. Его очень просто найти в интернете, так что ссылку давать я не буду. Лично я скачивал AQEMU с Ubuntu Software Center.

Для начала будем использовать готовые образы ядра Linux и Initial RAM disk от Debian. А вот с поиском этих файлов могут возникнуть проблемы, т.к. в интернете в основном все статьи старые и мало рабочих ссылок. На текущий момент есть работающая ссылка на которой есть и файлы и мануал на английском http://people.debian.org/~aurel32/qemu/arm/

initrd.img-2.6.26-2-versatile - временная файловая система, используемая ядром при начальной загрузке
vmlinuz-2.6.26-2-versatile - сжатый образ ядра linux

После загрузки всех необходимых файлов используем для запуска Linux команду:
qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.26-2-versatile -initrd initrd.img-2.6.26-2-versatile -hda debian_lenny_arm_small.qcow2 -append "root=/dev/sda1"

Логин/пароль для входа в систему:
root/root
user/user
AirRoman
 
Сообщения: 12
Зарегистрирован: 30 сен 2010, 13:39

Re: BSP для Embedded Linux

Сообщение invaisor » 25 фев 2011, 10:16

Познавательная ссылка по тематике. Расписано очень многое: от bare metal до сборок embedded linux, QEMU, u-boot и т.д..
Еще есть http://openembedded.ru/. Но там многое что зависит от масштабной системы конфигурирования и сборки и не всегда есть возможность повлиять на "некоторые части системы" (точнее для этого надо разбираться в скриптах системы конфигурирования).
Аватара пользователя
invaisor
 
Сообщения: 227
Зарегистрирован: 08 апр 2008, 16:08

Re: BSP для Embedded Linux

Сообщение AlexLance » 25 фев 2011, 12:28

invaisor писал(а):Познавательная ссылка по тематике.
.

Спасибо , ориентируясь на этот ман мы уже скомпилировали простое ядро без модулей/драйверов/прочее
(как я написал ниже) Было бы неплохо если кто-нибудь подсказал как детально настраивать ядро под конкретные встраиваемые платы
(на http://openembedded.ru/ пока не нашел)
AlexLance
 
Сообщения: 2
Зарегистрирован: 24 фев 2011, 23:57

Re: BSP для Embedded Linux. Простое versatile ядро

Сообщение AlexLance » 25 фев 2011, 12:29

Кросс-компиляция ядра
-Скачиваем ядро с linux.org, распаковываем
-Скачиваем кросс-компилятор.Я использовал crosstool-ng http://ymorin.is-a-geek.org/download/cr ... .0.tar.bz2
Неплохой еще http://www.codesourcery.com/sgpp/lite/a ... plate=lite. (с графческиф инсталятором)
-В папке с исходниками правим Makefile. Изменяем значения переменных ARCH CROSS_COMPILE
соответсвенно ARCH?=arm а CROSS_COMPILE - путь к кросс компилятору например CROSS_COMPILE ?=/home/alex/toolchain/arm-unknown-linux-uclibcgnueabi-
можно задать эти переменные каждый раз выполняя make (make ARCH=arm CROSS_COMPILE= path)
-Выполняем make versatile_defconfig что выполнит преднастройку ядра для versatile конфигурации
-Выполняем make menuconfig и отключаем поддержку модулей (Enable loadable module support) и включам поддержку EABI
(kernel features -> Use ARM EABI binaries to run with this kernel). Выходим из menuconfig
-Выполняем make all. В папке arch/arm/boot будет создан файл zImage.
Создание initrd
-Скачиваем busybox http://busybox.net/downloads/busybox-1.16.0.tar.bz2 и распаковываем
-Правим Makefile. Изменяем значения переменных ARCH=arm CROSS_COMPILE=path/to/crosscompilator
-Выполняем make defconfig. будет создан стандартный файл настроек
-Выполняем make menuconfig и меняем настройки чтобы получить исполняемый файл без подключения динамических библиотек
Busybox Settings->Build Options -> Build Busybox as a static library (должно быть включено)
-Выполняем make
-в папке busybox заходим в _istall и выполняем
find . | cpio -o --format=newc > rootfs.img
gzip -c rootfs.img > rootfs.img.gz
получаем сжатый образ файловой системы
Запуск в qemu
Копируем эти файлы в одну папку для удобства и выполняем
qemu-system-arm -M versatilepb -m 128M -kernel zImage -initrd rootfs.img.gz -append "root=/dev/ram rdinit=/sbin/init"
Оригинал: http://balau82.wordpress.com/2010/03/22 ... -emulator/
AlexLance
 
Сообщения: 2
Зарегистрирован: 24 фев 2011, 23:57

Re: BSP для Embedded Linux

Сообщение invaisor » 26 фев 2011, 23:34

AlexLance писал(а):
invaisor писал(а):Познавательная ссылка по тематике.
.
Спасибо , ориентируясь на этот ман мы уже скомпилировали простое ядро без модулей/драйверов/прочее
(как я написал ниже) Было бы неплохо если кто-нибудь подсказал как детально настраивать ядро под конкретные встраиваемые платы
(на http://openembedded.ru/ пока не нашел)

Конфигурация ядра под процессор и плату + BSP для платы. Если еще никто не портировал, то придется самим.
  1. <kernel_src_tree_path>/arch
  2. Лучше ориентировать на англоязычный источник. http://openembedded.org/index.php/Main_Page
  3. Porting embedded linux to ARM core
  4. Porting the Linux kernel to a new ARM board
  5. embedded linux wiki
Аватара пользователя
invaisor
 
Сообщения: 227
Зарегистрирован: 08 апр 2008, 16:08


Re: BSP для Embedded Linux. Простое versatile ядро

Сообщение AirRoman » 05 мар 2011, 23:10

AlexLance писал(а):Кросс-компиляция ядра
-Скачиваем ядро с linux.org, распаковываем
-Скачиваем кросс-компилятор.Я использовал crosstool-ng http://ymorin.is-a-geek.org/download/cr ... .0.tar.bz2


http://www.ibm.com/developerworks/ru/ed ... tion3.html статья по установке кросс-компилятора

Возможные проблемы на Ubuntu при запуске скрипта конфигурации configure:
отсутствие утилит таких как awk, bison, flex, makeinfo и т.д. и некоторых заголовочных файлов.
Большинство из них устанавливается с помощью apt-get, но вот makeinfo в репозиториях нет. Его можно скачать здесь http://packages.ubuntu.com/km/lucid/i38 ... o/download

Для получения заголовочных файлов ncurses.h и curses.h установить libncurses5-dev
AirRoman
 
Сообщения: 12
Зарегистрирован: 30 сен 2010, 13:39

Re: BSP для Embedded Linux

Сообщение AirRoman » 07 мар 2011, 14:42

Обзор платы AT91SAM9263-EK (имеется в наличии)

ядро - ARM926EJ-S
Разрядность, бит - 16/32
Поддерживаемые семейства - ARM9

Периферия платы:
    драйвер RS-232
    USB-device
    USB-Host
    CAN-модуль
    Ethernet
    LCD
    JTAG/BDM
    SDIO/SD/MMC
    EEPROM
    SDRAM
    NANDFlash
    аудиоинтерфейс
    пользовательские кнопки
    пользовательские светодиоды

AT91SAM9263-EK – отладочная плата для разработки систем на базе ARM9-микроконтроллера AT91SAM9263. На плате установлена разнообразная память: 256 MБайт NANDFlash, 64 MБайт SDRAM, 4 MБайт PSRAM. Коммуникационные интерфейсы представлены портами USB-device и USB-Host (два), RS232 и DBGU, CAN 2.0B, Ethernet 100-base. Для отладки имеется интерфейс JTAG/ICE. Для интерактивного общения установлен дисплей 3.5" 1/4 VGA TFT с сенсорным экраном. Имеется интерфейс видеокамеры (разъем ISI) и аудиовыход типа AC'97.
AirRoman
 
Сообщения: 12
Зарегистрирован: 30 сен 2010, 13:39


Вернуться в Проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron