В этом руководстве рассказывается о том, как собрать специализированный дистрибутив Linux® для использования во встраиваемых системах, в данном случае для работы одноплатного компьютера Technologic Systems TS-7800. Обсуждаются кросс-компиляция, загрузчик, файловые системы, корневая файловая система, образы дисков и процесс загрузки. Все это рассматривается через призму конкретных решений, принимаемых по мере построения системы и создания дистрибутива. Предварительные замечания
Цели
В руководстве объясняется, как установить Linux на целевую систему. Не готовый дистрибутив Linux, а свой собственный, собранный с нуля. Хотя в деталях процесс будет неизбежно меняться от одной целевой системы к другой, общие принципы остаются неизменными.
Результатом этого руководства (при наличии подходящей целевой системы) является полноценная Linux-система, вполне пригодная для консольной работы.
Об этом руководстве
Руководство начинается с обсуждения вопросов кросс-компиляции, затем рассматриваются составные компоненты системы, и то, как они соединяются в единое целое. Описываются как сборка, так и установка и конфигурирование целевой системы.
Рассматриваемая конкретная целевая система, Technologic Systems TS-7800, имеет свои собственные особенности загрузки и запуска; в других системах будут другие принципы действия, поэтому это руководство не очень углубляется в особенности всех возможных загрузчиков.
Необходимые условия и требования к системе
Самую большую отдачу от этого руководства получат разработчики, которые интересуются применением встраиваемых систем или просто хотят узнать больше о том, как выглядят Linux-системы изнутри.
В качестве основной среды используется Ubuntu, но другие системы тоже подойдут. Предполагается, что пользователи имеют базовые знания по администрированию систем UNIX® или Linux; также предполагается наличие у них доступа с правами администратора.
В качестве командной оболочки в руководстве используется производная Bourne shell; если используется производная C shell, то приглашение командной строки будет, вероятно, выглядеть по-другому и потребуется использовать другие команды для настройки переменных среды.
Для кросс-компиляции (полезной при разработке для встраиваемых систем), я использовал crosstool-ng версии 1.1.0, выпущенной в мае 2008 года.