Кастрация genkernel

Можно ли отучить genkernel пихать в initramfs все модули, ограничившись только необходимым? То есть, исключить nfs, fuse и т.п, дабы сократить время загрузки. А то слишком долго перед загрузкой он ищет и грузит модули.

Конечно.

Конечно. /usr/share/genkernel/arch/${arch}/modules_load

Не грусти, товарищ! Всё хорошо, beautiful good!

Это я давно нашёл. Только вот

Это я давно нашёл. Только вот при обновлении genkernel всё это молча перезапишется. Меня интересует "кошерный" варинат. Существует ли он?

сборка ядра руками?

сборка ядра руками?

Нейтральность - высшее достижение сознания!

Создал пустой initramfs с

Создал пустой initramfs с одним только голым сплешем и в грубе его подставляю

genkernel lspci, lsusb и т.д.

Интересное другое есть ли более навороченный genkernel который генерирует конфиг ядра зависимости от оборудования
по lspci, lsusb и т.д. ??

Working on Gentoo Linux for Asus P535 and Qtopia :-)

oleg_kaa

oleg_kaa написал(а):
Интересное другое есть ли более навороченный genkernel который генерирует конфиг ядра зависимости от оборудования
по lspci, lsusb и т.д. ??

Есть драфт такой программы, ждем (давно) только libastral && libtetepathy - их никак не зарелизят :(

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Не смешно

Не смешно

Working on Gentoo Linux for Asus P535 and Qtopia :-)

На самом деле зря смеешься. В

На самом деле зря смеешься. В ядре довольно унифицированно все. Более того, ядро само умеет грузить по pciids драйверов нужный драйвер, если он модулем (по modules.dep), т.е. механизм вытаскивания pci и аналогичных идентификаторов имеется. Так что, теоретически (и даже практически), это реализуемо, без особых проблем, надо только установить связку между драйвер→опция Kconfig.

Другое дело, что это не нужно, ибо не все дайвера работают просто так, им могут быть нужны фирмари, или там юзерспейс утилиты, либо эти драйвера могут быть корявыми и косыми, либо может быть несколько драйверов на один pciid, либо на одном pciid может быть куча разных девайсов, из которых поддерживается только несколько, причем поддержка определяется во время загрузки драйвера (типа как у b43). Короче может получится так, что будет куча драйверов, из них часть будет крошить ядро, а остальные тупить при загрузке ожидая фирмарю. А глупый юзер так и не поймет почему так, ибо ничего не читал.

Ну и пользователи совсем обубунтятся, что тоже не есть гуд.

По поводу определения связи -

По поводу определения связи - умные японцы сделали вот такую пагу
http://kmuto.jp/debian/hcl/

вставляешь туда вывод lspci -n, а оно тебе показывает какой модуль ядра нужен для каждого pci ус-ва.
Потому как у меня хоть и 4 ядерный цпу полная пересборка ядра со всеми модулями занимает более 10 минут
А ядро заточенное под нужды именно моей тачки компилируетца аж 55 секунд

Уже честно говоря заипалсо при переходе на новое ядро запускать genkernel и настраивать опять (make oldconfig это конечно хорошо но и оно включает нежную дурь)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

lspci -k, и будет тебе

lspci -k, и будет тебе счастье
genkernel --kernel-config=confg ... и будет тебе еще одно счастье

Не грусти, товарищ! Всё хорошо, beautiful good!

genkernel initrd и совсем

genkernel initrd и совсем хорошо

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Это не совсем то :)

Это не совсем то :) Оно не покажет модули если они не загружены и с усб такой трюк не покатит

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Как бы твой сайт тоже ни

Как бы твой сайт тоже ни того, ни того не сделает. А модули он покажет в соответствии со своей БД, которая к ядру не привязывается.

Не грусти, товарищ! Всё хорошо, beautiful good!

1. Тот сайт не мой, если

