Сборка ядра для ленивых

Изображение пользователя Susumo.

Краткое вступление:
Я отношусь к тем пользователям Linux, которые не любят вводить много команд в терминале, для таких же, это написано. Просьба к гуру не минусовать это не для вас написано)))))))))

Надеюсь вы изучили комплектацию своего компа и знаете что вам нужно.

Для начала устанавливаем:

apt-get install kernel-package fakeroot libncurses5-dev libqt3-mt-dev

libncurses5-dev (для генерации меню make menuconfig), libqt3-mt-dev (для генерации меню make xconfig).

Сборку можно проводить в домашней папке. Как и каким образом вы разархивируете исходники не важно, что бы не конфигурировать заново, копируем конфиг вашего рабочего ядра из /boot и переимновываем в .config.

Создаем в папке с исходниками фаил build-kernel.sh с содержанием:

#!/bin/sh

    make xconfig

    sudo make-kpkg clean

    sudo make-kpkg --initrd --append-to-version=-mykernel-${1} kernel_image kernel_headers

    read  -p "Очистить от временных файлов включая .config? (эта операция необратима, рекомендуется сохранить копию .config. Если не уверены, ответьте НЕТ) [y/n]: " myyn
    case "$myyn" in
    [ДдYy]   ) echo "Начало очистки папки ядра...";sudo make mrproper;;
    [НнNn]   ) echo "Пропускаем...";;
    *      ) echo "Пропускаем...";;
    esac

    exit

В скрипте в 4 строке слово "mykernel" можно заменить любым своим.

Даем права на запуск.

Запускаем в mc или из терминала.

./build-kernel.sh

Как скрипт оработает выходим из каталога с исходниками и находим два пакта *.deb

Ну и на всякий случай если скрипт не заработал.

make menuconfig или make xconfig

далее

make-kpkg clean fakeroot make-kpkg --initrd kernel_image kernel_headers

Выходим из каталога с исходниками и находим два пакта *.deb

PS. Не забудте сохранить скрипт перед удалением каталога с исходниками, если исходники удалять не собираетесь и скриптом не ползовались, то для очистки исходников от продуктов сборки:

make-kpkg clean

из каталога с исходниками, они не мало места занимают.

Комментарии (37)

0
Mike - 18 Июль, 2011 - 19:40
Изображение пользователя Mike.

в подшивку, однозначно!!

0
DarkneSS - 19 Июль, 2011 - 07:13
Изображение пользователя DarkneSS.

Закинул.

+1
Susumo - 19 Июль, 2011 - 18:03
Изображение пользователя Susumo.

Подправил чуток про EXTRAVERSION = .3, после долгих экспериментов выяснил, что в этой строке должна быть только одна точка

0
Susumo - 20 Июль, 2011 - 08:40
Изображение пользователя Susumo.

