Ubuntu-RS forumi
Kompajliranje Linux kernela na Ubuntu - Verzija za Štampu

+- Ubuntu-RS forumi (http://forum.ubuntu-rs.org)
+-- Forum: Ubuntu opšta podrška (/Forum-ubuntu-opsta-podrska)
+--- Forum: Opšte diskusije (/Forum-opste-diskusije)
+--- Tema: Kompajliranje Linux kernela na Ubuntu (/Thread-kompajliranje-linux-kernela-na-ubuntu)

Stranice: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24


Kompajliranje Linux kernela na Ubuntu - Milos_SD - 19.04.2009. 21.33

Trenutna stabilna verzija kernela: 4.7.2

Trenutna razvojna verzija kernela: 4.8-rc3



Pitate se verovatno zasto biste kompajlirali kernel kada vec postoji generic. Neki od razloga su: Ubuntu nije bas poznat po update-u na novi kernel u toku trajanja trenutne verzije, a vi zelite da stavite novi kernel jer je u njemu podzana wifi kartica koju imate, dok u starom kernelu nije. Dodatne optimizacije i ubrzanja, ispravljeni bug-ovi, avanturistickog ste duha, i tako dalje. Ovo uputstvo bi trebalo da vam pokaze kako se to "famozno" kompajliranje kernela radi. Vecina sigurno misli da je to veliki bauk, ali posle ovog uputstva necete tako misliti. Wink
Pa da krenemo. Big Grin

1) Instaliranje potrebnih paketa:
Kod:
sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev qt4-dev-tools libqt4-dev

2) Prebacite se u direktorijum u kojem zelite da vam bude kernel source. Neki ovde predlazu da to bude /usr/src, ali cu ja u ovom uputstvo uraditi tako da to bude u folderu KERNEL koji ce da se nalazi u vasem home direktorijumu.
- Otvorite terminal: Applications -> Accessories -> Terminal
-Pravimo direktorijum KERNEL:
Kod:
mkdir KERNEL

3) Da ne bi uvek pisali sudo pre svake komande, ukucajte
Kod:
sudo su
da postanete root.

4) Sada cemo uci u naprevljen KERNEL direktorijum, skinucemo i otpakovacemo najnoviji (u toku pisanja ovog uputstva, ali cu ga update-ovati uvek kada izadjene nova revizija) kernel:
Kod:
cd KERNEL
Kod:
wget -c https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.7.2.tar.xz && tar -xvJf linux-4.7.2.tar.xz
NAPOMENA: Obratite paznju, da je ovde -xvJf ( veliko "J" koje je flag za LZMA kompresiju ( .xz ), a ne malo "j" koje je flag za .bzip2.

5) Sada cemo da udjemo u direktorijum linux-4.7.2:
Kod:
cd linux-4.7.2


5.1)Primer patch-ovanje kernela:

Kod:
bzcat patchfile.bz2 | patch -p1


6) Sledeci korak je importovanje konfiguracije i opcija trenutnog kernela:
Kod:
cp /boot/config-$(uname -r) .config && yes "" | make oldconfig

7) Sada cemo ukljuciti graficki konfigurator opcija kernela da podesimo kernel po nasem ukusu:
Kod:
make xconfig

ili ako vam ovo ne radi onda:

Kod:
make gconfig

8) Otvorice vam se graficki prozor u kome cete imati mnogo opcija za ukljucivanje i iskljucivanje. Ovde cu navesti samo neke vaznije stvari:

- Prvo sto cete uraditi jeste da pritisnete CTRL+F i trazite rec "debug" (bez navodnika naravno), kliknete na Search i iskljucite sto vise opcija koje u sebi imaju red "debug", ovo ce vam mnogo smanjiti velicinu kernel image-a.

- Nakon toga izadjite iz search prozora i
Citat:General setup
. Tu cete naci opcije
Citat:Optimize for size
i
Citat:Automatic process group schedular
i stikliracete ih.