1. Тот сайт не мой, если интересен именно мой сайт то пожалуйста! http://www.kaa.org.ua/ ;)
2. читай внимательно что на http://kmuto.jp/debian/hcl/ написано

Цитата:
This database uses the PCI map of Debian kernel 2.6.30-1-686

3. я привел этот сайт как пример взаимодействия lspci -n и сырцов ядра

Working on Gentoo Linux for Asus P535 and Qtopia :-)

2. Запусти update-pciids,

2. Запусти update-pciids, получишь такую же.

Не грусти, товарищ! Всё хорошо, beautiful good!

Ну и к чему это? Вы хотите

Ну и к чему это?

Вы хотите мне предложить некое работающее решение? Которое позволяет генерировать конфиг ядра в зависимости от параметров железа?

Working on Gentoo Linux for Asus P535 and Qtopia :-)

вы, уважаемый, весьма

вы, уважаемый, весьма критичны. ну уж коли так, не подскажете прямую ссылочку на познавательный материал?

скрытный секс :)

Легко less

Легко
less /usr/src/linux/Documentation/PCI/pci.txt

Еще раньше и неоднократно

Еще раньше и неоднократно задавался похожими вопросами по средствам автоматизации конфигурации ядра, кажется многие меня даже не совсем понимают, не только как но и вообще зачем. Почему то воспринимается что рукоковыряние это норма и единственно верное решение. Но это не так, сейчас ручная настройка - практически единственный возможный на данный момент метод, так как информация очень сильно разбросана и разрозненна, и ее способен корректно (и то не всегда) интерпретировать только человек (ну, искусственный интеллект еще никто не взялся учить под эту задачу).

Проблема в том, что информация о назначении той или иной опции ядра практически никак не формализована, это просто текстовая информация, причем была бы она размещена только в одном месте, так нет, нужно рыть не только сообщения kconfig и linux/Documentation, но и просторы интернета, чтобы понять, что для такого то функционала необходимы такие то технологии, некоторые из них реализуются таким то ПО, для которого нужны такие то настройки. Чувствуете кривую зависимость? т.е. зависимости ядра не от задач, а как требования ПО, решающих задачи. Добавьте сюда постоянное изменение всей этой информации во времени и далеко не всегда корректное её отслеживание на страницах в интернете, плюс устаревание технологий, плюс практически гарантированные заблуждения и привычки.

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

Приведу аналогию, - это как обычному домашнему пользователю, для того, чтобы установить плеер, вместо нажатия чекбоксика в синаптике, пришлось бы изучать скриптовые языки bash, формат deb/rpm, вручную копаться в зависимостях, выискивая необходимые версии библиотек и т.д (кстати, именно этим приходится заниматься пользователю, пожелавшему получить версию программы, отличную от того, что предлагают мейнтейнеры дистрибутива).


А теперь представьте, если бы настройка ядра была бы так же красиво формализована как система портежей, USE-флагов, зависимостей и т.д. я не имею в виду что необходимо именно такую систему вводить в ядро, но такую же гибкую очень бы хотелось!

Согласен с предыдущм оратором!!!

Однако с некоторыми поправками:
- нужна нормальная система диагностики, способная собирать информацию об аппаратном составе комплекса и корректно передавать её для genkernel
- genkernel снабдить системой скриптов для "полностью автоматической сборки ядра" в режиме "genkernel --auto all", когда требуется "подогнать ядро под конкретное железо", исключив "редкоземельные элементы"
- genkernel снабдить системой скриптов для "интерактивной" сборки ядра" в режиме "genkernel --ask all", когда оператору предоставлется возможность выбрать "десктоп", "сервер", "нетбук" и т.п.

Наверное, будет чрезвычайно полезно как для начинающих, так и для профессионалов.

emerge Your world
Gentoogle

rPman написал(а): чтобы

rPman написал(а):
чтобы установить плеер, вместо нажатия чекбоксика в синаптике,

Кто такой "синаптик" ? На ум только производитель тачпадов приходит...

