eddy_em: (Костерок)
[personal profile] eddy_em
Так как Raspbian подает все "надежды" к скатыванию (вот-вот добавят всякие systemd и прочий поцтерошлак), я решил на "малинку" накатить Gentoo.
Надо сказать, что потратил я на это 4 дня. И 3 из них — из-за собственной невнимательности. Даже тему на SO создал.

Итак, если не быть ССЗБ, то разворачивание генты занимает совсем немного времени. Больше уйдет потом на доустановку нужных пакетов.

Для начала нужно открыть FAQ по генте на "малинке". Разбиваем, как там написано, флешку (я сделал 2 раздела: 200МБ vfat для /boot + остаток — корень, на нелюбимой мною ext4). Далее — самое долгое — скачивание и компиляция ядра. Так как я сделал
git clone https://github.com/raspberrypi/linux.git

ждать пришлось долго. Надо было указывать --depth 1.
Заодно нужно скачать свежий stage3.

Чтобы ядро собралось правильно (я еще и на сборку потратил достаточно времени, указав неправильную архитектуру), лучше сразу сказать
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-none-eabi- bcmrpi_defconfig

а потом уже вызывать
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-none-eabi- menuconfig

для "юстировки" ядра. Ну, а дальше собираем ядро и модули (сначала: mkdir Modules):
make -j4 ARCH=arm CROSS_COMPILE=/usr/bin/arm-none-eabi- Image modules dtbs
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-none-eabi- INSTALL_MOD_PATH=Modules modules_install

Пока оно компилируется, нужно еще содрать firmware:
git clone --depth 1 https://github.com/raspberrypi/firmware.git

По-сути, нам нужна оттуда лишь boot-директория. Почти все файлы оттуда (в принципе, можно и все, а можно лишь те, что указаны в руководстве) нужно скопировать в /boot раздел (который vfat).

