UBUNTU.PL

Wróć   UBUNTU.PL > Ważne > FAQs & HOWTOs > Instalacja i konfiguracja systemu

Odpowiedz
 
Narzędzia wątku Przeszukaj ten temat Wygląd
stare 09-07-2010, 02:31   #1
adrikux
 
Avatar adrikux
 
Płeć: Mezczyzna
Postów: 696
System: Inny OS
Architektura: x86
Środowisko: XFCE
[HOW-TO] Kernel, konfiguracja+kompilacja+instalacja

ubuntu.pl prezentuje:
Download - tego nie znajdziesz w repozytoriach.
Instalacja jądra Linux

Wstęp

Jak sam tytuł wskazuje, artykuł ten dotyczy instalacji jądra Linux i przeznaczony jest dla osób pragnących samodzielnie wykonać tą czynność. Poradnik dedykowany jest zarówno dla zaawansowanych użytkowników czytających go ze względu na problemy napotkane w przeszłości podczas samodzielnej kompilacji jak i dla użytkowników początkujących mających potrzebę wykonania tej operacji lub pragnących poszerzyć zakres własnej wiedzy. Zawiera on wymienione w odpowiedniej kolejności czynności, które należy wykonać w celu pomyślnego zakończenia omawianego procesu oraz opis poszczególnych zagadnień i ról pełnionych przez dane polecenie. Artykuł został napisany w sposób łączący teorię wraz z wypunktowaniem czynności w jedność. Mam nadzieję, że pisząc go w ten sposób sprawię, że proces kompilacji wśród wielu użytkowników nie będzie polegał na bezmyślnym kopiowaniu poleceń, lecz stanie się czynnością zrozumiałą zarówno w jej początkowym stadium polegającym na dostosowaniu jądra do sprzętu jak i w końcowym, czyli tworzeniu pakietów instalacyjnych. Pisząc o dostosowaniu jądra do sprzętu, na myśli mam wybór odpowiednich usług przez nie oferowanych, część z nich jest niezbędna do prawidłowego funkcjonowania systemu natomiast inne mogą być zbędne dla naszej konfiguracji sprzętowej. Jądro systemu udostępnione jest w dwóch formach, binarnej oraz źródłowej. Wybór formatu zależy tylko od tego czy spełnia on nasze kryteria. Nie ważne od wybranego przez nas formatu paczki, otrzymamy ten sam kernel (w niektórych binarnych postaciach częściowo zmodyfikowany przez autora pakietu), różniący się jedynie sposobem udostępniania. Pakiety binarne zawierają jądro skompilowane i przeznaczone do bezpośredniej instalacji. W przypadku Ubuntu, autorem kompilacji jest Canonical. Instalując jądro z użyciem pakietu binarnego, nie mamy możliwości dostosowania go do swojego sprzętu, czyli deaktywacji zbędnych modułów i zastąpienia ich wybranymi przez nas, ponieważ czynność ta została wykonana przez autora kompilacji. Nie oznacza to jednak, że poszczególnych modułów nie możemy wyłączyć po zainstalowaniu jądra. Dotyczy to jednak pojedynczych elementów i uniemożliwia pełne dostosowanie do sprzętu. Korzystając z binarek, otrzymujemy wygodny i bezproblemowy sposób instalacji nowego jądra, lecz bez możliwości selekcji modułów. Pakiety źródłowe stanowią natomiast przeciwieństwo binarnych. Pochodzą one bezpośrednio od developerów jądra w postaci źródłowej, czyli nieskompilowanej zapewniając w ten sposób możliwość dostosowania go do naszego sprzętu oraz pełnej kontroli nad używanymi modułami. W artykule będę stosował słowo Linux jako miano jądra systemu. Przyczyną tego nie jest jedynie oszczędność znaków (Linux jest krótsze niż jądro systemu Linux), lecz fakt, że Linux systemem operacyjnym nie jest, lecz stanowi jedynie jądro systemowe. Ten artykuł poświęcony jest jednak innemu tematowi, tak więc zainteresowanych odsyłam do wikipedii, gdzie wyjaśniona jest różnica między pojęciami Linux, a GNU/Linux. Nie ponoszę odpowiedzialności za ewentualne szkody powstałe w wyniku przeprowadzenia omawianego procesu. Czynności tu przedstawione wykonane zostały na kilku PC o odmiennej konfiguracji sprzętowej, tak więc w przypadku niepowodzenia użytkownik może mieć pretensję sam do siebie, ponieważ czynności są przetestowane oraz omówione krok po kroku. Poniżej zamieszczam linki do pobrania jądra.

Źródła:
Binaria:

Teoria

