Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Компиляция ядра 8.10 для dual core - 4 гб памяти.  (Прочитано 5413 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн слепой

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Я решил, что пора бы уже переходить со стандартного generic-ядра на свое собственное... Все мои предыдущие попытки собрать свое ядро оканчивались плачевно... ядор вроде бы собиралось, но вставало криво и результат  меня не удовлетворял... А  вот тут и повод разобраться подвернулся в связи с покупкой нового компа...
Все ниже изложенное преднозначенно для тех кто еще не разобрался с компиляцией ядра. Я привожу подробный список комманд, точное выполнение которого позволит собрать и скомпилировать новое ядро. Вся процедура тестировалась для ubuntu 8.10 и процессора dual core, 4RAM Gb.
Обидно, когда памяти больше, а linux видит всего 3.2 Гб...

Итак для начала необходимо подготовиться к компиляции и установить несколько пакетов. создайте каталог и зайдите в него...
mkdir kernel
cd kernel
sudo su

Все комманды выполняются от суперпользователя
Теперь установим необходимые пакеты:

apt-get install fakeroot build-essential
apt-get install crash kexec-tools makedumpfile
apt-get install libncurses-dev ncurses-dev

Не переживайте если некоторые пакеты у вас уже установлены. apt-get проверит зависимости и лишнего не установит. Я использую  Apt-get потому, что после компиляции первое использование aptitude уберет около 40 более ненужных пакетов.

apt-get build-dep linux-image-$(uname -r)
apt-get source linux-image-$(uname -r)

В директории появятся несколько файлов и новая директория вида - linux-2.6.27 / обратите внимание, что первой командой make должна быть команда запуска компиляции, иначе будете долго разбираться с ошибками...

cd linux-2.6.*/

Теперь зайдите в новую директори, там  необходимо отредоктировать несколько файлов следующим образом:

File: debian/scripts/misc/getabis

Найдите строку:
getall i386 generic server

Измените ее на:
getall i386 generic server core2

File: debian/rules.d/i386.mk

Найдите строку:

flavours        = generic server

Измените ее на:

flavours        = generic server core2

2 файла: debian/control.stub and debian/control

В обоих файлах нужно скопировать по 3 секции начинающихся со строк:

     Package: linux-image-2.6.27-7-generic
     Package: linux-headers-2.6.27-7-generic
     Package: linux-image-debug-2.6.27-7-generic

Каждая секция начинается строкой: Package и до следующей строки начинающейся с: Package.

В скопированных секциях замените в первой строке
 каждой секции, начинающейся с : Package,
слово: generic  на: core2

Теперь нужно скопировать 2 файла:

cd debian/abi/2.6.*/i386
cp generic core2
cp generic.modules core2.modules
cd ../../../../../

Приготовления закончены... сохраним все наши изменения в прок.

tar jcf linux.tar.bz2 linux-2.6.*
cp -R linux-2.6.* linux
cd linux
cp /boot/config-$(uname -r) .config

Обратите внимание, что мы создали копию дириктории с исходниками и настройку будем делать в ней. я не буду подробно останавливаться на настройке ядра, однако минимальные изменения таковы...
меняем процессор на - core2, убераем звезду с пункта - generic x86 support, maximum number of cpu - меняем на 2... или 4... (уж сколько есть... :-) ), устанавливаем 64 Gb - high memory support...    у вас включится поддержка рае и 64 битная поддержка памяти... остальные настройки по вашему выбору... итак...
 
make menuconfig
cp .config ../config.core2
cd ../linux-2.6.*
cp ../config.core2 debian/config/i386/
cp /boot/grub/menu.lst ../
Все приготовления закончены и можно приступать к компиляции

следующую строку целиком набираем, а лучше копируем в терминал

CONCURRENCY_LEVEL=2 NOEXTRAS=1 skipabi=true skipmodule=true fakeroot debian/rules binary-core2

Теперь "откиньтесь на спинку стула..." и  можно расслабиться и выпить чашечку кофе...

После того как закончиться компиляция в родительском коталоге  появятся несколько .deb пакетов. Устанавливаем их одной командой:

cd ..
dpkg -i *

Теперь осталось проверить загрузчик... хотя я предпочитаю не доверять автонастройке и редактировать menu.lst ручками...
Если вам не понравится работа автонастройки граба, вспомните, что мы сделали копию файла menu.lst .
Удаляем каталоги с исходниками... они весят больше гигабайта... а чистый каталог лежит в linux.tar.bz2 .

Теперь все! перегружаемся и наслождаемся результатами...

P.S. Для повторной компиляции распакуем tar jxf linux.tar.bz2
 , копируем каталог, и т.д...

пример файла /proc/meminfo:
MemTotal:      4132424 kB
MemFree:       2826968 kB
Buffers:        168536 kB
Cached:         528672 kB
SwapCached:          0 kB
Active:         598088 kB
Inactive:       478248 kB
HighTotal:     3264744 kB
HighFree:      2345832 kB
LowTotal:       867680 kB
LowFree:        481136 kB
SwapTotal:     1076312 kB
SwapFree:      1076312 kB