- Sledeca stvar je da idete u
Citat:Processor type and features
i tu cete ukljuciti (ako vec nije ukljuceno):
Citat:Tickless System (Dynamic Ticks) i High Resolution Timer Support
Onda cete u delu
Citat:Processor family
izabrati familiju vaseg procesora.
Sledece sto trebate da uradite jeste da u
Citat:Timer frequency
izaberete 1000Hz.

- Sada idite u
Citat:Paravirtualized guest support
i iskljucite
Citat:Xen quest support
inace vam se kernel nece boot-ovati. Smile

To bi otprilike bilo najvaznije, sada mozete da malo istrazujete i iskljucite neke drajvere za hardware koji nemate, npr. za web kamere i TV kartice koje nemate, ili ako nemate wireless karticu iskljucite Wireless opciju i tako dalje . Istrazujte malo. Wink

Ako imate Ubuntu 8.10 onda nemate ukljucenu podrsku za ext4 fajl sistem, tako da idite u
Citat:File systems
i ukljucite sve opcije koje imaju ext4 u sebi, osim debuging opcije.


9) Kada ste zavrsili sa podesavanjima kliknite na Save ikonicu i izadjite iz prozora.

10) Sada u terminalu ukucajte sledece:
Kod:
make-kpkg clean

- A kada to zavrsi ukucajte sledece:
Kod:
CONCURRENCY_LEVEL=3 make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

Napomena: CONCURRENCY_LEVEL je korisna opcija ako imate neki multicore procesor kao sto su Core2Duo/Quad ili AMD X2,X3,X4. Broj iza znaka "=" oznacava Cores+1, tako da, ako imate dual core upisite tu 3, a ako imate quad core upisite 5.

Opcija --append-to-version= sluzi da upisete naziv ravizije kernela. Tu mozete upisati bilo sta umesto ovog "custom", samo sto MORA da ostane "-". Na primer:
Kod:
--append-to-version=-zika
. Tako da ce vam se kernel zvati linux-4.7.2-zika.

Gore navedena komanda ce poceti kompajliranje kernela i pravljenje .deb paketa za kernel image i kernel headers. Ako imate neki multicore procesor, kompajliranje ne bi trebalo da traje duze od pola sata, ali ako imate neki single core procesor, kompajliranje ce sigurno potrajati od sat vremena, pa cak i to 4 sata ako imate neki stariji komp. Tako da mozete otici da popijete kafu, odigrate koju partiju basketa (lepo je vreme) ili sta god zelite. Smile

11) Kada se kompajliranje zavrsilo, vreme je da instalirate naprevljene pakete:

Kod:
cd ..
Kod:
dpkg -i *.deb
*.deb opcija kaze da instalira sve .deb pakete u trenutnom folderu, a to je folder KERNEL.

Napomena: Najverovatnije svi imaju instaliran paket nvidia-common koji ce praviti probleme pri instaliranju ovog kernela, tako da pre izvrsavanja gore navedene komande "dpkg" uradite:
Kod:
apt-get purge nvidia-common
Nakon toga uradite gore navedenu dpkg komandu da bi instalirali novi kernel. Kada se kompajliranje zavrsi, instalirajte ponovo nvidia-common:
Kod:
apt-get install nvidia-common
Ne znam da li ova napomena vazi za sve, ili samo za one koji imaju Nvidia graficke, tako da je preporucljivo da svi to uradite za svaki slucaj.

12) Ako imate instaliran neki vlasnicki drajver za ATI ili Nvidia graficke kartice, obrisite ga i restartujte komp u novi kernel. Najverovatnije ce vas docekati konzola ili okruzenje bez 3D akseleracije. Da bi ste instalirali vlasnicki drajver za ATI ili Nvidia uradite sledece:

Posto nemam ATI karticu, ne znam kako se instalira, ali pretrazite forum, postoji sigurno uputstvo, mislim da je bas Stefaca napisao nesto.

