Detta är inget jag rekommenderar nybörjare till. Ubuntus färdigbyggda kärnor räcker mer än väl. Men känner man att man vill ta steget och experimentera lite, eller vilja hålla sig med nyaste kärnan så är detta en beskrivning på hur det görs i Ubuntu.
Ladda hem och packa upp kärnan.
På http://www.kernel.org hittar du alltid de senaste källkoderna till kärnorna. Denna HowTo kommer att beskriva hur vi kompilerar version 2.6.33
Först laddar vi hem några paket som behövs för att kompilera en kernel genom kommandot
Kod: Markera allt
sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev
Öppna en terminal och gör dig själv till root genom kommandot
Kod: Markera allt
sudo -s
Kod: Markera allt
mv /home/dittanvändarnamn/Hämtningar/linux*.bz2 /usr/src
Kod: Markera allt
cd /usr/src
Kod: Markera allt
tar -xvjf linux-2.6.33.tar.bz2
Kod: Markera allt
ln -s linux-2.6.33 linux
Kod: Markera allt
cd linux
Vi hämtar konfigurationen från den kärnan du kör just nu genom kommandot
Kod: Markera allt
cp /boot/config-$(uname -r) .config && yes "" | make oldconfig
Kod: Markera allt
make xconfig
Kod: Markera allt
make menuconfig
Nu ska vi städa upp källkoden och ställa in regler för hur den ska byggas, vi vill ha den i *.deb paket för enkelhetens skull.
Kod: Markera allt
make-kpkg debian
Om det är version 2.6.33 du använder behöver vi editera en fil pga en bugg i make-kpkg som beror på att en fil i källkodsstrukturen har flyttats/ändrats. Är det kärna 2.6.32.* behövs inte nästa steg göras.
Kod: Markera allt
gedit debian/ruleset/misc/version_vars.mk
Kod: Markera allt
UTS_RELEASE_HEADER=$(call doit,if [ -f include/linux/utsrelease.h ]; then \
echo include/linux/utsrelease.h; \
else \
echo include/linux/version.h ; \
Kod: Markera allt
UTS_RELEASE_HEADER=$(call doit,if [ -f include/generated/utsrelease.h ]; then \
echo include/generated/utsrelease.h; \
elif [ -f include/linux/utsrelease.h ]; then \
echo include/linux/utsrelease.h; \
else \
echo include/linux/version.h ; \
Kompilera
Nedan är ett exempel på ett kommando för att börja kompilera kärnan. Ändra CONCURRENCY_LEVEL till ett nummer högre än antal processorer (cores) din dator har. Min har bara en, därför skriver jag 2. Har du 2 skriver du 3 etc.
Kod: Markera allt
INSTALL_MOD_STRIP=1 CONCURRENCY_LEVEL=2 make-kpkg --initrd --append-to-version=-minkernel kernel_image kernel_headers modules_image
När allt är färdigt flyttar vi oss till /usr/src genom kommandot
Kod: Markera allt
cd ..
Kod: Markera allt
dpkg -i *.deb
Använder du NVIDIAS drivrutiner? Fortsätt läs.
Om du använder nvidias drivrutiner behöver de tas bort.
Öppna synaptic och sök på nvidia, ta bort alla paketen som innehåller namnet nvidia och ta även bort paketet dkms.
För att kunna använda nvidias drivrutiner till kärna 2.6.33 behövs version
195.*
Ladda hem den:
Använder du 32 bitars: ftp://download.nvidia.com/XFree86/Linux ... 3-pkg1.run
Använder du 64 bitars: ftp://download.nvidia.com/XFree86/Linux ... 3-pkg2.run
Spara i din hemkatalog.
Nu ska vi starta om datorn – och när den startar upp kommer inte X att startas, för nvidias drivrutin saknas ju. Välj logga in i konsoll.
Kod: Markera allt
sudo reboot
Installera nvidias drivrutiner genom
Kod: Markera allt
sudo sh NVIDIA*
Kod: Markera allt
sudo reboot
Tack till master_kernel på: http://ubuntuforums.org/showthread.php?t=311158
Och informationen från https://bugs.launchpad.net/ubuntu/+sour ... bug/498747
Som gav en fungerande fix för make-kpkg problemet.