понедельник, 2 сентября 2013 г.

BeagleBone Black - Run Gentoo

Итак, спустя определённый круг мучений и выкрутасов мне удалось запустить Gento Linux на BBB.
На снимке экрана виден финал загрузки и логин в систему. Принципиальной особенностью системы является то, что тем способом которым происходит установка ставят когда нету многих базовых компонентов. Поэтому я бы не рекомендовал этот путь как правильный. Также есть несколько общих замечаний касательно проекта. Тем кому интересно узнать подробности этих извращений - добро пожаловать под кат.

Предисловие


Все манипуляции я производил на ПК на котором установлена Gentoo Linux, поэтому если у вас другая ОС которая операционная система а не большой мух, то следует уточнить некоторые опции. Однако я всё же порекомендовал бы поставить эту систему хотя-бы на виртуальную машину, т.к. сборку одного Linux лучше всего делать из под другого Linux той же марки дистрибутива (сборки).

Подготовка

Вообще самая трудная часть. Есть как бы общее указание на то что нужно сделать чтобы получить результат: http://dev.gentoo.org/~armin76/arm/beagleboneblack/install.xml.
Вообще большое спасибо тебе Gentoo Developer со странным ником armin76. Однако если вы ни разу не ставили Gentoo Linux причём не с Generic ядром то для вас этот мануал будет бесполезен. Мой вам совет - ставьте эту ОС сначала на виртуальную машину, потом на реальную а после возвращайтесь к BBB. Причина следующая - автор либо умышлено, либо случайно упустил некоторые подробности установки. Да и другие не менее важные для начинающего моменты.

Небольшое отступление - скорее всего эта статья станет основой для мануала по установке, которой можно будет почитать по адресу: http://arm.gentoo.ru/wiki/

Итак начнем с самого главного - необходимые компоненты:

  1. USB<-->UART(3.3V) переходник, т.к в начале у вас не будет даже сети.
  2. карта памяти формата microSD объёмом (!SIC) не менее 4, а лучше 8 ГБ. Это первая неточность автора исходного руководства. Не смотря на то, что в требованиях к установке Gentoo Linux на архитектуру ARM  указано 1.5 ГБ дискового пространства, нужно следовать требованиям к установке Gentoo Linux на архитектуру x86, где сказано про необходимый объём в 2.5 ГБ.
    Почему это так: Во первых после распаковки stage3 предварительно подготовленную карту памяти мы получаем почти 600 МБ занятого пространства диска, ещё примерно 100 МБ уйдёт на ядро и модули. Итого из 2 ГБ у нас остаётся 1 ГБ свободного пространтства. Добавив туда дерево portage получаем ещё + примерно 400 МБ. Т.е остаётся меньше 600 МБ. Нормальная работа sync процедуры для emerge гарантируется при наличии как минимум 700 МБ свободного дискового пространства на протяжении всей процедуры. Также я не думаю что при таком объёме возможно совершать какую либо сборку ПО и прочее.

    Именно поэтому я настоятельно не рекомендую использовать в качестве основного носителя карточки с объёмом меньше 4 ГБ (ваш покорный слуга на этом уже обжёгся, и теперь думает куда бы сбагрить дерево portage).
  3. Cardreader для карт памяти, т.к. основную работу мы будем в начале производить на стороне ПК.
В принципе все действия что указаны в оригинальном руководстве являются истинными, за исключением того что uBoot собранный по указаниям в руководстве не работает. Поэтому все остальные действия по подготовке окружения и сборке можно принимать как указания к действию.
На этом подготовка может быть закончена. 

Сборка ядра и uBoot

Отдельно бы хотелось остановится на этом этапе. В принципе советую сразу по мануалу не дожидаясь ошибки настроить Git, если вы им до этого не пользовались. Также никаких дополнительных опций не потребуется. Это в случае если у вас обычная проводная сеть. Также в итоговый мануал будет включены опции по настройке сети используя USB.

Подготовка карты памяти

Тут опять же сборка чисто по оригинальному руководству. Единственное отличие - я отформатировал карту в ext2 - и быстрее и износ меньше. (По идее сюда надо специальную ФС использовать)

Установка Gentoo

Все делать как в оригинальном мануале, не забывая также что помимо самого ядра есть ещё и его модули которые тоже необходимо установить - а иначе ничего не заработает.

Старт установленной системы

Как указанно в оригинальном мануале после установки карты памяти и нажатия кнопки Boot0 необходимо подключить питание. Фиг вам.  Всё бы было хорошо если бы данный способ работал. На самом деле как указано выше uBoot собранный по мануалу не работает. Вообще.

Но для нас это не является проблемой, т.к. разработчики BBB включили в поставку ПО предустановленный на eMMC uBoot, который обнаружим microSD в слоте подхватывает конфиг uBoot и загружает со второго раздела наше ядро. Вот. Поэтому не надо ничего нажимать, просто вставьте microSD в слот и подключите питание.

Если всё прошло успешно то вы увидите в итоге картинку аналогичную той что в заголовке этой статьи.

После загрузки

После загрузки необходимо настроить нормально сеть (если вы никогда этого не делали в Gentoo Linux - вам поможет оригинальный мануал). После успешной настройки можно видеть следующую картину:
Также следуя рекомендациям оригинального мануала по портированию Gentoo Linux на BBB настройте клиент сервера времени, т.к. плата не имеет отдельного источника питания для RTC, то все данные о времени исчезают после пропадания питания. Это может негативно сказаться на работе многих систем Linux.

На этом пока всё.