LINUX.ORG.RU

Сборка и компиляция ядра Ubuntu


0

1

Ребят...Помогите мне пожалуйста...Как-то бродил по гуглу и нашёл статейку на linux.org.ru, про то как надо компилить ядро...Так было классно и хорошо описано в одном коменте...я даже начал собирать...Но к несчастью удалил ссылку на эту страничку...в том коменте один юзер сайта описал как собирать и компилить...Помню что в том способе использовались команда xconfig...Ещё файл build-kernel.sh с кодом:

build-kernel.sh

#!/bin/sh

# Запускаем графическую утилиту конфигурирования ядра xconfig
# Можно заменить команду на gconfig (GTK версия)
# После внесения изменений сохранитесь и закройте конфигуратор
make xconfig

# Очищаем папку от мусора (если он есть)
sudo make-kpkg clean

# Собираем ядро в .deb пакеты
sudo make-kpkg --initrd kernel_image kernel_headers

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

# Выходим из режима суперпользователя
exit

... А также советовалась прога SysInfo для оптимизации ядра под свою систему...
Такая просьба - кто сможет помочь найти эту тему и сам комент, пожалуйста отпишитесь...
Или опишите как откомпилить ядро таким методом...
Заранее благодарен за помощь...
P.S. Использую Ubuntu


Не понял вопроса. Что требуется-то?

Конфиг получается при помощи localmodconfig, а потом menuconfig или nconfig для ручной настройки, потом делайте make-kpkg и ставьте полученный пакет.

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

Хотел найти тот комент... Просто привёл возможные критерии поиска...В коменте использовалось то что я написал выше... Просто своими силами я не могу найти такое понятное объяснение как в том коменте...Вот и прошу других помочь мне...=(

intro
() автор топика

предлаюаю скачать deb-src и всё, и будет ядро. Можно также подменить исходник на последний и тоже будет последнее ядро, причём в пакете.

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

обычное ядро kernel!
Собираю чтоб обновить его...
Объяснить нужно его компилить...там что-то было типа распаковать архив kernel-а, скопировать туды вроде из /usr/src/linux-headers-*.*.**-**-generic-pae файл .config и запустить build-kernel.sh
руководствуясь прогой SysInfo с помощью команды make xconfig из build-kernel.sh оптимизировать ядро под своё железо...=)

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

*грустный вздох*
sudo -i
cd /usr/src/linux
tar xvjf /path/to/linux-$version.tar.bz2
cd linux-$version
cp /boot/config-$(uname -r) ./.config
make localmodconfig # вот оно ваше «оптимизировать под своё железо»
make-kpkg --initrd kernel_image kernel_headers
Поставьте получившиеся пакеты и радуйтесь.

Собираю чтоб обновить его...

Зачем?

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

ё-моё...Вот это как раз таки мне непонятно...=(
Поверь - я в linux-е работаю недавно...с/с++ не знаю (тока Delphi)...Всёго-то с февраля месяца сижу за линуксом (правда под винду практически не залажу, тока на курсах по Delphi)...
А в том коменте я всё понял...
Объсните тупому...А?...=(((

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

> Объсните тупому...А?...=(((
К сожалению, я не умею отвечать на общие вопросы. Пожалуйста, задайте более конкретный вопрос. (hint: http://citforum.ru/howto/smart-questions-ru.shtml)

Вы не знаете, что sudo используется для получения прав суперпользователя? Прочтите man sudo.
Вы не знаете, что cd - это команда перехода в другую директорию? Введите help cd; прочтите man builtins.
Вы не знаете, что tar - это архиватор? Прочтите man tar или info tar.
Кстати, под $version я имел в виду версию собираемого ядра.
Вы не знаете, что такое make localmodconfig? В директории с исходниками ядра введите make help, и программа make, прочитав Makefile, выполнит в нём цель help («показать текст с информацией о возможных целях сборки»).
Вы не знаете, что такое make-kpkg? Прочтите man make-kpkg. Это программа, облегчающая сборку пакета с ядром для debian-подобных систем.
Вы не знаете, как ставить пакеты? Прочтите man dpkg.

Кстати, чем не устроила та статья?

Зачем вообще собирать ядро, если Вы не понимаете основ работы системы?

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

читай по губам...=)

1)sudo -i
2)cd /usr/src/linux
3)tar xvjf /path/to/linux-$version.tar.bz2
4)cd linux-$version
5)cp /boot/config-$(uname -r) ./.config
6)make localmodconfig # вот оно ваше «оптимизировать под своё железо»
7)make-kpkg --initrd kernel_image kernel_headers
8)Поставьте получившиеся пакеты и радуйтесь.



