Strict Standards: Declaration of action_plugin_popularity::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /home/morfiszo/public_html/ba10.pl/lib/plugins/popularity/action.php on line 11

Strict Standards: Declaration of action_plugin_googleanalytics::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /home/morfiszo/public_html/ba10.pl/lib/plugins/googleanalytics/action.php on line 0

Strict Standards: Declaration of action_plugin_safefnrecode::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /home/morfiszo/public_html/ba10.pl/lib/plugins/safefnrecode/action.php on line 0

Strict Standards: Declaration of action_plugin_fontcolor::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /home/morfiszo/public_html/ba10.pl/lib/plugins/fontcolor/action.php on line 0

Warning: Cannot modify header information - headers already sent by (output started at /home/morfiszo/public_html/ba10.pl/lib/plugins/popularity/action.php:11) in /home/morfiszo/public_html/ba10.pl/inc/auth.php on line 352

Warning: Cannot modify header information - headers already sent by (output started at /home/morfiszo/public_html/ba10.pl/lib/plugins/popularity/action.php:11) in /home/morfiszo/public_html/ba10.pl/inc/actions.php on line 180
kernel [ba10 wiki]
 

====== Kompilacja Kernela ====== Export page to Open Document format Kompilacja kernala wersji 2.6
1.Ściąganięcie z serwera http://www.kernel.org/pub/linux/kernel/v2.6/ źródeł stabilnego jądra.
2.Rozpakowanie ściagnietego kernela w /usr/src poprzez tar xvzf linux-2.6.3X lub mc.
2a.Jeśli nakładamy jakiś patch umożliwający dodatkowe funkcje to ściagamy go do katalogu /usr/src :

wget http://grsecurity.net/test/grsecurity-2.2.1-2.6.37.3-201103122250.patch


Następnie kopiujemy patch do katalogu ze źródłami :

cp grsecurity-2.2.1-2.6.37.3-201103122250.patch linux-2.6.37.3


Wchodzimy do katalogu ze źródłami :

cd linux-2.6.37.3

i patchujemy :

patch -p1 < grsecurity-2.2.1-2.6.37.3-201103122250.patch

*
Wersje patcha i kernela muszą być w tej samej wersji np.
kernle linux-2.6.37.3

patch   grsecurity-2.2.1-2.6.37.3-201103122250.patch

czyli patch musi być odpowiedni dla odpowiedniej wersji kernela.
*
3.Instalujemy potrzebne pakiety do kompilacji jądra.

aptitude install gcc build-essential libncurses5-dev kernel-package
aptitude install fakeroot wget bzip2 initramfs-tools cramfsprogs

4.Na kolejnych terminalach wyświetlić sobie wyniki poleceń :

lsmod
lspci -k -vvv | egrep -i 'driver|modules'
cat /proc/info
cat /etc/fstab

Wynik polecenia lspci -n wklejamy na stronie http://kmuto.jp/debian/hcl/ i zapisujemy sobie np. w pliku txt jego wynik.
*
Można wykonac skrypt wypisujacy nam moduły jakie są uzywane w obecnym kernelu :

#!/bin/sh
for i in `find /sys/ -name modalias -exec cat {} \;`; do /sbin/modprobe --config /dev/null --show-depends $i ; done | rev | cut -f 1 -d '/' | rev | sort -u

*
6.Kopiujemy plik konfiguracyjny bieżącego kernela do źródeł.

cp /boot/config-$(uname -r) /usr/src/linux/.config

7.Wydajemy polecenie, które zostawi nam tylko bierzące moduły (dostepne jest to polecenie od jądra 2.6.32) :

make localmodconfig

Przy pytaniach przerywamy.
8.Wydajemy polecenie, które wbuduje nam na sztywno wszystkie moduły (dostepne jest to polecenie od jądra 2.6.32) :

make localyesconfig

Przy pytaniach przerywamy.
*
Polecenie make localnoconfig wyczyści nam kompletnie plik konfiguracyjny.
*
9.Uruchamiamy menadżer do konfiguracji :
make menuconfig lub make xconfig gdy mamy środowisko graficzne.
Konfigurujemy i zapisujemy naszą konfiguracje w .config
10.Kompilujemy :

make dep && make bzImage && make modules && make modules_install

W tym czasie zaparzamy sobie herbate i robimy prasówke ;)
*
Jeśli są kompilowane źródła tej samej wersji jądra , należy przed wydaniem polecenia ” make modules_install” usunąć katalog ”/lib/modules/2.x.x” z zainstalowanymi modułami.
*
11.Kopiujemy kernel do /boot

cp /usr/src/linux-2.6.37/arch/i386/boot/bzImage /boot/vmlinuz-2.6.37

12.Robimy dowiązanie symboliczne do /vmlinuz

ln -s /boot/vmlinuz-2.6.37 /vmlinuz

*
Tworzenie linków symbolicznych jeżeli mamy stary kernel i chcemy go zachować :