После сборки ядра по инструкции распихиваем dtb-файлы, модули, преобразуем ядро из arch/arm/boot/Image при помощи утилиты imagetool-uncompressed.py (https://github.com/raspberrypi/tools.git) в понятный для "малинки" образ. Затем этот образ отправляем в /boot, попутно правя конфигурацию из /boot/config.txt. В файл /boot/cmdline.txt заносим:
ipv6.disable=0 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 roo
tfstype=ext4 elevator=noop rootwait


Для того, чтобы генту можно было собирать на хосте, а не ждать веками, пока она на "малинке" соберется, в /usr/bin генты нужно добавить файл qemu-arm-static (я его выдрал из распбиана). Естественно, этот файл нужно как-то иначе переименовывать при запуске непосредственно на "малинке". Это делают скрипты монтирования/размонтирования, которые я приведу ниже.

После того, как все скопировано, нужно сделать chroot в корень генты и провести окончательную настройку. Для монтирования нужных файлов у меня есть скрипт:
#!/bin/bash
CHRT="ROOT"
if [ $# != 1 ]; then
    echo "usage: $0 /dev/sdb"
    exit 1
fi

function mnt(){
    mount --rbind $1 ${CHRT}$1
}
[ -f /proc/sys/fs/binfmt_misc/arm ] || echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\x
ff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:' > /proc/sys/fs/binfmt_misc/register
mount ${1}2 ${CHRT}
mv ${CHRT}/usr/bin/qemu-arm-static_ ${CHRT}/usr/bin/qemu-arm-static
mount ${1}1 ${CHRT}/boot
mount -o bind linux ${CHRT}/usr/src/linux
#mount -o loop,offset=4194304 $1 chrt_vfat
mnt /dev
mnt /sys
mount -t proc none ${CHRT}/proc
mnt /run
mount -o bind portage ${CHRT}/usr/portage
chroot ${CHRT}

Понятно, что нужно заранее создать директории ROOT (корень для чрута) и portage (там будут лежать portage-файлы, чтобы не засорять флешку). Заодно для сборки некоторых пакетов нам могут понадобиться исходники скомпилированного ядра. Они лежат в директории linux здесь же.

Все, делаем команду ./Chroot (название вышеприведенного скрипта) и попадаем в нашу генту. Дальше — обычные emerge-webrsync, emerge eix, eix-update и emerge -uDN world, после которых нужно доустановить все остальное.
Кстати, не натыкайтесь на пройденные мною грабли: ни в коем случае нельзя менять профиль. Я по-дурости сменил профиль на default/linux/arm/13.0/armv6j/developer и очередной emerge предложил мне установить 177 совершенно ненужных на "малинке" пакетов вроде иксов, культей и прочей дряни.

После обновления и установки (или в процессе) нужно настроить сеть, ntpd. В /etc/fstab написать:
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2

Добавить настройки прокси в /etc/profile.d, задать пароль руту и добавить нужное количество пользователей.

По мере установки софта будут вноситься разные изменения в /etc/portage/make.conf и другие файлы. Скажем, вот так выглядит сейчас мой package.accept_keywords:
sys-boot/raspberrypi-firmware ~arm
net-libs/libwebsockets **


После того, как все готово, выходим из чрута и отмонтируем всē скопом:
#!/bin/bash
CHRT="ROOT"
mv ${CHRT}/usr/bin/qemu-arm-static ${CHRT}/usr/bin/qemu-arm-static_
umount ${CHRT}/boot
umount ${CHRT}/usr/portage/
umount ${CHRT}/usr/src/linux
umount ${CHRT}/proc
umount ${CHRT}/run
umount ${CHRT}/sys
umount ${CHRT}/dev/pts
umount ${CHRT}/dev/shm
umount ${CHRT}/dev
umount ${CHRT}


Вставляем флешку в "малинку" и грузимся. В качестве консоли на первое время я использую долларовый переходничок USB<->UART, подключенный к UART на разъеме GPIO, далее доступ только по сети, а обновления — в чруте.
Здесь тоже есть тонкий момент: БП, которым питаем "малинку", должен быть подключен к ногам питания на разъеме GPIO и уметь выдать не меньше двух Ампер, иначе на этапе загрузки будут появляться всякие непонятные вещи.

Date: 2015-12-28 05:02 pm (UTC)
From: [identity profile] 32bit-me.livejournal.com
Круто!
Однако же есть ещё эпическая операционная система для RPi под названием Pidora, про это тоже нельзя забывать!

Date: 2015-12-28 06:58 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Не зря она так называется. А учитывая то, что поцтеринг непосредственное отношение к федорке имеет, Pidora действительно для гомосеков получается =D

Date: 2015-12-29 12:26 am (UTC)
From: [identity profile] 32bit-me.livejournal.com
Что такое поцтеринг?

Date: 2015-12-29 05:36 am (UTC)
From: [identity profile] eddy-em.livejournal.com
Чмо, которое загоняет линукс в /dev/null. Еще известен как Лēня Потный.

Date: 2015-12-29 05:39 am (UTC)
From: [identity profile] 32bit-me.livejournal.com
Я не в курсе. Можно ссылку какую-либо?
Edited Date: 2015-12-29 05:39 am (UTC)

Date: 2016-01-02 11:16 pm (UTC)
From: [identity profile] dimas.livejournal.com
https://en.wikipedia.org/wiki/Lennart_Poettering

Date: 2016-01-03 03:19 am (UTC)

Date: 2015-12-28 05:34 pm (UTC)
From: [identity profile] sevasat.livejournal.com
Всю крутость системд понимаешь только когда попользуешься. Да, все по-другому чем в сисвините, но работает он сатанинки быстро - система на SSD грузится за пару секунд, из-за параллелизации стартовых скриптов. Да, у systemd высокий входной порог, но тот кто осилил - тот на коне.

Date: 2015-12-28 06:58 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
systemd нарушает принципы UNIX-way, поэтому место этому шлаку на свалке!

Date: 2015-12-28 11:30 pm (UTC)
From: [identity profile] sevasat.livejournal.com
Уникс-вей плохо работает в условиях применения в массовом продакшене. И потом, системд - это один из путей принести единство работы и настройки во все дистрибутивы, а то все эти выдумки из спичек и желудей в меру фантазии создателей каждого отдельного дистра уже поднадоели. Чтобы линух развивался - ему надо приходить к единой модели, иначе все забьют, потому что повторяемость результатов очень важна в продакшене. А то в современных дистрах одних директорий с конфигами (одними и теми же!) столько, что хрен проссыш куда что класть. Пора пересмотреть весь этот бардак, наконец.
Edited Date: 2015-12-28 11:33 pm (UTC)

Date: 2015-12-29 05:37 am (UTC)
From: [identity profile] eddy-em.livejournal.com
"Массовый продакшн" ориентирован на среднестатистического идиота, поэтому неюзабелен ни в коем образе. А линуксу к единой модели ни в коем случае нельзя переходить, иначе получится фекалия вроде мастдайки. И да здравствуют вирусы!

Date: 2015-12-28 10:20 pm (UTC)
From: [identity profile] dimas.livejournal.com
не, если перегружать каждые пять минут, может это и будет значимым преимуществом, за которые можно согласится что оно будет все дальше и дальше пролезать во всю систему ...

Date: 2015-12-28 11:35 pm (UTC)
From: [identity profile] sevasat.livejournal.com
Приемуществом будет то что настраивать и обслуживать малину ты будешь так же как и большие машины с системд, без разбирательств с очередным изобретением красноглазиков.

Date: 2015-12-28 11:41 pm (UTC)
From: [identity profile] dimas.livejournal.com
бугага

можно я пока "большие машины" буду без системд обслуживать? :)

Date: 2015-12-28 11:48 pm (UTC)
From: [identity profile] sevasat.livejournal.com
А я сегодня учу системд, а завтра буду обслуживать эти машины за тебя))
Весь продакшон на дистрах с симтемд, на спецов есть спрос.

