
- •Реферат
- •Содержание
- •Введение
- •Базовые инструменты Linux Shell и Make
- •1.1 Скриптовый язык Shell
- •1.2 Утилита Make
- •2.Встраиваемые системы на базе Linux
- •3. Описание структуры пакета Buildroot
- •3.1 Переменные BuildPackage
- •Блоки define BuildPackage
- •4. Пример пакета Openwrt
- •Заключение
- •Список использованных источников
- •Пример package/bridge/Makefile
- •Шаблон сценария makefile
2.Встраиваемые системы на базе Linux
2.1 Buildroot
Buildroot это набор файлов сборки и корректировок, которые позволяют просто сгенерировать под разные платформы, полный набор инструментальных средств и корневую файловую систему Вашей целевой Linux системы. Инструментарий кросс-компиляции использует uClibc, небольшую стандартную C библиотеку.
Buildroot, в основном, используется людьми, работающими с маленькими или встроенными системами. Встроенные системы часто предназначаются не для распространенных x86 процессоров. Это могут быть PowerPC процессоры, MIPS процессоры, ARM процессоры и так далее.
Инструментарий компиляции это набор инструментов, которые позволяют скомпилировать код для системы. Этот инструментарий состоит из компилятора (в нашем случае, gcc), бинарных утилит, таких как ассемблер и компоновщик и стандартной C библиотеки. В системе, установленной на станцию разработки, конечно уже есть инструментарий компиляции такой, что можете компилировать приложение, которое выполняется на системе. Если использовать PC платформу, инструментарий компиляции выполняется на некотором x86 процессоре и генерирует код для x86 процессора. Под большинством Linux систем, инструментарий компиляции использует GNU libc, как стандартную C библиотеку. Этот инструментарий компиляции называется "host compilation toolchain" (главный инструментарий компиляции), и в более общем случае, система, на которой он выполняется, называется "host (главная) система". инструментарий компиляции предоставляется посредством дистрибутива, который Вы используете, и Buildroot ничего не может в нем нарушить.
Как было сказано выше, инструментарий компиляции, который поставляется с системой, выполняется и генерирует код для процессора Вашей host (главной) системы. Так как встроенная система, может иметь другой процессор, необходим инструментарий кросс-компиляции: это инструментарий компиляции, который выполняется на Вашей host (главной) системе, но, который генерирует код для целевой системы (и целевого процессора). Например, если главная система использует x86, и целевая система использует ARM, обычный инструментарий компиляции главной системы выполняется на x86 и генерирует код для x86, в то время, как кросс-компиляции инструментарий выполняется на x86 и генерирует код для ARM.
Даже если встроенная система использует x86 процессор, может быть интересен Buildroot, по двум причинам:
инструментарий компиляции Главной системы несомненно использует GNU Libc, которая является полной, но огромной стандартной C библиотекой. Взамен использования GNU Libc на target системе, можно использовать uClibc, которая является небольшой стандартной C библиотекой. Если использовать эту C библиотеку, будет необходим инструментарий компиляции для генерации бинарных кодов, скомпонованных с ней. Buildroot может сделать это.
Buildroot автоматизирует построение root filesystem со всеми необходимыми инструментами, например, как busybox. Так гораздо легче, чем собирать все вручную.
Зачем такие инструменты необходимы, когда можно скомпилировать gcc, binutils, uClibc и все инструменты вручную. Конечно, сделать так возможно. Но иметь дело со всеми конфигурационными параметрами, со всеми проблемами каждой gcc или binutils версии это очень затратно по времени и неинтересно. Buildroot автоматизирует этот процесс посредством использования Makefiles (сборочных файлов), и имеет коллекцию исправлений для каждой gcc и binutils версии так, чтобы сборки могли работать на большинстве архитектур. /4/
2.2 OpenWrt
OpenWrt — производная Buildroot, прошивка, основанная на Linux, для домашних маршрутизаторов (роутеров). Изначально поддержка ограничивалась серией Linksys WRT54G, но сейчас расширилась и включает в себя чипсеты других производителей, в том числе и x86. Наиболее популярными является серия Linksys WRT54G и Asus WL500G. OpenWrt в основном использует интерфейс командной строки, но одной из опций является веб-интерфейс. Техническая поддержка осуществляется с помощью форума и IRC канала.
Разработка OpenWrt стала возможной благодаря использованию производителем программного обеспечения лицензии GNU General Public License (GNU GPL), которая требует от разработчиков публиковать все производные продукты под той же лицензией.
Одна из трех самых популярных альтернативных прошивок для WiFi роутеров.
Главное в OpenWrt – это полная поддержка файловой системы JFFS2( структурированная файловая система, используемая в устройствах флеш-памяти), которая позволяет использовать для управления пакетами менеджер пакетов ipkg. Всё это делает OpenWrt легко настраиваемой и адаптируемой системой для каждого конкретного случая.
Базовая прошивка предоставляет небольшое количество функций, для расширения используются дополнительные пакеты. Отмечается неудобство веб-интерфейса (особенно для неопытных пользователей).
Вместо того, чтобы создать одну статическую прошивку, OpenWrt обеспечивает полную запись файловой системы с помощью управления пакетами. Это освобождает Вас от ограничения в выборе приложений и конфигураций, предоставленной продавцом и позволит использовать пакеты для изменения встроенных устройств, чтобы работать с любыми приложениями. Для разработчиков, OpenWrt обеспечивает основу для создания приложений без необходимости создания полного образа прошивки и распределения вокруг него. Для пользователей это означает, что это полная свобода настройки, позволяющая использовать встроенное устройство таким образом, что поставщики никогда не смогут предположить. /5/
Основные достоинства в пользовании OpenWrt :
Он Бесплатный и с открытым исходным кодом. Проект является полностью бесплатным, под лицензией GPL. Он намерено всегда будет размещен в легком доступе, с полным легкодоступным исходным кодом и легким в построении.
Простой и бесплатный доступ. Проект всегда будет открыт для новых участников. Любой должен иметь возможность внести свой вклад. Нынешние разработчики, активно предоставлять доступ на запись всем, кто интересуется имея ее.
Поддержка общества. Речь идет не о "нас", говорят - "вы", речь идет о всех кто соберется вместе, чтобы работать и сотрудничать для достижения общей цели. /6/