A sto se tice Nvidia drajvera, ispratite sledece uputstvo:
http://www.ubuntu-rs.org/forum/viewthread.php?tid=6717&goto=search&pid=78339

To bi bilo to narode. Ako budete imali bilo kakvih problema, uvek mozete izabrati -generic drajver iz grub-a. Smile


- dojca - 19.04.2009. 21.43

Хвала


- stefaca - 19.04.2009. 22.48

veliko ti hvala na predivnom textu i vremenu odvojenom koje ti je trebalo da ovo iskucas. skidam kapu majstore.

instalacija drivera za ATI: http://stefacablog.blogspot.com/

u medjuvremenu su izasli i novi driveri koji se mogu skinuti sa: http://support.amd.com/us/gpudownload/Pages/index.aspx a ne sa onog linka iz uputstva. naravno direktan link nisam stavio jer je na vama izbor 32 ili 64bitnih drivera.

uputstvo sam samo preveo. za 64bitne masine postoji jos par koraka ali celo uputstvo nikako da nadjem. znam da je bilo na nekoj od wiki stranica (ili me pamcenje polako izdaje)


- Boxter7 - 20.04.2009. 11.59

Hvala ti, sada samo jos da uhvatim vremena i da se upustim u ovaj hiruski zahvat!


- Milos_SD - 29.04.2009. 12.48

Uputstvo sam prilagodio novoj reviziji 2.6.29 kernela - 2.6.29.2 i dodao na pocetku posta trenutnu stabilnu i razvojnu verziju kernela. To cu menjani uvek kada izadje nova verzija.

Ako ste vec iskompajlirali 2.6.29.1 kernel, slobodno pratite opet ovo uputstvo za 2.6.29.2. Samo sto cete morati kada budete hteli da instalirate .deb pakete 2.6.29.2 kernela, da restartujete komp u Ubutnu generic kernel. Odatle bi obrisali 2.6.29.1 kernel iz synaptica i posle instalirali nove .deb pakete za sveze kompajlirani 2.6.29.2 kernel. Mozete isto i da obrisete linux-2.6.29.1 folder u KERNEL folderu. To mozete da uradite jedino kao root, tj. preko:

Pritisnite ALT+F2 i ukucajte:
Kod:
gksu nautilus
I onda idite na File System -> Home -> vas USER -> KERNEL.

Ovo vazi za svaki naredni put kada budete kompajlirali novu reviziju (bug fixed) verziju 2.6.29 kernela.

[Izmenjeno 29-4-2009 Milos_SD]


- psymania - 29.04.2009. 12.59

zahvaljujem na ovako lepom ispisanom uputstvu

Big Grin


- dr.nele - 29.04.2009. 13.20

i ja se zahvaljujem. evo upravo i downloadujem pa da se i ja bachim na kompajliranje kernela Big Grin

edit:
jedino je problem shto nema ova opcija
"Xen quest support " Confused ima KVM i VMI guest suport a od Xena ni traga ni glasa.

edit2:
ok, smorio sam se kao lesh. zar je moguce da imam tolku krdzu od kompa :!:
kompajliranje je ushlo u treci sat.

[Izmenjeno 29-4-2009 dr.nele]


- Milos_SD - 29.04.2009. 14.02

Izgleda da ako koristis 32bit kernel, te opcije nema. Ignorisite taj deo ako koristite 32bit Ubuntu.


- dr.nele - 29.04.2009. 17.26

sve je dobro proshlo, malo sam se "pomuchio" sa nvidia drajverima. ali. uvek to ali postoji. izlgleda sam neshto pogdeshno dechekirao tako da mi ne radi wireles Sad


- Milos_SD - 29.04.2009. 18.26

Imas u onoj konfiguraciji opciju Wireless i Wireless LAN, pa gledaj te opcije malo. Smile


- psymania - 29.04.2009. 18.37

proshlo je kao podmazano

nikakvih problema, sve radi