1)Здесь мне всё понятно...Хотя я бы написал «sudo -s -H»...
2)тоже понятно...хотя я бы, как было уже сказано, работал в ~...
3)непонятна команда tar xvjf - это распаковка архива?; /path/to/linux-$version.tar.bz2 - это путь к архиву???
4)понятно
5)это что? копирование файла конфигурации существующего ядра (с версией $) в файл ".config" в папке linux-$version
6)мне надо это сделать вручную в xconfig!!!
7)ясно...
8)это и дурак сможет...=)))
В принципе всё это, но по другому было описано в том коменте...
Пункты 2-4 посвящены распаковке архива с ядром, а 5 копированию файла конфигурации в папку со свежим ядром...
6-8 уже посвящены настройке, сборке и установке ядра....
Я правильно понял???
Просто мне, наверное, надо было подольше посидеть, помучиться и почитать...=)))
В том коменте просто не только команды были даны, а и подробное описание каждой из них...=)
Sorry, за беспокойство...

intro
() автор топика
Ответ на: читай по губам...=) от intro

2) Так тоже можно. Тогда можно обойтись без sudo -i.

3) Да, распаковка:
x - распаковать архив
v - при распаковке сообщать имена распаковываемых файлов
j - архив сжат bzip2
f - архив лежит по указанному пути

5) Копировать конфиг текущего ( $(uname -r) означает «результат выполнения uname -r») ядра в .config, откуда его берёт система сборки ядра. Я так понял, Вы хотите обойтись без этого?

6) xconfig обязателен? Почему не menuconfig? nconfig? Почему бы не оттолкнуться от изначально близкой к оптимальной конфигурации, которую генерирует localmodconfig?

Sorry, за беспокойство...

Ничего страшного.

AITap
()
Ответ на: читай по губам...=) от intro

Я же писал, используй deb-src...

sudo apt-get build-dep linux-kernel
apt-get source linux-kernel

Где linux-kernel -название пакета (у меня не Ubuntu и поэтому я не знаю как он называется). Ты получишь исходный код ядра из убунты. Редактируешь файл debian/rules с целью исключить из процесса сборки специальные патчи, и заменяешь исходный код новейшим. А потом:

cd linux-kernel
fakeroot ./debian/rules binary

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

спс...но меня привлекает ручная работа, где я точно знаю что я делаю, а не помошь каких-то прог!...=)

intro
() автор топика
Ответ на: комментарий от AITap

5) нет, я просто копировал его вручную (открывал /boot, копировал config-$version в папку с распакованным ядром и переименовывал в .config)...

intro
() автор топика
Ответ на: комментарий от AITap

всё! всем спс...больше не буду вас мучить, так как я всё понял (с вашей помощью) и во всём разобрался...=)

intro
() автор топика
Ответ на: комментарий от AITap

кстати, можно записать все эти команды в «*.sh» и запустить его, чтоб не писать эти команды постоянно???

intro
() автор топика

В gentoo проще:

emerge git-sources; cd /usr/src/linux/; make menuconfig; make -j4; make modules_install; cp arch/x86_64/boot/bzImage /boot/bzImage; reboot

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

1 мне initrd не нужно.
2 vim /etc/genkernel.conf
3 у меня пара(даже тройка) .config в genkernel ими проблематично манипулировать.

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

А почему ты make install не делаешь?

System map, linux-config мне не нужены.

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

А почему???
А я всё равно привык сначала делать "sudo -s -H", а после всё остальное...=)
А как через терминал открыть «файловую систему» в итерфейсе...
«текстовый редактор» это gedit, а «файловая система»???

intro
() автор топика

Кстати...у мя при начале работы ругается об отсуствии каких-то пакетов...
В том коменте с самого начала описывалось как подготовить систему перед сборкой...=(
Что мне делать?

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

> А почему???
Потому что sudo -i запускает подпроцесс с шеллом. Вы получите шелл, а выйдя из него - неудачные попытки выполнить требующие права root команды.

«текстовый редактор» это gedit, а «файловая система»???

Так бы и сказали, что нужен файловый менеджер nautilus.

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

> В том коменте с самого начала описывалось как подготовить систему перед сборкой...=(
apt-get install build-essential kernel-package ?

отсуствии каких-то пакетов...

Каких пакетов?

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

просто поставь пакеты, на отсутсвие которых, тебе указывает система сборки.

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

> Каких пакетов
А хто его знает??? Консоль (терминал) просто руганулась об неизвестных командах которые могут находится в таких-то пакетах (на одну комагду приходится по несколько пакетов в которых она может быть)...=\

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

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

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

> что за муть???
Был тут недавно клоун-тролль, который просил помочь восстановить систему после этой команды.

AITap
()

суперпользователь, "sudo bash" и "sudo -s -H" одно и тоже???
Чем отличаются команды: "sudo bash", "sudo -s -H" и "sudo -i"..?

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

> Чем отличаются команды: «sudo bash», «sudo -s -H» и «sudo -i»..?
Переменными окружения в получаемой оболочке, местанахождением после выполнения команды.

Первая просто запускает bash с правами суперпользователя.
Вторая ещё и изменяет $HOME.
Третья полностью симулирует интерактивный логин, так что после ввода этой команды Вы окажетесь в /root/.

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