Эх доигрался, дрова нвидиа да же на дефолтное ядро не ставятся, ни с сайта, ни из репов. Че делать хз(((

0
DarkneSS - 20 Июль, 2011 - 09:18
Изображение пользователя DarkneSS.

Описать подробно ошибку. А вы для дефолтного все пакеты установили: заголовки и подобное?

0
Susumo - 20 Июль, 2011 - 15:04
Изображение пользователя Susumo.

Решил проблему:

Установил Ubuntu-tweak, там есть чистка настроек, почистил, дрова поставились.

Есть похожая команда в терминале? Кроме --purge при удалнии, а то удалил без этой команды, а как настройки почистить хз((

0
DarkneSS - 20 Июль, 2011 - 23:58
Изображение пользователя DarkneSS.

Можно сделать пург удалённым пакетам вроде как.

0
Lum - 20 Июль, 2011 - 21:00
Изображение пользователя Lum.

libqt3-mt-dev? И заодно притащить в систему всё древнее кути3. Можно было поновее мануал скопипастить. Сейчас нужен libqt4-dev

0
Susumo - 20 Июль, 2011 - 21:48
Изображение пользователя Susumo.

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

+2
killer - 20 Июль, 2011 - 21:33

Для тех, кто не любит вводить много команд есть прекрасный топик на хабре

0
Susumo - 20 Июль, 2011 - 21:44
Изображение пользователя Susumo.

Класс!!! Жаль что неделю назад это не нашел(( сток убитых вечеров на конфиг ядра((

0
Susumo - 20 Июль, 2011 - 22:27
Изображение пользователя Susumo.

Странно ток, программа GTK а тянет qt3 для make xconfig хотя для GTK make gconfig

+2
Susumo - 20 Июль, 2011 - 23:19
Изображение пользователя Susumo.

Все наигрался))) Поставил дефолтное и успокоился))

И к стати чет не заметил чтоб оно медленней работало))

Похож сборка ядер не для меня.

0
DarkneSS - 20 Июль, 2011 - 23:59
Изображение пользователя DarkneSS.

С дефолтным-то конфигом! Ладно бы вы под свой комп галки проставили.

0
Susumo - 21 Июль, 2011 - 00:26
Изображение пользователя Susumo.

В том то и дело, что производительность добавляло ток изменение значения HUMA (так вроде) с 100 до 1000 а в дефолтном 11-ом уже стоит 1000 остальное уменьшало размер ядра, но производительности не добавляло. Самому не понятно почему, я из ядра больше 50% процентов вырезал того, что в ядро зашито было, а модулей вообще около 90% вырезал.

0
DarkneSS - 21 Июль, 2011 - 07:23
Изображение пользователя DarkneSS.

Интересно. При конфигурировании под железо система должна до 20% ускоряться...

0
Susumo - 21 Июль, 2011 - 07:50
Изображение пользователя Susumo.

При изменении HUMA даже больше ускоряется, а в остальном....
Я собирал ядра с kernel.org, мож они плохо с конфигом ubuntu стыкуются, щас вот как раз из ubuntu'ных сырцов собираю посмотрим. На первый взгляд варнингов меньше стало при сборке, но может быть я вижу то что хочу видеть))

А то что у 11 ядра HUMA 1000 это я ошибся прогу из поста повыше тестил, она мне похоже в конфиг от дефолтного ядра сама это значение подставила

0
i_am_new - 21 Июль, 2011 - 09:45

чёрт, а у меня KernelCheck выдаёт ошибку на 70% при компиляции ядра, попробую вручную пособирать

0
Susumo - 21 Июль, 2011 - 09:55
Изображение пользователя Susumo.

Я не дождался пока она мне ядро соберет, как понял что она мало чем от скрипта отличается, так снес ее.

0
Susumo - 21 Июль, 2011 - 09:52
Изображение пользователя Susumo.

Странно убунтушное ядро не собирается, доходит до сборки в деб и ошибка. 3 попытки и ошибка такая непонятная "2"

+1
Гал - 21 Июль, 2011 - 11:31
Изображение пользователя Гал.

Буквально позавчера компилил ядро раза три. Пользовался вот этим мануалом. На мой взгляд куда меньше телодвижений, чем тут...

0
Susumo - 21 Июль, 2011 - 18:38
Изображение пользователя Susumo.

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

0
pomawka881 - 11 Сентябрь, 2011 - 22:48

не увидел я пользы скрипта!!! время которое я экономлю запуская файл build-kernel.sh по сравнению с теми же командами набранными вручную ничтожно малое!!!! А с учетом того сколько времени занимает сама работа по сборке.... Ерунда полная!!!

0
Susumo - 14 Сентябрь, 2011 - 15:18
Изображение пользователя Susumo.

В начале мана сказано, что это для тех, кто не любит вводить команды в терминале. Я сам такой, и мне нравится больше скрипт, у меня скрипт например называется "bk", как думаеш его быстрей запустить чем все команды вводить. К тому же, кому в лом скрипт делать, могут команды из скрипта по очереди вводить.

+4
poisons - 22 Июль, 2011 - 00:31
Изображение пользователя poisons.

Было бы здорово иметь тулзу, которая сначала пощупает что у меня за железо, а потом соберет ведро. С впиленными в ведро нужными модулями. В свое время очень сурово занимался садомазо. Ошибки при сборке банальны, но т.к. собирается ведро не очень спешно они адово критичны. Вот впилил в ведро модулем поддержку ext3(ну или че у вас там в корне) и получил кернел паник при старте(это совсем банальности) или же отпилил поддержку вроде бы "не нужного" мне scsi(ну откуда скази контроллер в десктопе? думал я пару лет назад).....ну и так далее.
В итоге собрал. Прирост производительности был таков, что его видно только по load avg. А как тормозил у меня браузер при переключении по вкладкам так и тормозит(железяка на тот момент слабовата была)
Так что как вывод - ну его нафик для домашнего использования. Только если какой нить патч накатить на планировщик или же с флагами оптимизации поиграть. А так не благодарное это занятие. Уж лучше заработать/захалтурить/сфрилансить/пойти своровать/выпросить у мамы/получить в наследство/в подарок/иное железо более живое, чем убивать тонну времени на "кошерную" сборку (гуру последнее предложение не касается).

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

0
Susumo - 22 Июль, 2011 - 00:46
Изображение пользователя Susumo.

Вот и я все больше к этому склоняюсь))) Пол отпуска в обнимку с гуглопереводчиком и вики угрохал, думал чего стоящее получится))

0
DarkneSS - 22 Июль, 2011 - 00:49
Изображение пользователя DarkneSS.
0
Susumo - 22 Июль, 2011 - 03:16
Изображение пользователя Susumo.
0
Tonal - 22 Июль, 2011 - 08:10
Изображение пользователя Tonal.

Там же написано, развернуть, а потом
qmake
make
./good

0
Гал - 22 Июль, 2011 - 08:32
Изображение пользователя Гал.

А у меня немного иначе все сложилось. Выбил новый комп, а сетевушка не робит. Вот и встал я перед выбором, либо вернуться на старую машину либо собрать ядро с поддержкой сетевушки.))

0
DarkneSS - 22 Июль, 2011 - 09:47
Изображение пользователя DarkneSS.

А просто доставить модули, которых нет искаропки, не пробовали? ;-)

+2
Mike - 22 Июль, 2011 - 09:59
Изображение пользователя Mike.

это не по-красноглазному же!

0
Гал - 25 Июль, 2011 - 09:30
Изображение пользователя Гал.

Дык не ставилось ниче. Ваще проблема решилась установкой ядра 2.6.38-33 вместо родного 2.6.33. Хотя и в том и в том дрова были на карточку. Но завелось все только с первым. И, кстати, как сказал Mike, не по красноглазому :D Не, я не маньяк, просто за 3 с небольшим года работы на кубунту не разу ядро не собирал, а тут вроде как и необходимость возникла :)

0
Гость - 22 Июль, 2011 - 07:03

--append-to-version=-mykernel-1 - и не надо конфиг править.
и ещё перед make-kpkg можно export CONCURRENCY_LEVEL=X - где X количество потоков.
Что бы пошустрей компилилось.

0
Susumo - 22 Июль, 2011 - 08:52
Изображение пользователя Susumo.

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

0
Гость - 22 Июль, 2011 - 15:18

автоматизировать можно + к версии, например беря число от прошлой сборки и прибавляя 1 или
--append-to-version=-${1}
Хотя ладно )

0
Susumo - 23 Июль, 2011 - 11:35
Изображение пользователя Susumo.

Спасибо не знал, ща мануал немного поправлю.

Кто в bash разбирается, посмотрите правильно команду вставил?

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры