Собираем ядро 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