Big Grin


- dr.nele - 29.04.2009. 22.27

mislim da odustajem. Sad ne mogu poterati wireless nikako.
ostavio sam shtiklirano ralink 2500 sve koje sam nashao i sve shto sam mislio da je potrebno. i nishta.


- panta - 30.04.2009. 22.12

Evo i ja sam se danas upustio u ovu avanturu kompajliranja kernela. Uspeo sam tek iz treceg puta, posle 10 sati prckanja za racunarem pokusavajuci da instaliram nvidia drajver. Nikako nisam mogao da se izlogujem iz grafickog okruzenja kako bi pokrenuo instalaciju, pa sam doticni drajver instalirao iz recavery moda.
Sto se tice funkcionalnosti novog kernela racunar prosto leti, programi se otvaraju duplo brze nego ranije, sto se posebno oseti kod Firefoxa i Opere, cini mi se kao da koristim Xubuntu a ne Ubuntu. Od hardvera sve radi bez problema, cak i floppy koji je znao da zeza sada koliko vidim radi dobro. Posle svega ovoga mislim da se cela stvar isplati ako neko zeli da poboljsa performanse racunara ili da natera neki deo hardvera da radi onda je ovo pravo resenje.


- panta - 01.05.2009. 07.16

Samo jos da pitam, da li smem da obrisem folder linux-2.6.29.2 koji se nalazi u direktorijumu usr/src a da nesto ne pokvarim? To je raspakovani folder novog kernela, pa ne znam cemu on sluzi.


- balle - 01.05.2009. 09.32

veoma interesantna tema,
koja me je naterala da malo potrazim po mrezi slicne stvari.
i tako naidjoh na pacbuilder za Arch Linux, ima ga u AUR-u


- Milos_SD - 01.05.2009. 10.51

@panta, ne smes da brises taj folder. On sluzi kao kernel source , tako da, ako ga obrises, neces moci da instaliras drajver za graficku, ili neki drugi modul.


- panta - 01.05.2009. 10.56

Nisam znao za to. OK, hvala na odgovoru.


- stalker - 01.05.2009. 12.12

jos jedna korisna stvar kada zelite da iskljucujete module (to su kruzici kad se pokrece make xconfig). Moduli ne idu u kernel, ali mozete da ih sklonite da se ne kompajliraju. Da biste bili sigurni da modul mozete da sklonite, pogledajte u opisu (kada se klikne modul) kako ce se modul zvati (obicno to pise na kraju), a onda izvrsite `lsmod` komandu sa pokrenutim kernelom (kome svi drajveri rade, naravno). Tu cete videti koje sve module vas kernel _trenutno_ koristi, pa ako ne vidite onaj iz xconfig-a, mozete ga vrlo verovatno izbrisati i da vam sve radi.

Npr. ako u lsmod vidite da vam je wireless ath5k, mozete (oprezno) pobrisati sve ostale wireless drivere (ukoliko ne nameravate da dodajete nove wireless karte)


- dr.nele - 01.05.2009. 17.06

stvarno bih hteo da kompajliram kernel. jel bi mi neko mogao reci shta moram da ostavim ukljucheno. ja cu ovde napisati konfiguraciju.

amd sempron 1800+
gf 5200 128mb
ralink 2500
externi usb hard (treba mi samo ext2, 3 i 4 posto planiram da sve particije polako "prevedem" u 4 i mozda ntfs i fat ako mi neko donese hard pa da ga skonta.)
standardni cd-rw
od usb stvarchica koristim samo flesh memorije (i externi hard gore naveden)
LCD monitor
ps2 mish i tastatura
koristim integrisanu muzichku samo mic i out (zeleni Smile ) iako ima 7.1
(plocha je asus k8n, mislim da ima via chipove. nisam siguran, ne vidim od hladnjaka.)
hm. ne znam shta bi josh mogao navesti. mislim da je to to.
nadam se da ce mi neko pomoci. hvala unapred Wink

