{ }
menu zespół linki Logowanie
Stabilny hosting
BSDGuru zawdzięcza
firmie Datanet.pl
Hosting BSDGuru.org - DataNet.pl

Budowanie i instalowanie indywidualnego jądra


Omówmy pokrótce katalog kompilacji jądra. Wszystkie wspomniane za chwilę katalogi będą relatywnymi do /usr/src/sys, do którego można także dojść przez /sys. Można tam znaleźć wiele różnych katalogów, jednak dla nas najważniejszym będzie arch/conf. W nim właśnie dokonasz edycji pliku konfiguracyjnego jądra oraz je skompilujesz, będą to kolejne etapy w całym procesie budowy. arch przedstawia architekturę, do wyboru: i386, alpha, lub pc98 (alternatywna gałąź sprzętu PC, popularna w Japonii). Wszystko, co znajduje się w katalogu danej architektury dotyczy ściśle tylko jej. Reszta źródeł jest dla wszystkich architektur taka sama. Zwróć uwagę na logiczną strukturę katalogów z każdym wspieranym urządzeniem, systemem plików, opcjami dodatkowymi - wszystko posiada swój własny podkatalog.

Jeśli nie masz /usr/src/sys, oznacza to, że nie posiadasz zainstalowanego źródła jądra. Najprostszym sposobem na zainstalowanie jest uruchomienie jako root /stand/sysinstall'a, wybranie [Configure], następnie [Distributions], później [src], a na końcu [sys]. Jeśli jednak jesteś osobą mającą awersję do konfiguratorów możesz zainstalować źródła jądra ręcznie. W poniższym przykładzie instalacja z "oficjalnego" CDROM'u FreeBSD.

    # mount /cdrom
    # mkdir -p /usr/src/sys
    # ln -s /usr/src/sys /sys
    # cat /cdrom/sys/ssys.[a-d]* | tar -xzvf -

Następnie wejdź do katalogu arch/conf i skopiuj domyślny plik konfiguracyjny o nazwie GENERIC tworząc plik z nazwą jaką chcesz nadać swojemu jądru. Na przykład:

    # cd /usr/src/sys/i386/conf
    # cp GENERIC MOJEJAJO

Tradycyjnie nazwa jądra pisana jest wielkimi literami. Dodatkowo dobrym pomysłem jest, by nazywać jądra tak jak komputery, co pomaga rozróżnić jądra, gdy mamy wiele komputerów z różnym sprzętem.

Wskazówka: Nie jest najlepszym pomysłem trzymanie pliku konfiguracyjnego jądra w katalogu /usr/src. Jeśli podaczas kompilacji mamy kłopot, czasem dobrze jest wykasować cały /usr/src i rozpocząć od początku. Wtedy zwykle, pięć sekund po usunięciu katalogu, przypomina nam się, że usunęliśmy także plik konfiguracyjny jądra.

Możesz chcieć trzymać plik konfiguracyjny jądra gdziekolwiek, następnie utworzyć symboliczne dowiązanie do pliku w katalogu i386.

Przykładowo:

    # cd /usr/src/sys/i386/conf
    # mkdir /root/kernels
    # cp GENERIC /root/kernels/MOJEJAJO
    # ln -s /root/kernels/MOJEJAJO

Pamiętaj, że musisz wszystkie przedstawione w tym rozdziale komendy wykonywać jako root. W przeciwnym wypadku system nie pozwoli Ci wykonać pewnych operacji.

Przyszedł czas na edycję pliku konfiguracyjnego jądra. W przykładzie nazywa się on MOJEJAJO. Jeśli dopiero zainstalowałeś system, jednym z dostępnych dla Ciebie edytorów może być vi. Mimo, że jest dobrze udokumentowany, opisany w wielu książkach, dla początkujących wydaje się on nieco zbyt skomplikowany. FreeBSD zaopatrzony jest w drugi edytor, znacznie prostszy w obsłudze, o nazwie 'ee'. Jeśli dopiero zaczynasz, ee powinien być Twoim wyborem. Nie krępuj się i zmień wartości na górze pliku, szczególnie te, odróżniające Twój własny plik od GENERIC.

