Собираем ядро 2.6.34 с патчем bfs в Debian Squeeze
Недавно спалил материнскую плату и процессор (да же не знаю дело в моих руках или оно само). Купил новые материнскую плату процессор, и как водится, с моим старым за оптимизированным ядром многое не работало. Скачал ядро 2.6.34, но по инструкциям оно просто не собиралось — выскакивало куча ошибок, вооружившись google я начал искать по иностранным форумам, ну и нашел (собирать лучше из-под официального универсального ядра из репазитария)
- Переходим в нужную директорию
cd /usr/src/
- Качаем исходники
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
- Распаковываем их
tar xvjf linux-2.6.34.tar.bz2
- Переходим в папку с исходниками
cd linux-2.6.34
- Качаем патч bfs к ядру с сайта разработчика
wget http://ck.kolivas.org/patches/bfs/2.6.34-sched-bfs-318.patch
- Патчим ядро
patch -p1 < 2.6.34-sched-bfs-318.patch
- Устанавливаем нужные пакеты для сборки ядра
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential
- Теперь генерируем новую конфигурацию ядра на основе существующей
cp /boot/config-
uname -r./.config
- Конфигурируем ядро
make menuconfig
- Обязательно изменяем настройки (остальное по вкусу)
Processor type and features -> Timer frequency устанавливаем в 1000Hz Processor type and features -> Tickless System (Dynamic Ticks) отключаем Processor type and features -> Preemption Model -> Preemptible kernel (Low latency desktop)
- Затем
make-kpkg clean
И тут маленький изворот отличающий от других инструкций gedit ./Documentation/lguest/Makefile и приводим к виду:# This creates the demonstration utility «lguest» which runs a Linux guest. CFLAGS:=-m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE all: clean: rm -f lguest
- Ну и собираем ядро и заголовочные файлы
fakeroot make-kpkg —initrd —append-to-version=-bfs_my kernel_image kernel_headers
- На этапе формирования пакетов оно ругнется и вывалится с ошибкой на имя сборки, тогда делаем:
cp include/generated/utsrelease.h include/linux/
и заново запускаемfakeroot make-kpkg —initrd —append-to-version=-bfs_my kernel_image kernel_headers
- Если все прошло успешно, то в
/usr/src/
появится 2 новых пакета — установите ихdpkg -i linux-*.deb
Эта инструкция составлена по кучи других и что я брал и где я уже не помню, т.к. пишу уже с собранного ядра по истории из терминала. Удачной вам ядерной физики 🙂
Written on June 29, 2010