Date: 2015-12-28 11:54 pm (UTC)
From: [identity profile] dimas.livejournal.com
А завтра "учащих" заменят девопсы, но мне это будет изопенисуально.

К счастью моя основная работа более интересные вещи делать :) Да и эта поттерингоподелка ни разу не рокетсайнс, нужные вещи делаются просто.

Date: 2015-12-29 05:38 am (UTC)
From: [identity profile] eddy-em.livejournal.com
Сегодня ты учишь сыстымде, а завтра Родину продашь!
Фу!

Date: 2015-12-28 07:27 pm (UTC)
From: [identity profile] balmerdx.livejournal.com
А вот такой интересный (для меня) вопрос. Тоже захотелось много производительности (и сетевой разъем). Rasberry PI сравнительно дорогая (ну и устаревшая чутка). Зато есть дешевая Orange PI и быстрая Cubieboard. Сейчас в раздумьях - что выбрать.

Date: 2015-12-28 07:47 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Советую кубитрак: и GPIO намного больше, нежели у "малинки", и процессор помощней.

Обычная "малинка" годится лишь для очень небольшого ряда задач. Скажем, у нас будет использоваться для управления 1/2 шаговиками, парой релюшек, опроса пары-тройки концевиков и потокового видео mjpeg'ами (захват с USB-фреймграббера, элементарная обработка и работа с веб-интерфейсом). Управляющий канал и обратная связь через вебсокеты (очень удобно: скажем, можно реализовать без особой нагрузки на сервер индикацию процентажа доезжания подвижек до концевиков и т.д., и т.п.).

P.S. Под кубитрак я тоже генту скомпилял.
Edited Date: 2015-12-28 07:48 pm (UTC)

Date: 2015-12-28 10:28 pm (UTC)
From: [identity profile] dimas.livejournal.com
Pi 2 тоже устаревшая? :)

Недавно фанаты производительсности (мне бы ваши задачи, я вот наоборот жду когда Zero подошевеет до обещанной пятерки:)

Из производительных помнится хвалили Orange Pi PC H3, но сейчас навскидку не нашел где её взять на али дешево, а ведь было меньше двадцатки ...

Date: 2015-12-29 05:40 am (UTC)
From: [identity profile] eddy-em.livejournal.com
Pi2 по цене как-то не очень.

> я вот наоборот жду когда Zero подошевеет до обещанной пятерки
Я тоже. Но, скорее всего, дешевле тридцатки она никогда не будет.

Производительные одноплатники нужны лишь для обработки изображений. Скажем, при работе со скоростными ПЗСками нам нужен гигабитный cameraLink, с которого нужно успеть считать данные, выполнить первичную обработку и сохранить на SSD. Если бы одноплатники имели достаточные мощи для этого, не нужно было бы таскать громадный промышленный компьютер в стакан первичного фокуса!

Date: 2015-12-29 08:37 am (UTC)
From: [identity profile] dimas.livejournal.com
Ну, ниже сорока уже упала, может и дальше подешевеет ...

Оранж не нравится?

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

А всякие одноплатные арм-ы, что пихают в медиаплееры не подешевели ли уже настолько что их будет удобнее для этого использовать? Там и сата должна быть, и остальные штуки?

Date: 2015-12-28 10:31 pm (UTC)
From: [identity profile] dimas.livejournal.com
Нашел ссылку за 18 - http://ru.aliexpress.com/item/Orange-Pi-PC-linux-and-android-mini-PC-Beyond-Raspberry-Pi-2/32448079125.html

Date: 2015-12-28 11:27 pm (UTC)
From: [identity profile] sevasat.livejournal.com
Бери малину. Кубиборда - кусок говна китайского, практически без коммунити и без поддержки. У Малины - огромное коммунити, которое хоть и состоит на 90% из ардуинщиков, тем не менее производит достаточное количество рабочего кода. И с поддержкой все хорошо. А с кубибордой по любому поводу пердолиться приходится, даром что разработка кетайских студентов.

Date: 2015-12-28 10:18 pm (UTC)
From: [identity profile] dimas.livejournal.com
Ну, Raspbian Jessie Lite он как бы уже на systemd (кстати, они наконец выпустили версию Lite без всякой лишней тряхомундии) ...

При всей моей любви к генту (и на работе и дома), но на малине ... зачем? ...

не скрою, я думал об этом, но никак руки не дойдут с qemu разобраться ... мне для моих игрищ пока и распбиана хватает ...

а зачем аж два ампера, неужели переходник столько жреть? у меня пока (тьфуХ3) хватает амперного блока при работе с сетью и usb gsm модемом ... я, правда, цеплял телефизор только один раз - когда перемудрил с fstab`ом, делая конфигурацию, что ничего не пишет на флешку, и немного накосячил ...

Date: 2015-12-28 11:42 pm (UTC)
From: [identity profile] sevasat.livejournal.com
Со старыми малинами (которые с LDO вместо системы питания) наблюдаются такие проблемы. У b+ и последующих моделей, с импульсным DC-DC этих проблем уже сильно меньше, как и проблем с перегревом.

Date: 2015-12-28 11:43 pm (UTC)
From: [identity profile] dimas.livejournal.com
А. У меня то b+ :)

Date: 2015-12-28 11:51 pm (UTC)
From: [identity profile] sevasat.livejournal.com
Да первую ревизию малины дизайнили какие-то хипсторы со смузями походу. Этот LDO с 5 на 3.3 - былинный отказ, она жрет лишних ватт-два и на них же греется в итоге. А если на него еще переферии налепить, то вероятность исхода волшебного дыма растет экспоненциально.

Date: 2015-12-29 05:42 am (UTC)
From: [identity profile] eddy-em.livejournal.com
> зачем?
Затем, что скоро кроме генты, слаки и LFS (хотя его с натяжкой дистром можно называть) не останется линуксов!

Еще один плюс: у меня везде гента, так что удобно, когда и на одноплатнике та же система. Чтобы не было такого, что набираешь emerge-webrsync, пялишься с десяток секунд на command not found и вспоминаешь, что перед тобой дебиан!

Date: 2015-12-29 08:24 am (UTC)
From: [identity profile] dimas.livejournal.com
Я плюнул, сделал себе шпаргалку из всего чем пользуюсь, и изредка туда залезаю :) Благо не так часто что-то там менять приходится, больше со своим самописным развлекаюсь ...

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 05:24 pm
Powered by Dreamwidth Studios