rPman написал(а):
пришлось бы изучать скриптовые языки bash, формат deb/rpm, вручную копаться в зависимостях, выискивая необходимые версии библиотек и т.д (кстати, именно этим приходится заниматься пользователю, пожелавшему получить версию программы, отличную от того, что предлагают мейнтейнеры дистрибутива).

Эммм... ты форумом не ошибся? В gentoo майнтейнеры и так предлагают весьма гибкую настройку пакетов, и даже путь которым можно добавлять свои опции к ./configure не трогая ebuild. (подключив libastral делаем вывод что "синаптик"какая-то приблуда в бинарном дистре).

В целом, настройка ядра linux весьма нетривиальная задача, и врядли может быть формализована в отдельности. В бинарных дистрах всё строится на модулях, и пакет сам делает нечто с модулями которые ему нужны. В gentoo пользователь должен сам въезжать в то что он делает.

P.S. Судя по нескольким вопросам одной тематики, ты хочеш сделать "сборку" и некую инфраструктуру а-ля бинарный дистр. Есть мысль что стоит связаться с разработчиком Calculate Linux, который занимается тем-же, для обмена оптытом или вообще присоединения к разработке.

Кто такой "синаптик" ? На ум

Кто такой "синаптик" ? На ум только производитель тачпадов приходит..

Fix: Дебиановско-призводная графическая приблуда для неосвоивших apttitude/dpkg убунтологов:
http://www.nongnu.org/synaptic/

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Нет, форумом я не ошибся... я

Нет, форумом я не ошибся... я надеялся что эту аналогию оценят и поймут именно тут.

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

P.S. покажите мне задачу по настройке ядра linux, которую нельзя было бы формализовать O_o, я думаю проблема только в организации и сборе информации, пока тут я наблюдаю бардак (может где то все и формализовано? только не спешат делиться, те же мейнтейнеры бинарных дистрибутивов и встроенных систем должны постоянно подобные задачи решать).
В бинарных дистрибутивах все заранее решено мейнтейнерами этого дистрибутива, и все, сами такие дистрибутивы обычно дают даже меньше возможностей, чем portage в gentoo.

rPman написал(а): P.S.

rPman написал(а):
P.S. покажите мне задачу по настройке ядра linux, которую нельзя было бы формализовать O_o

Например: модули iptables - какие включать? Некоторый софт для части своего функционала требует наличия определенных модулей их включать? А если юзеру этот функционал не нужен? Задача компилить как модуль или прямо в ядро решается почти подбором, т.е. только набрав статистику и правильно проанализировав можно принимать решение.

мда... подумай про то что

мда... подумай про то что такое формализация, ты говоришь про отсутствие информации.

можно я аналогией отвечу? вот смотри как можно формализовать установку пакетов различных программ.. откуда компьютер узнает про то, нужно ли ставить например mysql/sqlite или библиотечку qt? вроде лично мне эти программы не нужны, мне амарок бы, музыку послушать...

Я говорю про то, что не

Я говорю про то, что не маленькая часть информации нужно для работы "ядерных юз флагов" будет основана, не на логике(что предполагает формализация), а по крайне мере частично на опытных данных, которые могут меняться у разных людей, на разных системах, на разных ядрах.
С моей точки зрения, главное отличие ядра от систем(набора пакетов), что конфиг ядра после настройки почти не нуждается в обновлении, а когда нуждается я бы не доверил это автоматической проге - выигрыша по времени нет, а риск что она сделает что-то не так как тебе хочется есть.
Мое мнение: для тех кто юзает готовый конфиг не думая и не разбираясь ничего не изменится(только конфиг будет чуть оптимальнее), те кто хочет разобраться все равно будут сидеть, читать и думать, те кто знает какие опции им нужны уже имеют настроенные ядра. Т.е. выиграют и то не много, только те кто хочет, в пару кликов получить крутое ядро, в этом случае лучше усилия пустить на обновление и развитие "Ядерной физики для домохозяек 2.6" и узкоспециализированных howto.

