Dobre praktyki programistyczne

Jak skompilować kernel 2.6.39.3 w Slackware 13.1

13.07.2011

Zaledwie kilka dni temu została wydanana nowa, stabilna wersja kernela Linuxa. W Slackware można go użyć bez dodatkowych patchy. W tym poście opisuję jak skompilować i zainstalować jądro w prosty sposób. Pobierz źródła kernela z kernel.org lub bezpośrednio linux-2.6.39.3.tar.bz2.
Przenieś paczkę do /usr/src/ i rozpakuj ją.

  1. mv linux-2.6.39.3.tar.bz2 /usr/src/
  2. cd /usr/src/
  3. tar xvfj linux-2.6.39.3.tar.bz2

Dla wygody możesz ustawić link do nowych źródeł.
  1. rm -rf linux
  2. ln -s /usr/src/linux-2.6.39.3 /usr/src/linux

Przejdź do folderu ze źródłami i skopiuj bieżącą konfigurajcę.
  1. cd /usr/src/linux
  2. zcat /proc/config.gz > .config

Teraz możesz uaktualnić starą konfigurację odpowiadając na pytania o nowe ustawienia:

albo wyłącz wszystkie nowe funkcje.

Jeśli chcesz, możesz pozmieniać teraz dowolne ustawienia.
  1. make menuconfig

Utwórz wszystko, co potrzebne. Jeśli masz wielordzeniowy procesor, użyj opcji -j. W przykładzie procesor czterordeniowy.
Make   
  1. make -j5 all

Zainstaluj moduły
  1. make modules_install

i jądro w katalogu /boot
  1. make install

Skopiuj bierzącą listę modułów i podlinkuj nowy plik.
  1. cd /etc/rc.d
  2. rm rc.modules
  3. cp rc.modules-2.6.37.6 rc.modules-2.6.39.6
  4. ln -s /etc/rc.d/rc.modules-2.6.39.6 /etc/rc.d/rc.modules

Dobrym pomysłem jest pozostawienie poprzedniego kernela w opcjach bootowania, na wypadek gdyby nowy nie zadziałał.
Zmień nazwy plików nowego kernela dodając im numer.
  1. mv /boot/vmlinuz /boot/vmlinuz-2.6.39.3
  2. ln -s /boot/vmlinuz-2.6.39.3 /boot/vmlinuz
  3. mv /boot/System.map /boot/System.map-2.6.39.3
  4. ln -s /boot/System.map-2.6.39.3 /boot/System.map
  5. cp /usr/src/linux/.config /boot/config-2.6.39.3
  6. ln -s /boot/config-2.6.39.3 /boot/config

Teraz otwórz plik konfiguracyjny lilo /etc/lilo.conf. Pamiętaj, że /boot/vmlinuz wskazuje teraz na nowe jądro, więc należy sprawdzić, czy image = z poprzedniego wpisu wskazuje np. /boot/vmlinuz-general-2.6.38.7 a nie /boot/vmlinuz.
  1. #nowy kernel
  2. image = /boot/vmlinuz-2.6.39.3
  3. root = /dev/sda5
  4. label = Lx-2.6.39.3
  5. read-only
  6. #stary kernel
  7. image = /boot/vmlinuz-general-2.6.38.7
  8. root = /dev/root
  9. label = Lx-2.6.38.7
  10. read-only

Na koniec użyj polecenia lilo, żeby uaktualnić menu bootowania.

Po restarcie możesz się cieszyć najnowszym kernelem :). Mam nadzieję, że ten sposób zadziała także u Ciebie.

Leave a Response