Оффлайн kaaquantum

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
После недавной преустановки системы и перехода с 64 на 32 бита (регресс), на точно такой же конфигурации, заметил что вместо трех стало четыре гига оперативы.  И вот, кажется , спасоб найден, спасибо! :) Попробую на выходных реализовать. Только один вопрос: в данной последовтаельности действий я не заметил (мб по невнимательности) где и как мы повышаем лимит адресуемой памяти до 4 гиг?

Оффлайн dizassm

  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
огромная просьба, если не сложно описать также что нужно прописать для процессора Core Quad  :)
Intel DP35DPM - Core 2 Quad 6600 - RAM 4 Gb - nVidia 8800 GTX 768 - Sound Sigmatel onBoard - Ubuntu 10.04 x64
Acer 5534  - Ubuntu 10.04 x64

Оффлайн ziablik

  • Активист
  • *
  • Сообщений: 354
    • Просмотр профиля
1) для чего перименовывать файлы в исходниках? на что это влияет?
2) остальные настройки по вашему выбору... итак... - это вообще за гранью.
3) и какого размера получилось ядро?
4) В чем ценность данного How-To, при полном отсутсвии пояснений к действиям и наличии гораздо более подробных и правильных в огромных количестван находящихся гуглем?
5) несколько ссылок для тех кто хочет правильно собрать ядро.
Сборка нового ядра для Ubuntu Linux http://tmbu.info/compile-new-kernel-for-ubuntu-linux/
Ставим ядро 2.6, или Ядерная физика для домохозяйки. Версия 1.1 http://www.linuxcenter.ru/lib/articles/system/kernel26_install.phtml
Параметры_ядра_Linux http://wiki.kryukov.biz/wiki/Параметры_ядра_Linux
6) Не ожидайте какого-либо прироста в производительности от самосборного ядра на более менее современном железе, поиск по форуму в помощь, обсуждалось не раз.
7) для того что бы увидеть более 3,5 гигов оперативы следует выбирать 64 битный дистрибутив ( эти два пункта для новичков)
8 ) установка готового ядра *-server через синаптик так же позволит использовать 4 и более гб памяти в 32битной системе, но может лишить вас поддержки некоторого оборудования, модули которого не включены в серверный вариант ядра.
« Последнее редактирование: 18 Март 2009, 04:01:20 от ziablik »

Оффлайн halogen

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Мдя.....   Хотел скомпилить ядро. Никогда этим не занимался. Дистр 64-бит. Всё , вроде, работает норм.   Прочитал этот пост и задумался а есть ли практический смысл для меня в компиляции ?  Знакомые линускоиды со стажем говорили, что в -generic по умолчанию откл.  sse2 sse3  и ещё что-то.Проц у меня Core2Duo.   Памяти 2Г , но планирую добавить позже ещё.
С удовольствием выслушаю пару мнений по этому вопросу.
errare humanum est

Оффлайн ziablik

  • Активист
  • *
  • Сообщений: 354
    • Просмотр профиля
знакомые линуксоиды со стажем судя по всему никогда не видели генерик ядра Ubuntu), все в нем включено. поищи по форум, уже не раз обсуждалось, толку от самосборного ядра на любом более менее современном железе - ноль.

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
Цитировать
maximum number of cpu - меняем на 2... или 4... (уж сколько есть... :-) )
Cколько есть с учётом Hyper Threading, или физических CPU?

Цитировать
а есть ли практический смысл для меня в компиляции ?
Каждому своё. Зашла в конфиг, удалила поддержку ноутов и процессоров, удалила лишние драйвера (ATI, OSS), добавила модулем родной геймпад Logitech RumblePad2, удалила debug с файловых систем, добавила ext4... Цацкаюсь ))
А вообще, можно непробиваемый сервер получить, если вкомпилить всё необходимое в ядро и выключить поддержку модулей.

Цитировать
Ставим ядро 2.6, или Ядерная физика для домохозяйки. Версия 1.1
+1
Добавлю от себя статью Алексея Федорчука "Собери свой Ubuntu" http://citkit.ru/articles/222/
« Последнее редактирование: 21 Март 2009, 16:55:17 от Alie Alexandross »
Подпись автора jillsmitt истинна...

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6848
    • Просмотр профиля
Re: Компиляция ядра 8.10 для dual core - 4 гб памяти.
« Ответ #7 : 30 Апрель 2009, 11:01:52 »
Цитировать
maximum number of cpu - меняем на 2... или 4... (уж сколько есть... :-) )
Cколько есть с учётом Hyper Threading, или физических CPU?
думаю с учётом HT, но core2duo не поддерживают эту технологию.

Оффлайн Nebulosa

  • Активист
  • *
  • Сообщений: 397
    • Просмотр профиля
Re: Компиляция ядра 8.10 для dual core - 4 гб памяти.
« Ответ #8 : 30 Апрель 2009, 17:05:16 »
Вот вам новая ссылочка на ядерную физику для домохозяек  ;)  Версия 2.0, хотя все равно уже успела устареть.
http://l4u.jinr.ru/docs/add04/kernel-2.6-install-2.0.html#34

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

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6848
    • Просмотр профиля
Re: Компиляция ядра 8.10 для dual core - 4 гб памяти.
« Ответ #9 : 30 Апрель 2009, 17:18:37 »
да эту статью уже приводили не раз...
у мну вот трабла млин https://forum.ubuntu.ru/index.php?topic=15968.msg415017#msg415017

 

Страница сгенерирована за 0.101 секунд. Запросов: 25.