Jak we wstępie wspomniałem, pragnę by operacja samodzielnej kompilacji jądra była zrozumiała dla początkujących użytkowników. Stworzyłem więc sekcję poświęconą krótkiemu omówieniu zagadnień. W celu zrozumienia idei kompilacji jądra oraz czynności jej towarzyszących należy omówić czym jest jądro systemu oraz jaką pełni rolę. Stanowi ono program odpowiadający za komunikację między systemem operacyjnym, a sprzętem komputerowym. Do komunikacji niezbędne są sterowniki, a jądro stanowi ich bazę. Można więc stwierdzić, że jądro stanowi najważniejszy element systemu. Za komunikację nie odpowiada jednak jedynie jądro. To także zadanie graficznego systemu okienkowego, popularnie zwanego serwerem X (Xorg) zajmującego się obsługą urządzeń wejścia, między innymi klawiatury i myszy. Jak wcześniej wspomniałem jądro stanowi bazę sterowników, lecz coraz częściej sterowniki umieszczane są w postaci modułów. Oznacza to, że nie znajdują się bezpośrednio w jądrze i wymagają osobnej kompilacji. Stanowi to zaletę, ponieważ dany moduł możemy załadować jedynie w zaistniałej potrzebie, a następnie usunąć z uruchomionego jądra przykładowo za pomocą rmmod-a. Przykładem takiego modułu może być otwarty sterownik "nouveau" do kart nVidii. Niektóre sterowniki, przykłado od HDD potrzebne są przed załadowaniem ich przez system co uniemożliwia modularną budowę, lecz zmusza do umieszczenia ich bezpośrednio w kodzie jądra. Linux z użyciem pakietu źródłowego może zostać zainstalowany na dwa sposoby. Pierwszym z nich jest skompilowanie jądra wraz z modułami oraz wygenerowanie obrazu initrd używanego przez program rozruchowy do uruchomienia systemu. Drugi natomiast polega na stworzeniu pakietów instalacyjnych, które będą następnie zainstalowane w systemie. Osobiście preferuję sposób drugi i zamieszczę go w tym poradniku. W przypadku rezygnacji z aktualnego jądra, można je bezproblemowo usunąć poprzez menedżera pakietów. Nie oznacza to jednak, że w przypadku sposobu pierwszego usunięcie katalogu z jądrem z folderu /boot jest problemem. Poprosu preferuję sposób drugi.

Przygotowanie do kompilacji

Przed przystąpieniem do samodzielnej instalacji jądra, należy upewnić się o obecności odpowiednich w systemie pakietów. Do przeprowadzenia kompilacji potrzebujemy kompilatora C g++, make oraz pakiet initramfs-tools generujący obraz initrd.
Kod:
apt-get update && apt-get install gcc build-essential initramfs-tools
W przypadku tworzenia pakietów z jądrem, tak jak przedstawia artykuł niezbędne jest instalacja pakietów wymienionych powyżej oraz dodatkowych.
Kod:
apt-get update && apt-get install kernel-package libncurses5-dev fakeroot bzip2 cramfsprogs
Konfiguracja

Ta faza jest kluczową i ma wpływ na jakość działania systemu pracującego na nowo skompilowanym Linuksie. Dostosujemy w niej go do sprzętu poprzez włączenie/wyłączenie poszczególnych modułów. Czynność tą możemy wykonać na kilka sposobów różniących się interfejsem, musimy jednak pobrane z kernel.org archiwum rozpakować, a zawartość przenieść do /usr/src.
Kod:
tar -xjvf archiwum.tar.bz2
rm archiwum.tar.bz2
sudo -s
mv zawartość_archiwum /usr/src
cd /usr/src/zawartość_archiwum
Przed uruchomieniem narzędzia konfiguracyjnego, zaleca się użycie pliku konfiguracyjnego starego jądra co zagwarantuje nam poprawne działanie nowego (make oldconfig). Zostaną użyte te same usługi co w starym jądrze. Kolejnym krokiem jest skorzystanie z usługi dostosowywującej konfigurację jądra, a konkretnie modułów do naszego sprzętu (make localmodconfig). Jego działanie polega na selekcji modułów niezbędnych dla naszego sprzętu przyspieszając tym samym proces kompilacji oraz zwiększając ilość wolnego miejsca na HDD (pozbycie się nieużywanych modułów). Warunkiem prawidłowego funkcjonowania naszeg sprzętu na nowym jądrze, jest załadowanie sterowników do każdego posiadanego przez nas urządzenia w momencie przeprowadzenia localmodconfig. Następnie uruchamiamy konfigurator, zalecanym przeze mnie jest menuconfig w którym wybieramy opcję Load at Alternate Configuration File (druga opcja od dołu), zatwierdzamy domyślną propozycję czyli .config. W tym momencie możemy wprowadzić zmiany w ustawieniach konfiguracji jądra, jeżeli nie mamy zamiaru nic zmieniać lub zmiany już wprowadziliśmy musimy je teraz zapisać wybierając ostatnią opcję (Save an Alternate Configuration File). Wymienione czynności wykonujemy poniższymi poleceniami.
Kod:
make oldconfig
make menuconfig
Plik konfiguracyny starego jądra znajduje się w katalogu /boot, tak więc opcjonalnie zamiast wydania polecenia (make oldconfig), możemy przekopiować go do źródeł nowego jądra zmieniając jego nazwę na .config,
Kod:
cp /boot/config-$(uname -r) /usr/src/linux-2.6.35-rc4/.config
menu config nie jest jedynym narzędziem konfiguracyjnym. Poniżej znajduje się krótkie omówienie wszystkich:
  • make config - Tekstowy konfigurator.
  • make menuconfig - Tekstowy konfigurator z posegregowanymi w ramki opcjami.
  • make xconfig - Graficzny zbudowany w QT konfigurator. Użytkownicy GNOME potrzebują bibliotek QT dostępnych w paczkach libqt3-mt, libqt3-mt-dev.
  • make gconfig - Graficzny zbudowany w Gtk konfigurator działający po zainstalowaniu pakietu libglade2-dev

