Jestem zainteresowany skompilowaniem nowego jądra pod Ubuntu 12.04 x86 64 bit.
Znalazłem tę stronę wiki, która jest w zasadzie lustrem dla tego bloga i jest wiele kroków ( git itp.), Które wydają mi się bezużyteczne.
We wcześniejszych wersjach / dystrybucjach tworzyłem .config
plik i modyfikowałem go, Makefile
jeśli to konieczne, a następnie po prostu uruchamiałem make
i gotowe.
Czy istnieje prosty sposób na zrobienie tego w Ubuntu?
Odpowiedzi:
1. Użyj,
apt-get source
aby pobrać wersję jądra Ubuntudaje folder, który zawiera na przykład:
Pogrubiony plik różnic zawiera wszystkie dostosowania Ubuntu / Debian.
2. Aby zbudować własne jądro
.config
, użyj „staromodnej”make-kpkg
metody DebianOto alternatywny, staromodny sposób opisany na wiki:
Jeśli kompilujesz jądro po raz pierwszy:
Następnie przejdź
cd
do katalogu źródłowego (tutajlinux-3.2.0
) i albo uruchom,make oldconfig
aby utworzyć.config
plik z konfiguracją działającego jądra, lub skopiuj trzecią część.config
do tego katalogu.W zależności od tego, czy chcesz konfigurację tekstową czy graficzną, zainstaluj:
(Tekst)
(Graficzny)
A następnie uruchom:
(Tekst)
(Graficzny)
Po zakończeniu uruchom po prostu:
gdzie
N
jest liczba zadań do uruchomienia równoległego (zwykle liczba posiadanych procesorów) imy-very-own-kernel
jest to ciąg niestandardowy identyfikujący tę kompilację.Po zakończeniu obraz jądra i pliki nagłówkowe będą gotowe jako debs w katalogu nadrzędnym; możesz je zainstalować przy pomocy
sudo dpkg -i
, który zajmie się także dodawaniem wpisów GRUB itp.źródło
linux-3.2.0
katalogu i uruchomićpatch -p1 <../patch.diff
?apt-get source ...
już to dla ciebie zrobiłem!fakeroot debian/rules editconfigs
,fakeroot debian/rules clean
,fakeroot debian/rules binary
Jest prawidłowy, bezproblemowy sposób.Oto kroki. Procedura ta jest oparta na nixCraft „s Jak: kompilacji Linux Kernel 2.6 --but znacznie zmodernizowany.
Pobierz i rozpakuj kod źródłowy jądra, które chcesz zbudować.
Można uzyskać upstream kod źródłowy jądra na kernel.org . Zostanie tutaj użyta wersja 3.16.1 (najnowsze stabilne jądro w tym piśmie). Może być konieczne zmodyfikowanie tych poleceń, jeśli używasz innej wersji.
Kod źródłowy jądra jest obecnie dostępny w. smoła . Archiwa xz , więc kliknij link „tar.xz” według dowolnej wersji:
Po
cd
wejściu do katalogu, w którym pobrałeś archiwum, możesz je rozpakować za pomocątar
:Zainstaluj niezbędne narzędzia do budowania i wykonaj konfigurację jądra.
Aby uzyskać zestaw narzędzi Ubuntu (
gcc
,make
itd.), Zainstaluj niezbędny do kompilacji metapakiet:Dwa względnie przyjazne dla użytkownika sposoby konfiguracji tego, co wchodzi do jądra, są dostarczane przez
make
celexconfig
imenuconfig
.xconfig
uruchamia narzędzie do konfiguracji graficznej, podczas gdymenuconfig
jest oparte na tekście (tzn. jego interfejs pojawia się w pełni w twoim terminalu). Każde wymaga dodatkowego oprogramowania, które nie jest dostarczane przez build-essential .Aby skonfigurować graficznie , zainstaluj libqt4-dev i pkg-config i uruchom
make xconfig
:Aby skonfigurować w terminalu , zainstaluj
libncurses5-dev
(dzięki Hannu za te informacje) i uruchommake menuconfig
:Zbuduj skonfigurowane jądro.
Najpierw uruchom to, aby skompilować jądro i utworzyć
vmlinuz
:vmlinuz
to „jądro”. W szczególności jest to obraz jądra, który zostanie zdekompresowany i załadowany do pamięci przez GRUB lub inny używany program ładujący .Następnie zbuduj moduły jądra do załadowania :
Zainstaluj nowo zbudowane jądro.
Zakładając, że te
make
komendy zostały wykonane pomyślnie, czas zainstalować nowe jądro. Najpierw zainstaluj moduły:Następnie zainstaluj samo jądro :
To wstawia
vmlinuz-3.16.1
(kopięvmlinuz
),config-3.16.1
(plik tekstowy przechowujący parametry konfiguracyjne jądra) iSystem.map-3.16.1
( tablica wyszukiwania symboli jądra )/boot
. Aby uzyskać więcej informacji, zobacz ten post comp.os.linux.misc autorstwa Hadrona iman installkernel
.Ostateczna konfiguracja, aby jądro można było uruchomić i uruchomić system:
Ta sekcja jest częściowo oparta na informacjach w Kernel / Compile .
Z jądrem, gdzie jest teraz, potrzebuje:
wpis w konfiguracji modułu ładującego , abyś mógł z niego wybrać i uruchomić system.
początkowy plików RAM , środowisko, z którego ładuje sterowniki jądra i wierzchowce
/
plików .(Jeśli instalujesz stare jądro lub skonfigurowałeś je tak, aby używało devfs zamiast nowszego udev , możesz potrzebować lub chcieć zamiast tego ustawić początkowy ramdysk . Jeśli wiesz, że tego potrzebujesz, zobacz
man initrd
.)Wygeneruj initramfs za pomocą
mkinitramfs
:Podczas aktualizacji konfiguracji modułu ładującego GRUB2 - który jest domyślny w Ubuntu od 9.10 - powinien automatycznie wykryć nowe jądro i dodać opcję uruchamiania z niego.
Wypróbuj swoje jądro.
Teraz możesz zrestartować komputer, aby przetestować swoje nowe jądro. Może być konieczne przytrzymanie Shiftlub naciśnięcie przycisku Escpodczas uruchamiania, aby wyświetlić menu rozruchu GRUB, w którym można wybrać różne zainstalowane jądra.
Aby ustawić jądro (lub inne) jako domyślne, zobacz Jak zmienić kolejność uruchamiania GRUB?
źródło
make menuconfig
wymagaapt get install libncurses5-dev
Szybkie instrukcje budowania jądra Ubuntu (w przeciwieństwie do wanilii) można znaleźć tutaj: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel .
Nie skopiuję całej wiki, ale wymienię minimalne kroki, aby skompilować wersję jądra Ubuntu, którą właśnie zainstalowałeś. (Aby uzyskać najnowszą wersję, należy sklonować repozytorium git jądra nadchodzącej wersji Ubuntu.) Testowane na Ubuntu 16.04.
źródło