Kompajliranje kernela

Uputstva, saveti i trikovi

Moderator: Urednik

Post Reply

Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 717
Joined: 23 Aug 2006, 22:09
Location: Šabac
Contact:

Post Napisano: 19 Sep 2008, 01:31


Kompajliranje kernela

!!!Ovo je jedan komplikovan "zahvat", zato ako niste 100% sigurni da znate, nemojte se upuštati u to!!!
!!!Ako se nesto nepredviđeno desi, autor teksta nije odgovoran za posledice!!!


Podrazumeva se da sve komande koristite kao root!!!
Prvo je potrebno skinuti željeni kernel, mada je moguće u slučaju potrebe i prekompajlirati postojeći kernel.
Kernel ćete naći na sledećoj adresi:
ftp://ftp.kernel.org/pub/linux/kernel/v2.6

Kada skinete željenu verziju ona je zapakovana npr. linux-2.6.21.5.tar.gz.
Potrebno je raspakovati, sledećom komandom:

Code: Select all

$ tar -zxvf linux-2.6.21.5.tar.gz /usr/src/
onda preći u

Code: Select all

$ cd /
$ cd /usr/src
Sledećom komandom ćete obrisati link do starog kernela:

Code: Select all

$ rm linux
i napravićete novi

Code: Select all

$ ln -s linux-2.6.21.5 linux
zatim krećete

Code: Select all

$ cd linux
$ make mrproper
$ make clean
Nakon sledeće komande pokrenuće se jedan proces u kome ćete birati sta želite da bude uklučeno, podržano u vašem novom kernelu, a šta ne želite. Ako niste vični kopirajte stari .config file i prepraviti bar hardwarsku podršku. Isključiti ono što nemate na vašoj mašini i što ne planirate kasnije nadograditi. npr, dodatne network, sound, video, raznorazne kontrolere i sve ostale uređaje, što će kasnije ubrzati vaš boot proces.

Code: Select all

$ make menuconfig (može i xconfig ako ste u grafičkom okruženju)

Code: Select all

$ make dep

Code: Select all

$ make bzImage

Code: Select all

$ make modules

Code: Select all

$ make modules_install

Code: Select all

$ cp arch/i386/boot/bzImage  /boot/vmlinuz.novi

Code: Select all

$ cp Sytem.map /boot/
Sada je potrebno editovati konfiguracioni fajl vašeg boot loader-a, u mom slučaju Lilo.

Code: Select all

$ joe /etc/lilo.conf
dodati sledeće

Code: Select all

      image = /boot/vmlinuz.novi
      root = /dev/sda1              #Ovde naravno stavljate particiju na kojoj je system          
      label = Linux-2.6.21.5      
      read-only             
Sačuvati lilo.conf
I sledeći korak je

Code: Select all

$ cd /

Code: Select all

$ /sbin/lilo
Posle čega treba da ispiše nešto slično ovome

    Added Linux-2.6.20    # Stari kernel ovo ne mora biti isto u zavisnosti od vašeg starog kernela
    Added Linux-2.6.21.5  # Novi kernel u nasem slučaju gore kompajlirani kernel

Restartujte sistem, u LILOu izaberite novi kernel, i ako ste sve uradili kako treba, vaš linux će se podići sa novim kernelom.
Srećno  :D :wave:
Image



offline

Post Napisano: 03 Feb 2009, 16:28


Iz vaseg iskustva, cemu svrha ovoga:

$ cp Sytem.map /boot/

kernel mi je oduvek radio, pa i bez tog fajla, koja mu je svrha, te ima li to neke veze sa headerima ?



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 717
Joined: 23 Aug 2006, 22:09
Location: Šabac
Contact:

Post Napisano: 03 Feb 2009, 16:40


System.map je ustvari "symbol file" za novi kernel, koji mapira svaku funkciju iz kernel-API-ja, i adresira kernel-data pozive.
Ta komanda, koliko je meni poznato, služi da se iz novog kernel-stabla iskopira fajl system.map u /boot, da bi se kasnije iz /boot dir-a mogli linkovati novi vmlinuz i originalni system.map
Image



offline

Post Napisano: 16 Feb 2009, 20:32


Gde i kako, mogu napraviti ili skinuti kernel headere za linux-2.6.28.2, a da oni pasuju na Slack 11 ?:



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 699
Joined: 08 May 2007, 12:39
Location: Banja Luka

Post Napisano: 17 Feb 2009, 09:15


0ff-topic wrote: Gde i kako, mogu napraviti ili skinuti kernel headere za linux-2.6.28.2, a da oni pasuju na Slack 11 ?:
Mislim da tako nesto nije moguce. Verzija kernel headera je fiksno vezana za konkretnu verziju neke distribucije (u ovom slucaju Slackware) i mijenja se samo prilikom azuriranja na noviju verziju (kada se ujedno azuriraju i druge core komponente, toolchain npr. gcc, glibc itd.).

Btw zasto se drzis jos uvijek Slack-a 11? Mislim da bi trebao da instaliras 12.1 ili 12.2, jer je 12.1 prva "prava" verzija Slack-a koja koristi 2.6 kernel kao podrazumjevan (samim tim i headere).
Last edited by qki on 17 Feb 2009, 09:16, edited 1 time in total.



offline

Post Napisano: 17 Feb 2009, 14:32


Da tako je, nije da ga nisam probao, evo na drugoj mashini imam 12.2, ali uprvo od te 12.x serije su poceli da bivaju kvazi automatizovani kojekakvim HAL komponentama, sto i jeste dobro, ali opet ima i svoju cenu, BTW imam dosta paketa koje sam pravio bash za slack 11, a pokusavsi da isti i noviji source propustim kroz make na 12.x uvek bi mi javljao neke gluposti ili na kraju ne bi bilo zadovoljavajuceg rezultata, mada je sad savim izvesno da cu preci na 12.2, makar zbog onog DBUS-a, ne bi li i ja koristio benifite Skype-a, te zaboravio na przenje procesora YouTube-ovim .swf-ovima, jer koliko vidim, neshto nece, da li sve ili pojedine komponente, ili imash sliku bez tona ili pak ton nikako ako nema slike, samim time samo crni ekrancic.

Odoh ja u off-topic, dakle nista od ovog mog dobudzivanja, mada evo me chrootovanog na gentoo particiju, pa ce valjda to emerge G0vn0 najzad proraditi.

Slododno brisite post, jer je otisao totalno van teme !



offline

Post Napisano: 19 Jul 2010, 23:49


Korisna opcija ukoliko nadogradujete na noviju verziju kernela da unapredite i vas .config

Code: Select all

# make oldconfig


Post Reply

Who is online

Users browsing this forum: No registered users and 28 guests