PS. Вы бы предупреждали что ли о всяких радикальных изменениях... Чтобы мы не шарахались по форумам и не выбирали кусками информацию, о том как нам систему после апдейта чинить. Это я о исчезновении выделенного бинарного профиля, о cl-update-profile, вообще о порядке переезда. Что, зачем, в какой последовательности делать, какими утилитами и как теперь пользоваться. Я понимаю, что вся эта информация есть, кусками, там сям. Беда только в том, что именно с произошедшим обновлением она не ассоциируется и руководством к немедленным действиям не является, это я о статье в блоге насчёт профилей в git. Там нет ни слова о том, как всё чинить. Ладно я, давно уже не девочка, к разгильдяйскому подходу разрабов привычный, сам разобрался и попутно помог кому смог. И то ряд вопросов по новому функционалу утилит остался, но я их потом уже буду прояснять.
Господа, у вас есть сайт, у вас есть блог и, дабы достучаться до совсем асоциальных личностей, eselect news. Почему бы вам в будущем не поступать как принято в приличном обществе: сначала громко и внятно объявить о предстоящих изменениях, написать инструкцию о порядке перехода, уведомить об этом со ссылками, где читать, через механизм portage news. И только потом вывалить вкусняшку в оверлей, сопроводив это, опять таки, portage news.
Прошу вас, поймите меня правильно, единственное чего бы мне хотелось - чуть больше человечности в подходе.
Очевидно его убрали разработчики. Зачем они это сделали и чем теперь пользоваться совершенно не очевидно. Пока откатил sys-apps/calculate-utilities-2.2.32-r3 до выяснения и разъяснений.
cl-kernel был клоном genkernel, от которого разработчики кальки решили уйти в сторону dracut Решение, в принципе, правильное, хоть и слегка поспешное Теперь изменения в конфиг можно вносить только шаблонами. Как это делается вы можете подсмотреть тут Подробнее о шаблонах тут и тут
Теперь изменения в конфиг можно вносить только шаблонами.
Щикаарно... У меня практически весь конфиг изменён. Выкинуто всё ненужное, включено всё нужное, всё неизвлекаемое вкомпилено, всё извлекаемое в модулях. Кальковский дефолтный конфиг меня именно на этой машине не устраивает абсолютно. В смысле не частично не устраивает, а практически совсем. Мне теперь руками ваять гигамегашаблон и ни разу не ошибиться? А вот приехало новое ядро, в нём куча новых плюшек для отсутствующих у меня железок и по дефолту они включены и собираются модулями. Мне вместо make oldconfig и отказа от них мегашаблон переписывать? Мда. Сказать что я разочарован - значит ничего не сказать. Надеюсь они оставят возможность просто тупо использовать свой конфиг. И всё. Просто. У меня есть конфиг и я хочу его использовать...
Господа! Раз уж вы уже втихую удалили инструмент, нужно предлагать ему альтернативу. Прошу разработчиков или продвинутых пользователей сваять статью-HOWTO в блог, как превратить свой индивидуальный конфиг в шаблон, куда его класть, как накладывать свои патчи и т.п. От документации по шаблонам у меня трещит мозг, я никак не пойму как всё это богачество практически приспособить к решению задачи по сборке custom ядра.
Ну так и замените шаблоном весь конфиг. В чем проблема то?
... Прошу разработчиков или продвинутых пользователей сваять статью-HOWTO в блог, как превратить свой индивидуальный конфиг в шаблон ...
есть подробная документация. Есть даже, кажется, статьи в блоге (надо поискать). И чем для вас документация от HOWTO отличается? и то и другое читать надо будет
... От документации по шаблонам у меня трещит мозг ...
плохо. Как говорил дедушка Ленин - "Учиться, учиться, и еще раз учиться!"
... я никак не пойму как всё это богачество практически приспособить к решению задачи по сборке custom ядра.
Смотрите как реализованы шаблоны в основном оверлее, или в том, что по ссылке выше. Специально для желающих разобраться, в каждой категории шаблонов лежит файлих README-rus.txt а разобраться с .calculate_directory - так и вообще не трудно, особенно если перед этим пролистать мануал по шаблонам
Ну так и замените шаблоном весь конфиг. В чем проблема то?
... Прошу разработчиков или продвинутых пользователей сваять статью-HOWTO в блог, как превратить свой индивидуальный конфиг в шаблон ...
есть подробная документация. Есть даже, кажется, статьи в блоге (надо поискать).
И чем для вас документация от HOWTO отличается? и то и другое читать надо будет
... От документации по шаблонам у меня трещит мозг ...
плохо. Как говорил дедушка Ленин - "Учиться, учиться, и еще раз учиться!"
... я никак не пойму как всё это богачество практически приспособить к решению задачи по сборке custom ядра.
Смотрите как реализованы шаблоны в основном оверлее, или в том, что по ссылке выше.
Специально для желающих разобраться, в каждой категории шаблонов лежит файлих README-rus.txt
а разобраться с .calculate_directory - так и вообще не трудно, особенно если перед этим пролистать мануал по шаблонам
Данила, в ближайшее время напишу в блоге пример шаблона настройки ядра.
Благодарю, и распишите логику процесса обновления и установки кастомного ядра пожалуйста. Я имею ввиду последовательность операций проделываемых системой, распаковали, пропатчили, создали конфиг, собрали, initrd, положили в бут, дёрнули груб... Какими шаблонами и как юзер может изменять всё это.
Как и чем генерится initrd теперь, как его освежить самому. Dracut мне незнаком совсем.
Как я понимаю мне же всё равно никто не запрещает положить в /usr/src/linux свой .config, собрать ядро, сгенерить initramfs с помощью dracut и прописать всё это в grub руками? Это на случай если я автоматизации желаю избежать?
... Прошу разработчиков или продвинутых пользователей сваять статью-HOWTO в блог, как превратить свой индивидуальный конфиг в шаблон ...
есть подробная документация. Есть даже, кажется, статьи в блоге (надо поискать).
(нравоучительный пафос удалён)
Вы, видимо, действительно не понимаете разницы между документацией и HOWTO? Вам перевести с английского эту аббревиатуру и раскрыть её смысл?
Михаил, Вы, видимо, талантливый программист или системный администратор. Вам эта документация понятна до прозрачности, шаблон Вы способны легко сочинить во сне и Вам абсолютно не жаль времени на постижение всех этих тонкостей, ведь это Ваша работа или хобби... Но представьте на секунду, вокруг Вас есть множество людей с другими профессиями, хотя бы и смежными. И им тяжело въехать в талмуд по шаблонам, им жалко тратить время на выковыривание кусочков информации и связывание её воедино для решения их единственной задачи. Больше им это не пригодится, они не администрят сетей, не обслуживают кластеры, не создают своих дистрибутивов.
И вот для таких людей пишут HOWTO. В которых расписывают типовые методы решения типовых задач. С практическими примерами решения. Если задача выходит за рамки типичной, человек либо копнёт глубже, опираясь на примеры (вот тут играет документация), либо найдет специалиста или откажется от решения.
Представьте себе Ваш подход применительно к Вам, просто в другой профессиональной сфере. Возможно Вам потребуется консультация юриста, например, по какому либо узкому вопросу. Вы к нему обратитесь, а он Вас пошлёт читать Гражданский и Уголовный Кодекс РФ, так как там есть вся необходимая Вам информация. Ещё порекомендует Гарант и скажет, что в журнале Вестник юриспруденции за 2011 или 2012 год, он не помнит, была статья по правоприменению. Сдаётся мне Вы к нему больше не придёте и Ваших денег он не увидит.
Сейчас Вы скажете, что модификация ядра не есть типовая задача. Я с Вами заранее не соглашусь. В линукс - самая что ни на есть типовая. Чур Убунту в пример не приводить...
Михаил, почему бы Вам иногда с пьедестала не спускаться :) За ссылки спасибо кстати. Я шаблоны посмотрел, с налёту мало что понял правда, надо потратить день, покурить всё это. HOWTO, с примерами, на пальцах, сэкономил бы мне этот день наверное. Я бы нашёл на что его потратить...
2 Данила Жукоцкий Ваш пост включает 317 слов или 3676 символов (спасибо утилите wc, что помогает считать такие скучные вещи) Предположив, что на придумывание текста вы не тратите ни секунды своего времени, и поток вашего сознания льется на клавиатуру со скоростью три-четыре в секунду, на написание ответа вы потратили минимум 15 минут
Я же на введение этого поискового запроса потратил секунд 5 и чуть больше на то, чтоб разглядеть этот туториал возможно там есть и более подходящие туториалы. Но мне кажется, что и этот написан довольно доступно
Но да.. конечно обвинить кого-то в том, что он зазнался легче, чем самому поискать
ЗЫ
Возможно Вам потребуется консультация юриста, например, по какому либо узкому вопросу. Вы к нему обратитесь, а он Вас пошлёт читать Гражданский и Уголовный Кодекс РФ...
Прежде всего я постараюсь загуглить нужную мне информацию. Благо, на то, чтоб пользоваться гуглом специальные знания не нужны.
ЗЗЫ На написание этого ответа я потратил времени гораздо больше, чем потратил бы, если бы кинул просто ссылку. И уверяю вас, это только лишь для того чтоб побудить вас начать искать самостоятельно. Без каких-либо обвинений, или поучений Тем более, что если вы используете свой конфиг ядра, то вы должно быть "разбираетесь в компьютерах" несколько лучше, чем "люди далекие от администрирования" (хотя-бы локалхоста) И не заметить в блоге "облако тегов" вы просто не могли (если действительно искали в нем что-то) Так что накидаю вам еще ссылок. Ловите это и это
Может я что-то не понимаю но мне кто-нибудь может объяснить что за необходимость обновлять до версии 14 Альфа? Согласно списку новых имплементаций в 14 я не видел ничего что я обязательно должен установить или необходимые технологии без которых система не может функционировать. У меня дома 13.19 и я очень доволен этой версией. Стабильная, все работает как мне надо и видимо буду еще очень долго пользоватся этой версией. На работе стоит 13.11. Тоже самое. Вот, недавно я установил Netflix на домашний (кстати если кого интересует установка Netflix на кальки у меня есть проверенная инструкция), и работает удобней чем дебиановский netflix-desktop скрипт т.к. можно смотреть в том же броузере не запуская отдельный скрипт как это было в дебиане. Вот пожалста, все работает как надо. Зачем обновлять? А вот лично мне нравится копатся и искать решения, от этого есть какое-то удовольствие когда сам что-то находишь и делаешь что б работало :)
PS. Вы бы предупреждали что ли о всяких радикальных изменениях...
К сожалению, из-за болезни, документация и новости запоздали. Ваши вопросы сейчас очень кстати, потому, что сама разработка CL14 затянулась и сейчас не просто собрать все те моменты, которые при переходе оказались новыми.
Это я о исчезновении выделенного бинарного профиля
В CL14 бинарный и небинарный профили объединены. Для отключения установки бинарных пакетов используйте настройку портежей:
FEATURES="${FEATURES} -getbinpkg"
о cl-update-profile
Это совсем новая утилита смены профиля. Описание появится в ближайшее время. При помощи неё можно подключать профили из произвольных репозиториев с сохранением зависимостей, когда профиль дистрибутива использует в своей работе другие оверлеи.
вообще о порядке переезда
Как обычно обновляете систему (eix-sync; emerge -uDNa world), сам переход на CL14 выполняется при помощи ревизий. После миграции, для обновления, можно использовать cl-update.
и распишите логику процесса обновления и установки кастомного ядра пожалуйста. Я имею ввиду последовательность операций >проделываемых системой, распаковали, пропатчили, создали конфиг, собрали, initrd, положили в бут, дёрнули груб... Какими шаблонами и >как юзер может изменять всё это.
Как и чем генерится initrd теперь, как его освежить самому. Dracut мне незнаком совсем.
Все операции сборки ядра и настройки initramfs, как и для любого друго пакета выполняются во время установки пакета. Так как из-за применения определённых доработок, включая поддержку udev, поддержание форка genkernel вызывало затруднения. В CL14 для создания initramfs используется dracut.
Чтобы применить свои настройки к ядру, выполните два действия:
1) Укажите пакетному менеджеру не использовать бинарный пакет для ядра:
Александр, спасибо за развёрнутый ответ. Может быть сможете подсказать, как правильно положить темплейты в оверлей? Чтобы не повторяться, ссылка на мой репозиторий на пару сообщений выше, спасибо.
Самое простое, по аналогии со структурой шаблонов Calculate Overlay, как это у вас уже частично сделано. Например, шаблоны и патчи ядра лежат в templates/3.1/6_ac_install_patch/sys-kernel/calculate-sources. По сути, я собрал все условия в оном шаблоне. Если понадобится делать настройки для 32-битного ядра, добавлять патчи, то проще уже использовать хотя бы одну директорию со всеми условиями.
"styx-overlay" лучше изменить на "overlay" так, чтобы путь получился https://github.com/styx/overlay. В этом случае подключить репозиторий можно будет используя сокращённый вариант команды:
Может я что-то не понимаю но мне кто-нибудь может объяснить что за необходимость обновлять до версии 14 Альфа? >У меня дома 13.19 и я очень доволен этой версией. Стабильная, все работает как мне надо и видимо буду еще очень долго пользоватся этой версией. На работе стоит 13.11.
Безусловно, мы работаем над удобством каждой версии. Смена основного номера версии сулит, как правило, большие изменения в дистрибутиве. Это либо перенос всех настроек в оверлей, либо подключение бинарных пакетов для обновления, либо, как сейчас, автоматизацию проверки и установки обновлений. Установив CL14, вы уже не усидите на одной версии, система вам постоянно будет ненавязчиво предлагать подтянуть обновления. Если вы конечно не отключите их совсем.
Спасибо Учитель! Всё получилось и работает как я и хотел. Теперь вот сопутствующий вопрос появися. Допустим в CLDX есть пакет mail-client/claws-mail замаскировать я его смог, но вот как его из world выпилить не понял.
World восстанавливается при вызове `cl-update --rebuild-world`. Установленные пакеты можно извлечь при помощи утилиты `regenworld`.
В своём профиле можно создать изменения world файла. В lautre76 в качестве примера я как раз добавляю firefox-bin и steam-launcher. Изменения отписываю в секции [update-lautre76] файла /etc/calculate/ini.env.
Директория 1_create содержит дельту состава пакетов дистрибутива Desktop-X на данный момент. В моём случае это дельта от CLDX. Если пакет понадобится удалить, добавляется "!" в начале. Файл ini.env содержит номер world версии. Все обновления world хранятся в 2_update.
Чтобы шаблон не дописывал, а переписывал исходный файл, добавьте в заголовок "append=replace", либо уберите "format=openrc".
Александр, извините, я всё равно туго въезжаю в шаблоны и к тому же всегда пользовался make menuconfig, руками .config никогда не модифицировал.
Будет ли различаться сгенерённый утилитами конфиг у ядра заемерженного с и без vmlinuz? Юзы plymouth symlink themes выставлены. Другими словами, наковыряют ли ваши шаблоны в конфиге ядра чего либо дополнительного при автоматической сборке\установке в отличие от варианта без vmlinuz? Возможно я сейчас свой кастомный конфиг вовсе не с тем конфигом сравниваю?
Используется шаблон типа openrc. Как убрать строку из конфига? Или её нужно заменить строкой CONFIG_BLAHBLAHBLAH=n? Разберётся ли потом с этим скрипт настройки исходников ядра? А если она до этого включала ветку дополнительных опций и модулей, что произойдёт? Скрипт настройки ядра сообразит убрать оставшийся "мусор" или нужно вручную всюду менять на =n?
Пункт два подразумевает уйму ручной работы, гораздо проще, как вы выше написали, использовать append=replace и полностью заменить конфиг. Но в этом случае, я смотрю вот сюда, https://github.com/mavriq/mavriq-overlay/tree/master/profiles/templates/3.1/6_ac_install_patch/sys-kernel/calculate-sources, будут затёрты и изменения внесённые correction templates, если возникнет потребность в их наложении? Может тогда имеет смысл для correction templates ядра сделать приоритет выше чем custom user шаблон?
Предположим, вышла новая версия ядра. Правильно ли я понимаю алгоритм действий по адаптации своего старого custom конфига: в package.use для ядра у меня -vmlinuz, ядро приезжает и распаковывается в /usr/src/linux-BLAHBLAH-calculate, создаётся симлинк на linux. Я в директории ядра делаю make distclean, кладу туда свой предыдущий .config, делаю make oldconfig, отвечаю на вопросы, делаю новый шаблон из получившегося .config и снова емержу ядро с USE="vmlinuz". Я всё правильно понимаю, ничего не упустил?
Все операции сборки ядра и настройки initramfs, как и для любого друго пакета выполняются во время установки пакета. Так как из-за применения определённых доработок, включая поддержку udev, поддержание форка genkernel вызывало затруднения. В CL14 для создания initramfs используется dracut.
Чтобы применить свои настройки к ядру, выполните два действия:
1) Укажите пакетному менеджеру не использовать бинарный пакет для ядра:
[...]
2) Создайте шаблон с настройками с произввольным именем (например "kernel-x86_64") в директории /var/calculate/templates/
Пример:
[...]
Чтобы шаблон не дописывал, а переписывал исходный файл, добавьте в заголовок "append=replace", либо уберите "format=openrc".
К сожалению не вышло ничего. Конфиг в итоге дефолтный.
# wgetpaste /var/calculate/templates/custom-kernel-config
Pasting > 25 kB often tend to fail with calculate. Use --verbose or --debug to see the
error output from wget if it fails. Alternatively use another pastebin service.
Your paste can be seen here: http://pastebin.calculate-linux.ru/ru/show/9746
Будет ли различаться сгенерённый утилитами конфиг у ядра заемерженного с и без vmlinuz? Юзы plymouth symlink themes выставлены. Другими словами, наковыряют ли ваши шаблоны в конфиге ядра чего либо дополнительного при автоматической сборке\установке в отличие от варианта без vmlinuz? Возможно я сейчас свой кастомный конфиг вовсе не с тем конфигом сравниваю?
Вы можете дописать изменения в .config, либо переписать их. Прервите выполнение emerge calculate-sources во время комплияции и сравните diff-ом ваш конфиг с /var/calculate/tmp/portage/sys-kernel/calculate-sources-3.14.17/work/linux-3.14.17-calculate/.config
Путь подставьте для вашей версии ядра.
Используется шаблон типа openrc. Как убрать строку из конфига? Или её нужно заменить строкой CONFIG_BLAHBLAHBLAH=n? Разберётся ли потом с этим скрипт настройки исходников ядра? А если она до этого включала ветку дополнительных опций и модулей, что произойдёт? Скрипт настройки ядра сообразит убрать оставшийся "мусор" или нужно вручную всюду менять на =n?
При сборке вызывается 'make oldconfig', он сам преобразует в "is not set" и удалит лишние ветки.
Пункт два подразумевает уйму ручной работы, гораздо проще, как вы выше написали, использовать append=replace и полностью заменить конфиг. Но в этом случае, я смотрю вот сюда, https://github.com/mavriq/mavriq-overlay/tree/master/profiles/templates/3.1/6_ac_install_patch/sys-kernel/calculate-sources, будут затёрты и изменения внесённые correction templates, если возникнет потребность в их наложении? Может тогда имеет смысл для correction templates ядра сделать приоритет выше чем custom user шаблон?
diff легко покажет вам все изменения. Вы ведь можете их делать в несколько этапов, разбив на типы и сравнивая полученный после 'make menuconfig' .config с .config.old.
Приоритет описан в переменной cl_template_path (см. 'cl-core-variables-show --filter cl_template_path'), но если ваши шаблоны будут использоваться до шаблонов оверлея Calculate, то ваши настройки будут попросту переписаны.
Предположим, вышла новая версия ядра. Правильно ли я понимаю алгоритм действий по адаптации своего старого custom конфига: в package.use для ядра у меня -vmlinuz, ядро приезжает и распаковывается в /usr/src/linux-BLAHBLAH-calculate, создаётся симлинк на linux. Я в директории ядра делаю make distclean, кладу туда свой предыдущий .config, делаю make oldconfig, отвечаю на вопросы, делаю новый шаблон из получившегося .config и снова емержу ядро с USE="vmlinuz". Я всё правильно понимаю, ничего не упустил?
Можно так, а можно прервать сборку, перейти в /var/calculate/tmp/portage/sys-kernel/calculate-sources-3.14.17/work/linux-3.14.17-calculate/
и дальше уже если вы не модифицировали .conifig, то выполните в директории make menuconfig и сравните .config с предыдущим .config.old. Потом поставьте снова на сборку. Портежи очистят директорию и по новой начнут собирать.
К сожалению не вышло ничего. Конфиг в итоге дефолтный.