Jeśli już budowałeś jądro w SunOS lub innych systemach BSD, duża część pliku konfiguracyjnego powinna być Ci znajoma. Jeśli natomiast lepiej zaznajomiony jesteś z systemami typu DOS, plik konfiguracyjny może wydać Ci się nieco obcy. Przeczytaj w tym wypadku uważnie każdą opcję oraz komentarz.

Pamiętaj: Zawsze się upewnij, zanim rozpoczniesz jakiekolwiek działania aktualizujące, że masz /usr/src/UPDATING, w przypadku gdy synchronizujesz swoje drzewo źródeł z ostatnimi źródłami projektu FreeBSD. W pliku tym wypisane są wszelkie niezbędne zagadnienia związane z aktualizowaniem FreeBSD. /usr/src/UPDATING zawsze pasuje do źródła Twojej wersji FreeBSD, jest przez to bardziej odpowiednim źródłem informacji niż handbook.

Musisz teraz skompilować kod źródłowy jądra. Istnieją dwie procedury którymi można tego dokonać. Wybór zależeć będzie od tego w jakim celu kompilujesz jądro oraz od wersji systemu, której używasz.

  • Jeśli zainstalowałeś tylko źródła jądra, użyj procedury 1.

  • Jeśli używasz wersji niższej niż 4.0 i nie aktualizujesz do wersji 4.0 lub wyższej procedurą make world, użyj procedury 1.
  • Jeśli budujesz nowe jądro, bez aktualizowania źródeł (na przykład dodałeś do jądra dodatkowe opcje, np. IPFIREWALL), możesz użyć obu procedur.
  • Jeśli przebudowujesz jądro w procesie make world, użyj procedury 2.

Procedura 1. Budowanie jądra w tradycyjny sposób.

  1. Uruchom config(8), aby wygenerować kod źródłowy jądra. # /usr/sbin/config MOJEJAJO
  2. Przenieś się do katalogu w którym dokonuje się budowy. # cd ../../compile/MOJEJAJO
  3. Skompiluj jądro. # make depend # make
  4. Zainstaluj nowe jądro. # make install

Procedura 2. Budowanie jądra w nowoczesny sposób.

  1. Wejdź do katalogu /usr/src. # cd /usr/src
  2. Skompiluj jądro. # make buildkernel KERNCONF=MOJEJAJO
  3. Zainstaluj nowe jądro. # make installkernel KERNCONF=MOJEJAJO

Uwaga: W FreeBSD 4.2 i starszych, musisz zamienić KERNCONF= na KERNEL=. FreeBSD 4.2-STABLE, który był pobrany po 2 lutym 2001, nie poznaje KERNCONF=.

Jeśli nie zaktualizowałeś portów w żaden sposób, tj. CVSup'em, CTM'em, ani anoncvs'em, powinieneś użyć komend w następującej sekwencji: config, make depend, make, make install.

Nowe jądro zostanie skopiowane na /root, a dotychczasowe /root zostanie przeniesione na /root.old. Teraz należy ponownie uruchomić komputer. W razie jakby coś poszło źle, na końcu tego rozdziału przedstawionych zostało kilka awaryjnych rozwiązań. Przeczytaj tą sekcję, aby dowiedzieć się co zrobić w razie, gdy system nie chce się ponownie uruchomić.

Pamiętaj: Po dodaniu pewnych nowych urządzeń (jak na przykład karta muzyczna) musisz utworzyć odpowiednie pliki w /dev. Więcej informacji odnajdziesz w podrozdziale zatytułowanym "Tworzenie plików urządzeń" (w tym rozdziale).

Id: Aleksander Fafuła  2005-03-30 

mlodszy, nie., 08/06/2008 - 09:15