Gentoo в малиновом пиджаке

Тема в разделе "Флудилка", создана пользователем Ektanoor, 15 мар 2013.

  1. Ektanoor

    Ektanoor Нерд

    Малина отличная штука, но с одной "но". Если "стандартные" дистры не годятся для работы то придеться хорошо плясать. Лично мне было нужен Gentoo, в очень своеобразной форме. Было не тривиально, но получилось. Вообще то, что создавать полноценную систему целиком на Raspberry то же самое что ждать второе пришествие, так что советую брать на заметку то что я делал/делаю.

    Вот рецепт:

    Читаем внимательно и исполняем инструкции на http://wiki.gentoo.org/wiki/Raspberry_Pi

    Но вместо того чтобы все положить в SD, мы берем обычный комп, создаем там каталог (в моем случае /raspberry) и под ним распакуем прошивку, stage3 и portage. При этом, если сама машина уже на Gentoo, не стоит обходиться простым линкованием /usr/portage, иначе, следующие шаги будут весьма сложно реализовать.

    Ставим на компе сервер DHCP и настроем его. Вот пример:

    host rpi {
    hardware ethernet 11:11:11:11:11:11;
    next-server 192.168.1.1;
    fixed-address 192.168.1.2;
    }

    На том компе ставим nfs-utils для NFS сервер (кстати, ядро должен также поддержать NFS). В /etc/exports пишем нечто как:

    /raspberry 192.168.1.2(async,rw,no_root_squash)

    IP должен совпадать с тем который задал DHCP. Можно про все опции забыть только не "rw,no_root_squash".

    Создаем ядро как описан в странице, только поместим его и соответствующие модули под нашим каталогом.

    Не забываем менять пароль рута как указан в инструкции, но никакие настройки сети НЕ проводим! Иначе NFS скажет кое что нехорошее.

    На SD копируем весь контент /boot, включая только что созданный ядро. Создаем cmdline.txt и пишем в нем:
    rootfstype=nfs root=/dev/nfs ip=dhcp rootdelay=2 nfsroot=192.168.1.1:/raspberry

    Верем SD включаем его к Малине, не забываем подключить ее к сети и запускаем все.

    Если все прошло гладко то скоро появится логин, однако, это далеко не конец. Ведь мы только сумели загрузить мало кому полезную систему. Там нет почти нечего. Чтобы дальше установить все что нам нужно следует:

    1. Если portage будет ругаться на старый профайл, следует его обновить и сделать соответствующие операции по "eselect profile".

    2. Надо установить distcc. Сразу отмечу что это тянет за собой установку python 2.7. Так что Малина будет занята чуть более чем на час.

    3. Надо настроить distcc согласно http://wiki.gentoo.org/wiki/Raspberry_Pi_Cross_building

    4. Устанавить нужные нам пакеты.

    Сейчас я остановился на этапе 3.

    Надо заметить что после установки distcc, NFS на всю систему уже не так требуется. Скорее нужен лишь на /usr/portage и /var/tmp/<несколько каталогов> чтобы не сильно нагрузить SD карту.
     
    Unixon нравится это.
  2. Ektanoor

    Ektanoor Нерд

    Достроил часть по distcc. Все заработало, идет ребилд к последней версии portage. Полет нормальный :)

    Несколько последние рекомендации:

    1. Стоит ставить ccache перед distcc. По крайне мере это избавить от некоторых весьма повторящих компиляции. Так что в /etc/portage/make.conf у меня стоит FEATURES="ccache distcc" а также CCACHE_SIZE="2G".

    2. Если distcc сервера несколько или у сервера несколько ядер то очень стоить добавить MAKEOPTS="-jN" при этом следует менять N на число ядер. Пока для Малины у меня 2 ядра.

    3. Вместо "emerge ..." следует использовать "pump emerge ..." На таком звере как Малина сразу чувствуется разница.

    По любому, ребилд будет идти медленно, но совершенно не в сравнение с тем если все делать на Малине.

    Но, в качестве заключения должен отметить одно. Если это "the shape of things to come" то мы стоим глубоко в сковородке с навозом. Надо заметить что некоторые детали не просто так валяются в сети. Более того, некоторые моменты по железе Малины пришлось долго штудировать прежде чем ее рисковать в такую авантюру. И посреди всего этого я понял - это будущее. Не сотовая дрянь, не игровые зомби-гаджеты, не HDTV для живых мертвецов... Raspberry & Co. и есть будущее, скорее всего с Ардуино-подобными штуками или в варианте какого то Франкенштейна (не надо шокироваться, OSA тоже была Франкенштейном). Но есть проблема - чтобы добиться что то, нам самим надо полностью перестрайвать собственные мозги. Нужно выкопать кое какие давно забыты теории и навыки а еще научиться новыми. И это надо сделать в ближайщие 5 лет. Иначе, кто то возьмется за дело и переплюнет нас всех. И будем тут сидеть со своими "фонами", "планшетами" и прочих "i" без точек как с кучей разбитой посуды. Потому что будет совершенно иное качество и соответственно иной Мир. А все это, весь этот "2.0", этот полу-дохлый гламур со смердящим социальным запахом толпы будет стоит столько же сколько радиола в странах Третьего Мира в эпохе цветного телевидения. Не больше и не меньше. Это будет то же самое что с игровыми автоматами на фоне появления Спектрума, Apple II и PC. И со стороны производителей автоматов и со стороны их пользователей.

    Так что еще раз - Raspberry + Arduino + автоматизация - это будущее. Может быть чуть в другом виде, под другим вкусом. Но они начало новой эпохи. А мне редко удалось ошибиться в этом.
     
    nailxx и Unixon нравится это.
  3. Unixon

    Unixon Оракул Модератор

    Мне лично больше по душе не малина, а что-то типа OLinuXino и RascalMicro.
    Но тренд в общем тот же, да.
     
  4. hibiki

    hibiki Гик

    Интересно, а если на эмуляторе систему собрать и уже готовую залить?
     
  5. Ektanoor

    Ektanoor Нерд

    Об эмуляторе, если имеется ввиду QEMU, ходят мнения что он еще далеко от совершенства. Во первых тормозит под ARM-эмуляции и следовательно выгрыш минимальный. Во вторых, поддержка проца, стоящий на малине, идет с глюками. Вроде они исправлены в git'e но этот вариант пока не пробовал.

    Тем времени, я почти довершил установку "базисной системы". С перерывами на сон (беда что основной комп страшно гудит со своими вентиляторами) постройка потребовал около 3-х дней, один из которых целиком и полностью ушло на gcc. Беда в том что gcc не принимает к сведению distcc и полностью строит себя на малине. Около 130 пакетов были обновлены а еще установил mc, syslog-nc, vixie-cron, logrotate и vim. Естественно, пока никакие Х не ставил. Вообще то я пока думаю ставить ли их или нет. Для одной задачи они даже противопоказаны. По крайне мере один из компов точно пойдет без иксов. Для другой, они как то не мешают но и не особо нужны. Так что пока думаю стоит ли разделить построенные системы на две ветки.

    Да, следует быть очень аккуратно с файлом /etc/distcc/hosts. Хост localhost следует прописать в последнюю очередь и обязательно надо прописать его. Иначе distcc сочтет что по умолчанию надо его выбрать. Кстати надо писать localhost а не 127.0.0.1.