edit:
ps. sve sam kolko tolko skontao. al nikako wireles nece da mi radi Confused

[Izmenjeno 1-5-2009 dr.nele]


- panta - 01.05.2009. 17.56

Ne verujem da neko moze tacno da ti kaze koje opcije tacno da iskljucis posto se sve to razlikuje od racunara do racunara, ali evo nesto u grubim crtama.

Za procesor ukljuci samo za tvoj tip AMD, iskljuci sve drugo sto je za intel ili neki drugi.
Ako od USB uredjaja imas samo hard disk i flas memorije, onda ukljuci samo za njih, a za ostale USB stvarcice iskljuci npr. mp3 plajere, modeme, skenere, stampace.
Takodje u Filesistem ostavi samo za ext2, 3, 4, ntfs i fat. Podrsku za ostale ako ti ne trebaju iskljuci.
Sto se tice cd-rw, floppya, monitora, misa i tastature tu moras da budes oprezan, ja sto se tice cd i floppya ne bih nista dirao.

Za zvucnu stikliraj samo za tvoj model, cip.

Za Wireless ne bih znao nista da kazem, posto nisam nikad koristio tu vrsu konekcije. Najbolje bi bilo da za Wireless ostavis sve kako jeste, a podrsku za ostale vrste konekcija iskljuci.

Nadam se da sam ti malo pomogao, ipak ne mozes nista da znas dok ne probas, ja sam ga juce 3 puta kompajlirao.

Pozdrav i srecno!


- dukenukem7 - 02.05.2009. 18.17

nele ,ovo što neće ralink da radi ,proveri da li je firmver na pravom mestu za 2.6.29 u odnosu na stock kernel ?
(ili eventualno compat-wireless ali thats another story Cool )

trebao bih da dodam ,kad se na ubuntu ručno ukompilra kernel
onda ažuriranja zvanična ,kad naiđu za kernel,ne važe za njega
(nisam siguran da li to nešto poremeti kad se stavi takvo ažuriranje ? )

takođe ima par drajvera koji nisu u stvari u vanila kernelu ,ali se nalaze
u ubuntu stock kernelu ,zovu se obično 3dparty drajveri .
i oni moraju dodatno ,ako su neophodni
:!:

za ove konfiguracione opcije ,može da se gleda config od stock kernela pa da se po njemu postavljaju u vanila kernelu opcije Cool

[Izmenjeno 2-5-09 dukenukem7]


- dr.nele - 03.05.2009. 02.15

dukenukem7 Piše:nele ,ovo što neće ralink da radi ,proveri da li je firmver na pravom mestu za 2.6.29 u odnosu na stock kernel ?
(ili eventualno compat-wireless ali thats another story Cool )
jel bi mi ovo mogao ikako pojasniti. ne razumem sta treba da radim i gde. Confused

edit:
nashao sam na nekim forumima gde upgrejduju 8.10 na novi kernel da im fali wireless-crda paket. jel moguce da je to i kod mene problem?
ps. oni su instalirali pakete odavde http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29.2/

[Izmenjeno 3-5-2009 dr.nele]


- dragoljub - 06.05.2009. 22.51

ja dođem doovde i kraj :
root@gek:/home/gek/Dokumenta/KERNEL# cd linux-2.6-29.2
bash: cd: linux-2.6-29.2: No such file or directory
root@gek:/home/gek/Dokumenta/KERNEL#
nemam pojma zašto


- psymania - 06.05.2009. 22.52

upishi cd /home/gek/Dokumenta/KERNEL/linux-2.6-29.2


- Milos_SD - 06.05.2009. 23.05

Hehe. Izvinite na tome, imao sam gresku u kucanju. Ne treba linux-2.6-29.2, nego linux-2.6.29.2
Moja greska, izvinjavam se jos jednom. Smile
Greska je ispravljena u originalnom postu.

[Izmenjeno 6-5-2009 Milos_SD]