Хм.. ничего не напоминает?

Хм.. ничего не напоминает? странно. Выбор пакетов по зависимостям вы доверяете портежу, профайлу и т.д.. а выбрать настройки ядра - нет.
Я говорю про то, что как было бы хорошо, если бы информация по настройке ядра была бы так же формализована и обновляема, как сейчас информация о пакетах (программах, библиотеках, сборках). И это только малая толика того, что можно было бы сделать...

P.S. приведите пример параметров настройки ядра, установка которых основывается не на четкой формализации а на 'опытных данных', особенно меня интересуют критерии выбора оптимальности по этим опытам.

Набор пакетов(включая версии)

Набор пакетов(включая версии) изменяется довольно часто(минимум раз в неделю), а два года наверно не пережил ни один пакет(даже если не брать во внимание emerge -e world), с ядром наоборот 70%-90% настроек не изменились с самого первого ядра. В общем, работу portage мне на себя взвалить не реально, а вот раз в несколько лет посидеть пару тройку часов настраивая ядро с нуля, а потом изредка подправляя - вполне возможно и даже проще.

Например вопрос: модулем и внутрь ядра? Конкретно sata_via, в ядре можно и так и так, но у меня работает только отдельным модулем.
Модули для iptables, какие включать или может много юзов(по одному для каждого)? Аналогично с криптографическими.

Ну, то что настройки ядра

Ну, то что настройки ядра более консервативны это совсем не значит что можно тратить время на их ручное 'вылизывание', к тому же речь идет не только про обновления, но и про первоначальную настройку.

Как именно формализовать настройки ядра - это конечно еще тот вопрос, может быть каждая фича (один или комплекс настроек) - это аналог с пакетами (ебилды). А вот разнообразие параметров по типу iptables это проблема актуальна и для программ.. т.е. зависимость приложений зависит от файлов настроек (нет механизмов, кроме конечно use-флагов, чтобы указать портежу на потребность в дополнительных программах), да и не думаю что схему use-флагов необходимо так слепо тащить в ядро, здесь надо думать..

Про проблему выбора модуль или вкомпилировать внутрь ядра это еще тот вопрос, я кстати и его как то задавал тут на форуме, и не получил вразумительного ответа, но не думаю что и эта информация не поддается формализации.
P.S ... не удивлюсь, если причина в показанном примере в параметрах, дописываемых модулям в файлах /etc/*modules* которые наверняка правятся ебилдами, но вкомпилированные модули в ядро должны настраиваться либо через /sys/modules либо параметрами загрузки ядра. Т.е. разный способ передачи параметров и порождает проблему этого выбора.

Цитата: Например вопрос:

Цитата:
Например вопрос: модулем и внутрь ядра? Конкретно sata_via

У меня модулем - модуль живет в initrd

поэтому формализовать можно без проблем :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

оооо

rPman написал(а):
А теперь представьте, если бы настройка ядра была бы так же красиво формализована как система портежей, USE-флагов, зависимостей и т.д. я не имею в виду что необходимо именно такую систему вводить в ядро, но такую же гибкую очень бы хотелось!

Вот насчёт USE-флагов это мысль... Почему нельзя так же ввести профили ядра, дополнительные переменные, по которым выставлялись бы конфиги в ядре? По сути, если так всё реализовать (а это вполне реально), то этот вариант был бы в стиле Gentoo. Ведь именно в философии Генту прописано, что инструмент должен работать на человека, а не человек на инструмент!

И ведь есть люди занимающиеся подобным (вспомним про парней разрабатывающих gentin). Так что это им пища для размышлений. :)

Great minds have a purpose, other have a wishes. /Irving Washington/

угу, вот у alsa-driver

угу, вот у alsa-driver полсотни USE у иксов тоже, а теперьт мы в ядро сделаем пару тысяч USE - и всё ок.

в любом деле, нужно дойти до

в любом деле, нужно дойти до маразма.. и остановиться.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".