Tworzenie pakietów instalacyjnych

Po opuszczeniu konfiguratora i zapisaniu zmian, utworzony zostanie plik konfiguracyjny, zawierający informację na temat aktywnych funkcji jądra oraz domyślnie ładowanych modułów. Na jego podstawie utworzone zostaną binarne pakiety instalacyjne.
Kod:
make-kpkg --initrd --append-to-version=-mykernel --revision=01 kernel_image kernel_headers
Zastosowane w powyższym poleceniu opcje ozaczają:
  • ??append-to-version=-mykernel - własna nazwa jądra -mykernel.
  • ??revision=01 - oznaczenie wersji.
  • ??initrd - obraz jądra używany przez program rozruchowy.
Po stworzeniu pakietów instalacyjnych, należy je zainstalować. W tym celu przechodzimy do katalogu z pakietami (/usr/src) i rozpoczynamy instalację:
Kod:
dpkg -i linux-image*.deb
dpkg -i linux-headers*.deb
W moim przypadku mimo zaznaczenia parametru --initrd odpowiadającego za generowanie obrazu initrd nie został on utworzony. W przypadku takiej sytuacji skorzystać można z polecenia:
Kod:
mkinitramfs -o /boot/initrd.img-numer_wersji-nazwa
Przykładowo:
Kod:
mkinitramfs -o /boot/initrd.img-2.6.35-rc4-mykernel
//k2cl: w przypadku 10.04 z takiego sposobu postępowania wręcz należy skorzystać... Skrypty instalacyjne paczek z samodzielnie kompilowanym kernelem są skonfigurowane w ten sposób, że nie uruchamiają mkinitramfs i nie tworzą obrazu initrd...
Po zainstalowaniu jądra, uaktualniamy plik konfiguracyjny programu rozruchowego GRUB:
Kod:
update-grub
Bibliografia

www.eioba.pl
yampress.dug.net.pl
__________________
Spalić brudne licencje, tworzyć Wolnych Programów więcej, niech GNU jedynym systemem będzie.
Inny OS = Fedora 13

Ostatnio edytowane przez k2cl ; 07-08-2010 o 14:32 Powód: Brak informacji na temat użycia starego pliku konfiguracyjnego.
adrikux jest offline   Odpowiedź z Cytatem
Odpowiedz

Narzędzia wątku Przeszukaj ten temat
Przeszukaj ten temat:

Zaawansowane Wyszukiwanie
Wygląd

Zasady Postowania
Nie możesz zakładać nowych tematów
Nie możesz pisać wiadomości
Nie możesz dodawać załączników
Nie możesz edytować swoich postów

BB Code jest Włączony
EmotikonyWłączony
[IMG] kod jest Włączony
HTML kod jest Włączony

Skocz do Forum

Podobne wątki
Temat Autor wątku Forum Odpowiedzi Ostatni Post / Autor
[SOLVED]kompilacja i konfiguracja NetBeans 6.8 TYLKO pod php-jak? maciejewski Programowanie 2 30-05-2010 11:26
Kernel kompilacja(wpisy GRUB) Maharaja18Maharaja18 Instalacja i konfiguracja Ubuntu 16 24-12-2008 13:15
Kompilacja i instalacja dazuko warka321 Software 9 16-07-2008 17:15


Czasy w strefie GMT +2. Teraz jest 19:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Spolszczenie: vBHELP.pl - Polski Support vBulletin