Как обычно – грузимся с liveusb, смотрим всё ли завелось, далее zcat /proc/config.gz >> /path/.config, кладём этот конфиг в /usr/src/linux (или где там у Вас исхоники), далее mount /boot, далее make menuconfig. Смотрим чё там нужно-не нужно и далее, сохраняем. Потом делаем nice -19 make -j<сколь ядер не жалко>;nice -19 make -j<...> modules_install; nice -19 make -j <...> install. Далее grub-install и grub-mkconfig -o /boot/grub/grub.cfg. Можно ещё и сам по себе grub подтюнить, но это уже в качестве самоподготовки.
Чтобы понять чё там нужно-не нужно всегда можно сделать lspci -v. Ну и dmesg посмотреть.
Насколько мне известно он тоже берет значение из конфигов, но у меня ядро есть которое работает после make defconfig, а вот почему у меня не запускаеться ядро если выставить все в модуль непомню какая команда ядро не фурычит
Хочешь сказать само генерируеться во время запуска лайва?
Там ни чего не генерируется. Там уже всё сгенерировано. Задача ядра в live просто загрузиться. Где угодно. Так что, скорее всего, там уже есть все необходимые модули ядра.
Проверить это можно просто сделав lsmod и сравнив полученный список загруженных модулей с выводом, например, lspci -vvv или, в более короткой форме, lspci -k.
Там будут названия устройств, адреса и названия модулей ядра – какой и что обслуживает. Если что-то из модулей не найдётся или како-то устройство не подхватится системой, то смотреть надо в dmesg и оттуда начинать копать. Что именно за девайс.
Если есть устройства, подключенные по usb, то смотреть надо выхлоп lsusb. Следовательно, на машине должны быть установлены и pciutils и usbutils.
Поэтому получить конфиг, который будет избыточен, но по крайней мере будет работать, Вы можете zctat /proc/config.gz >> .config. Дальше уже открываете его в дереве исходников ядра через maker menuconfig и вышибаете оттуда лишнюю дурь. Например, ненужные в Вашей конфигурации модули устройств, поддержку ненужных файловых систем, кодировок, там много всего.
Потом собираете ядро, как я и сказал в первом комменте и помните что по nice -19 make -j<сколько ядер> install, оно должно упасть в ранее подмонтированный раздел /boot. Потом просто grub-mkconfig -o /boot/grub/grub.cfg. Здесь nice -19 нужно просто чтобы ускорить процесс по максимуму. -j<число ядер> тоже.
Я не рекомендую перед zcat /proc/config.gz >> .config выполнять make mrproper в дереве исходников ядра. Эта полная очистка может быть использована только в случае, если в ядре Вы ориентируетесь как в своём собственном кармане. В противном случае Вы рискуете посносить некоторые нужные вещи и потом просто задолбаться их восстанавливать. Лучше аккуратно, итерациями убирать лишнее, проверяя работоспособность. Пока не разберётесь что и как.
1)скачать готовое ядро от какого нибудь дистра, и сделать все как ты описал
2) как хотел я, сделать избыточное ядро где все все включено, и сделать как ты описал(проблема только в том что ядро это избыточное не запускаеться(уходит в перезагрузку))
Дальше подмонтировал бы к флешке раздел, откуда пытаемся грузиться. Например, /dev/sda1. Дальше просто посмотрел бы чё там в логи записано. Почему система в перезагруз уходит.
Дальше бы либо спас с диска данные и переустановил систему, либо просто тупо переустановил бы систему, если там спасать нечего и потом обложился бы букварями про сборку ядра для своего дистрибутива, гуглил бы как надо и курил маны и доки по данному поводу. И постепенно, с пересборкой на каждом шаге, отработал бы этот процесс. Т.е., выкинул какие-то модули, оставив только нужное, например, сетевые модули, пересобрал-проверил.
Ну вот как-то вот так. А в принципе, по технологии сборки, всё выше есть.
Здесь nice -19 нужно просто чтобы ускорить процесс по максимуму.
Совет либо бесполезный, либо вредный.
Повышение приоритета сборки замедляет другие задачи - например, создаст проблемы при сёрфинге во время сборки.
К счастью, проблема давно решена:
В состав ядра интегрирован патч с реализацией идеи автоматической группировки задач для повышения интерактивности на десктопе. Патч специальным образом разбивает выполняемые задачи на группы в привязке к идентификатору сессии, в дальнейшем планировщик задач оперирует данными группами как единым целым. Номер сессии изменяется при выполнении системной функции setsid(), которая, например, вызывается для каждого нового сеанса командной оболочки (тем не менее, при запуске десктоп приложений идентификатор сессии не меняется, т.е. если запустить в терминале «make -j 20», влияние на десктоп-приложения будет минимально
https://www.opennet.ru/opennews/art.shtml?num=29919
В большинстве десктопных дистров по умолчанию kernel.sched_autogroup_enabled=1, поэтому nice работает только для процессов в пределах своей автогруппы и не влияет на общий приоритет автогруппы.
Можно ли так ускорить игры? Чтобы видюха в проц не упиралась
Можно. Если Вы понимаете что делаете и чем это грозит. Т.е., высока вероятность того, что при такого рода сборке, в особенности, если поставить nice -19 make -j<сколько ядер процессора> или nice -19 ./чего-то_там Вы не сможете например, интернет комфортно серфить. Но здесь как раз смысл в том, чтобы не особо подпрыгивая как можно быстрее завершить нужную операцию. А серфить потом будете.