Podpora a zdroje > Návody, tipy a triky

Kernel - kompilace, verze a problémy

(1/18) > >>

qUAKER:
Vítejte v kernel tématu. V tomto tématu je napsáno, které jsou aktuální verze kernelu, jak zkompilovat kernel v 10 bodech a často kladené otázky. Toto téma je ekvivalentem Master Kernel Thread na Ubuntu forums.

Varování - Kompilace kernelu není věc pro úplné začátečníky. Začátečníkovi se pak stane, že nebude vědět, co která volba znamená :)

Informace:
(F: celý kód;
 patch: kliknutím na verzi;
 FU: celý kód bez posledního patche.)

Aktuální stabilní verze: 2.6.33.2 2010-04-01 F FUAktuální vývojová verze: 2.6.34-rc3 2010-03-30 F FU
Ostatní verze najdete na http://kernel.org. Postupujte podle návodu http://wiki.ubuntu.cz/Kompilace_kernelu. Nedoporučuji v případě vývojové verze stahovat snapshot, protože nemusí fungovat korektně.
Kompilace - stabilní verze 2.6.33.2
Body psané červeně jsou důležité.
Body psané zeleně jsou doporučené.
Body psané šedomodře můžou být vynechány.

--- Citace ---# 1. Spustíme si terminál a nainstalujeme veškeré potřebné závislosti ke kompilaci
sudo apt-get install build-essential bin86 kernel-package gcc gcc-3.4 libncurses5 libncurses5-dev fakeroot

# Pokud budeme využívat grafickou konfiguraci v GTK2, tak
sudo apt-get install libglade2-dev

# Pokud budeme využívat QT konfigurátor, tak
sudo apt-get install libqt3-headers libqt3-mt-dev

# 2. Přejdeme do /usr/src a změníme se na roota:
cd /usr/src && sudo -s

# 3. Stáhneme si aktuální stabilní verzi kernelu a tu rozbalíme.
wget -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.2.tar.bz2 && tar -xvjf linux-2.6.33.2.tar.bz2

# 4. Odstraníme starý link k linux adresáři a vytvoříme nový, pak se přesuneme do linux adresáře.
rm -rf linux && ln -s linux-2.6.33.2 linux && cd linux

# 5. Aplikujeme patche, které budeme potřebovat.

# Pokud je patch nekomprimovaný, aplikujeme ho takhle
cat soubor.patch | patch -p1 --dry-run # Simulace aplikace patche
cat soubor.patch | patch -p1 # Aplikace patche

# b) Pokud je patch ve formátu .bz2, tak takhle:
bzcat soubor.bz2 | patch -p1 --dry-run # Simulace aplikace patche
bzcat soubor.bz2 | patch -p1 # Aplikace patche

# 6. Zkopírujeme si naše aktuální kernel nastavení a použijeme je:
cp /boot/config-`uname -r` .config && make oldconfig

# 7. Nakonfigurujeme kernel.

# a) pomocí menu v příkazové řádce
make menuconfig

# b) pomocí GTK2 konfigurátoru
make gconfig

# c) pomocí QT3 konfigurátoru
make xconfig

# 8. V General Setup sekci si dopište za Local Version slovo -generic, -lowlatecy, -mujkernel atd.
# Pak se bude váš kernel jmenovat 2.6.33.2-lowlatency nebo podle vašeho jména a ovlivní to i moduly,
# takže bude moct váš kernel běžet vedle jiného 2.6.33.2.

# Pokud nechcete, aby kernel měl 40MB a moduly 700MB, vypněte Kernel Debugging v sekci Kernel Hacking.

# 9. Zkompilujeme kernel. Musíte mít plný root přístup!
make-kpkg clean
make-kpkg --initrd --stem linux --revision=mujkernel.1.0 kernel_image kernel_headers

# Slovo za --revision nahraďte čímkoliv, co má v sobě čísla. Narozdíl od Local Version v konfiguraci ovlivňuje pouze verzi balíku.

# Parametr --initrd není nutný, kernel je schopný běžet i bez ramdisku, ale je doporučeno initrd povolit.

# 10. Nainstalujeme kernel.
cd ..
dpkg -i linux*.deb

# 11. Vygenerujeme initrd (nevím proč, ale novější make-kpkg dělá balíčky, které jej neudělají)
mkinitramfs -o /boot/initrd.img-2.6.33.2-LOCALVERSION 2.6.33.2-LOCALVERSION
# tzn. já dal localversion -lowlt, tak jsem dal mkinitramfs -o /boot/initrd.img-2.6.33-lowlt 2.6.33-lowlt

# 12. Aktualizujeme zavaděč. Po vygenerování initrd je to nutné.
update-grub

--- Konce citace ---

Drivery ATI a nVIDIA na 2.6.33.2
Ovladače vždy instalujte z nového kernelu!

Nvidia: instalujte nejnovější vývojovou verzi. Nebo můžete použít Nouveau, pokud jste dobrodruzi :) Platí i pro stable, i vývojovou verzi jádra.
ATI: Debian má v repozitářích pre-release ovladačů, které fungují s Xorg 7.5 a kernelem 2.6.32, pro 2.6.33 i 2.6.34 je nutné aplikovat některý z patchů, které se dají vyhledat na Google a pak to také půjde zkompilovat (zdrojáky jádra se nacházejí pod /usr/src/fglrx-87.. a jsou v balíku fglrx-kernel-src), Ubuntu má ten samý pre-release v repozitářích pro Lucid, takže uživatelé Karmicu/Jauntyho instalujte odtud(starší release budou muset apt-get -b source fglrx s přidaným zdrojovým repozitářem Lucid)


Problémy:

Q. Nefunguje zvuk, mám běžnou zvukovou kartu běžící na Ubuntu Hardy.

A. Povolte Advanced Linux Sound Architecture v Device Drivers -> Sound + odpovídající modul. Nepokoušejte se použít PulseAudio s tímto kernelem, s vanilla kernelem nefunguje.

Q. Zvuk(Azalia) mi nefunguje.

A. Povolte ALSA Intel HD modul v kernel configu.

Q. Když chci bootovat, skončí to s hláškou


--- Kód: --- Begin: Waiting for root file system...
--- Konec kódu ---

A. Nejspíš jste Ubuntu instalovali na SATA disk. Povolte si SATA v konfiguraci.

GlidingFLY:
No to je bezvadný počin. Já se momentálně zabývám kompilací kernelu pomocí git
https://wiki.ubuntu.com/KernelGitGuide

qUAKER:
Z GIT jsem si kompiloval svůj kernel 2.6.26-rc8-lowlatency :)

GlidingFLY:
No mně i když se povede udělat kernel tak sice funguje, ale bez zvuku. Zkrátka i když provedu kopii .config z původního aktuálního kernelu a dále oldconfig. Proč se mi ten zvuk nezačlení do nového kernelu? Je přece aktivní v tom aktuálním. Kde dělám chybu?

qUAKER:
asi tím, že v Ubuntu Hardy je ALSA začleněna do linux-ubuntu-modules, zato v Intrepid je ALSA přímo v kernelu -> je to nutné povolit tuším v Device Drivers -> Sound -> Advanced Linux Sound Architecture a tam povolit alsu a správný modul.

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi