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 ★★★★★
()
Ответ на: комментарий от intro

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

kernel ppa тебе поможет

xtraeft ★★☆☆
()
Ответ на: комментарий от 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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.