HOWTO: Kompilera 2.6.33 med make-kpkg fungerande.
Postat: 26 feb 2010, 11:26
HowTo: Kompilera kärnan själv. (2.6.33)
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
Ladda hem vald kernel version på http://www.kernel.org
Öppna en terminal och gör dig själv till root genom kommandot
Sedan använder vi kommandot mv för att flytta källkoden till kärnan till dess rätta plats.
Nu flyttar vi oss till /usr/src och packar upp källkoden till kärnan
Sedan är det dags att göra en symlink mellan från källkodskatalogen till linux genom att använda kommandot
Sedan flyttar vi oss in i linux genom kommandot
Konfigurera kärnan
Vi hämtar konfigurationen från den kärnan du kör just nu genom kommandot
Nu är det dags att börja konfigurera kärnan som du vill ha den, antingen kan man göra det i terminalen direkt eller i ett X program. För att använda X programmet till konfigurationen skriver vi in kommandot
Vill du hellre använda terminalen eller kanske du rent av är i konsollen så använder vi kommandot
Gå genom alla menyer och undermenyer och lägg till eller ta bort stöd enligt dina önskemål. Om du inte riktigt känner dig säker så kan du välja exit och spara konfigurationen, då blir det samma konfiguration som kerneln du kör just nu använder.
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.
* i normalfall använder man make-kpkg clean, men pga bugg i make-kpkg använder vi 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.
Gå till rad 141 och byt ut:
Till:
Spara och avsluta.
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.
När allt är färdigt flyttar vi oss till /usr/src genom kommandot
Installera *.deb paketen genom kommandot
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.
Logga in med användarnamn och lösenord.
Installera nvidias drivrutiner genom
Efter det är färdigt startar vi om datorn med kommandot
Nu ska allt vara klart och fungera!
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.
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.