Я решил, что пора бы уже переходить со стандартного 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