LINUX.ORG.RU

Ядро без подгружаемых модулей со вшитым блобом nvidia и bumblebee: реально ли?

 , ,


0

1

Появилась у меня хотелка такая: убрать подчистую подгрузку модулей и включить всё в бинарник ядра. А ещё чтобы драйвер пропиетарный от нвидии был, а главное - чтобы с bumblebee работал, т.к. люто удобная штука этот ваш бамблби.

Как зашить блоб в ядро, я примерно представляю, т.к. там в конфигах даже строчка была для блобов, но не представляю, во-первых, что именно вшивать (просто nvidia.ko или ещё что?), а во-вторых, сможет ли разжевать такой конфиг бамблби, т.к. он вроде как на загрузке-разгрузке модулей и построен, а у меня с пониманием устройства графической подсистемы линуксов примерно как у второклассника с квантовой физикой.

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


Та строчка для прошивок. Без редактирования ядра никак.

anonymous ()

в инитрамфс пихни, out of tree блобы в ядро так просто не зашьёшь

подгрузку модулей и включить всё в бинарник ядра

а вот это очень плохая идея на самом деле

anonymous ()
Ответ на: комментарий от anonymous

а вот это очень плохая идея на самом деле

Почему?

tsmx ()
Ответ на: комментарий от anonymous

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

anonymous ()
Ответ на: комментарий от anonymous

Но это не «почему». Например, почему вшивать виртуализацию в ядро - плохо? Почему звук - плохо?

tsmx ()
Ответ на: комментарий от anonymous

Техническое обоснование будет?

anonymous ()
Ответ на: комментарий от tsmx

Модули любят создавать проблемы когда они не модули. Помимо отсутствия возможности выгрузить их когда не нужны, это и проблемы со стабильностью и безопасностью, и всё прочее.

anonymous ()
Ответ на: комментарий от anonymous

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

anonymous ()
Ответ на: комментарий от anonymous

Блин, сложно.

Ах да, ещё одна деталь: если запихать модули в initramfs, загрузить их там, а потом уже в новом руте выгрузить, то загрузить обратно уже не выйдет, т.к. они остались в initramfs? Если да, то можно ли примонтировать каталог с модулями из initramfs на новый рут, чтобы не повторяться?

tsmx ()
Ответ на: комментарий от anonymous

это и проблемы со стабильностью и безопасностью, и всё прочее.

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

Помимо отсутствия возможности выгрузить их когда не нужны

Это не проблема, если ядро не компилируется с allyesconfig.

Kron4ek ★★★ ()
Ответ на: комментарий от anonymous

Да, это дерьмо любит крашиться и вместо перезагрузки модуля тебе придётся ребут делать.

anonymous ()
Ответ на: комментарий от anonymous

После первого ребута из-за краша модуля я задумаюсь над тем, чтобы выкинуть модули на периферию из ядра. Пока что кандидатом на модулирование остаётся только блоб.

tsmx ()
Ответ на: комментарий от anonymous

Что такое реальные проблемы? Паника? Кроме неё у драйверов бывает куча багов с которыми мне приходилось сталкиваться овермного раз.

anonymous ()
Ответ на: комментарий от anonymous

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

anonymous ()
Ответ на: комментарий от Kron4ek

Подумай ещё. Ты не отключишь решето виртуализации когда оно вкомпилено в ядро. Всё мне надоели эти капчи.

anonymous ()
Ответ на: комментарий от anonymous

Моя звуковая карта с тобой не согласна.

anonymous ()
Ответ на: комментарий от anonymous

Например когда в dmesg вылезает oops или BUG - модуль выгрузить не выходит, и что он в процессе глюка насрал его выгрузка уже не уберёт. Даже без падения драйвера, по опыту если его выгрузить и загрузить другой, тот может не работать, тк ожидает состояние железа после биоса, а не другого модуля.

anonymous ()
Ответ на: комментарий от anonymous

Я менял карту, а пока не заменил - ребутался, кто знает что кривой драйвер натворил в пространстве ядра.

anonymous ()
Ответ на: комментарий от anonymous

Это да. Panic on oops и всё прочее имеет смысл. У меня было попроще, irqpoll справился. Но иногда происходит странное, помогает выгрузка. С видеокартой то же самое - вроде не критичное, а работать дальше не может. Ну и зачем мне все фильтры для iptables в ядре когда мне нужно только пара из них?

anonymous ()
Ответ на: комментарий от anonymous

Кстати, а зачем netfilter вообще нужен?

Я так почитал справку в menuconfig, ничё не понял и вырубил его со всеми фильтрами. Он вообще где-нибудь на обывательском уровне юзается, или это только для бородатых сисодминов?

tsmx ()
Ответ на: комментарий от tsmx

Блокировки роскомпозора обходить(в зависимости от методов твоего провайдера), можно раздавать интернет без роутера.

anonymous ()
Ответ на: комментарий от tsmx

на обывательском уровне юзается

файервол, маркировать - перенаправлять пакеты и всё такое прочее.

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

anonymous ()

Может ты хотел спросить законно ли?
Вроде так нельзя делать по gpl.

xmikex ★★★ ()
Ответ на: комментарий от xmikex

Для домашнего использования можно всё что угодно, всё равно никто не узнает.

tsmx ()
Ответ на: комментарий от xmikex

Вроде так нельзя делать по gpl.

Если результат не распространяется, то гпл не накладывает никаких ограничений

annulen ★★★★★ ()
Ответ на: комментарий от tsmx

Он вообще где-нибудь на обывательском уровне юзается

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

annulen ★★★★★ ()

убрать подчистую подгрузку модулей

«Там будет плач и скрежет зубов» (с)

annulen ★★★★★ ()
Ответ на: комментарий от tsmx

почему вшивать виртуализацию в ядро - плохо?

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

Iron_Bug ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.