ln -s /boot/vmlinuz-stary /vmlinuz.old
rm vmlinuz 
ln -s /boot/vmlinuz-nowy /vmlinuz

*
13.Kopiujemy plik System.map

cp /usr/src/linux-2.6.37/System.map /boot/System.map-2.6.37

*
System.map jest plikiem stworzonym za pomocą narzędzia nm zawierającego nazwy i adresy funkcji oraz zmiennych z pliku binarnego kernela linuksa. Główne zastosowanie to debugowanie.
*
14.Kopiujemy plik konfiguracyjny do katalogu /boot

cp .config /boot/config-2.6.37

15.Tworzymy plik initrd.img

mkinitramfs -o /boot/initrd.img-2.6.37 /lib/modules/2.6.37/

*
initrd to plik ram-dysku z modułami.
*
16.Konfigurujemy bootloadera

update-grub

17.Restartujemy system

reboot

18.Wybieramy w bootloaderze nasze nowe jądro.
19.Jeśli wszystko jest w porządku pozbywamy się plików obiektowych.

make clean

Wersja Debianowa

10.Aktualnie mamy skonfigurowany kernel. Kompilujemy i budujemy paczkę.

make-kpkg clean
make-kpkg --initrd --append-to-version=ble --revision=01 kernel_image kernel_headers

powyższe opcje to:
––append-to-version=-ble - własna nazwa kernela -ble
––revision=01 - numer kolejnej wersji zmian w konfiguracji jądra
––initrd - tworzy ram dysk jądra

Skąpilował się kernel, stworzyły się 2 paczki:
z kernelem : linux-image-2.6.37.3ble-grsec_01_i386.deb
oraz z kernel_headers : linux-headers-2.6.37.3ble-grsec_01_i386.deb
Instalujemy obydwie paczki :

root@blurp:/usr/src# dpkg -i linux-image-2.6.37.3ble-grsec_01_i386.deb linux-headers-2.6.37.3ble-grsec_01_i386.deb
 Zaznaczenie poprzednio niezaznaczonego pakietu linux-image-2.6.37.3ble-grsec.
(Odczytywanie bazy danych ... 138571 files and directories currently installed.)
Rozpakowanie linux-image-2.6.37.3ble-grsec (z linux-image-2.6.37.3ble-grsec_01_i386.deb) ...
Done.
Zaznaczenie poprzednio niezaznaczonego pakietu linux-headers-2.6.37.3ble-grsec.
Rozpakowanie linux-headers-2.6.37.3ble-grsec (z linux-headers-2.6.37.3ble-grsec_01_i386.deb) ...
Konfigurowanie linux-image-2.6.37.3ble-grsec (01) ...
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 2.6.37.3ble-grsec /boot/vmlinuz-2.6.37.3ble-grsec
update-initramfs: Generating /boot/initrd.img-2.6.37.3ble-grsec
run-parts: executing /etc/kernel/postinst.d/pm-utils 2.6.37.3ble-grsec /boot/vmlinuz-2.6.37.3ble-grsec
run-parts: executing /etc/kernel/postinst.d/update-notifier 2.6.37.3ble-grsec /boot/vmlinuz-2.6.37.3ble-grsec
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 2.6.37.3ble-grsec /boot/vmlinuz-2.6.37.3ble-grsec
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-2.6.38n
Found initrd image: /boot/initrd.img-2.6.38n
Found linux image: /boot/vmlinuz-2.6.38
Found initrd image: /boot/initrd.img-2.6.38
Found linux image: /boot/vmlinuz-2.6.37.3ble-grsec
Found initrd image: /boot/initrd.img-2.6.37.3ble-grsec
Found linux image: /boot/vmlinuz-2.6.37.3-grsec
Found initrd image: /boot/initrd.img-2.6.37.3-grsec
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
Found Debian GNU/Linux (5.0.4) on /dev/sda6
done
Konfigurowanie linux-headers-2.6.37.3ble-grsec (01) ...
Examining /etc/kernel/header_postinst.d.
root@blurp:/usr/src# 

Po instalacji należy jeszcze przejrzeć plik konfiguracyjny grub /boot/grub/menu.lst lub lilo /etc/lilo.conf i ewentuanie wprowadzić inwidualnie ustawienia według potrzeb.

Restartujemy system :

shutdown -r now

Po uruchomieniu sprawdzamy na jakim kernelu aktualnie nasz system pracuje

uname -a

Kompilacja ta ma jedna wadę. Jeśli jądro dystrybucyjne zawiera łaty na kernel,a pobraliśmy .config tego kernela i najświeższe źródła ze strony kernel.org to w najnowszej skąpilowanej przez nas wersji jajka nie będzię zaimplementowanej obsługi (sterowników/funkcji) jakie wprowadzają konkretne łaty. Rozwiązaniem jest naniesienie tych samych łat w wersji przeznaczonych dla konkretnego jądra, które chcemy zbudować.

kernel.txt · ostatnio zmienione: 2011/11/18 08:32 (edycja zewnętrzna)
 
Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki