Att bygga en kärna

Observera att versionerna här, behöver inte vara de aktuella.

kernel.org

Hämta den senaste stabila.

Eller patchen till den stabila.

Att öppna och bygga, som en lokal användare. Är att föredra.

Filen är packad med tar och bzip2. För att öppna den.

bash-3.00$ tar -jxvf linux-2.6.14.2.tar.bz2
bash-3.00$ ls -l                            
total 114210
-rw-r--r--   1 jensa users    54228 2005-09-07 03:05 config
-rw-r--r--   1 jensa users    39032 2005-10-16 11:06 config.old
drwxr-xr-x  19 jensa users     1248 2005-10-27 11:26 linux-2.6.13.4
-rw-r--r--   1 jensa users 38375371 2005-10-10 21:45 linux-2.6.13.4.tar.bz2
drwxr-xr-x  19 jensa users     1304 2005-11-14 13:39 linux-2.6.14
drwxr-xr-x  19 jensa users     1304 2005-11-15 19:04 linux-2.6.14.2
-rw-r--r--   1 jensa users 39184746 2005-11-11 06:39 linux-2.6.14.2.tar.bz2
-rw-r--r--   1 jensa users 39172170 2005-10-28 02:26 linux-2.6.14.tar.bz2
bash-3.00$ 
bash-3.00$ cd linux-2.6.14.2/
bash-3.00$ make mrproper
bash-3.00$ make menuconfig

Det förbereder och startar konfigurationsprogrammet. konfiguration

Läs dokumentation och instruktioner först, om det skulle behövas.

bash-3.00$ cd src/kernel/linux-2.6.14.2
bash-3.00$ ls
COPYING  Documentation  MAINTAINERS  Module.symvers  REPORTING-BUGS  arch    drivers  include  ipc     lib  net      security  usr
CREDITS  Kbuild         Makefile     README          System.map      crypto  fs       init     kernel  mm   scripts  sound     vmlinux
bash-3.00$

För att anbringa en patch, används programmet patch

Kopiera först hela det gamla trädet och byt samtidigt namn, till det senaste

bash-3.00$ cd src/kernel/
bash-3.00$ cp -r linux-2.6.16/ linux-2.6.16.13
bash-3.00$ cd linux-2.6.16.13/
bash-3.00$ bzip2 -dc ../patch-2.6.16.13.bz2 | patch -p1

När konfigurationen är genomgången. Är det dags, att starta kompileringen.

bash-3.00$ make

Det tar en stund. När det är klart. su till root, för att kopiera filer och ändra i /etc/lilo.conf.

Kolla i /boot, för att unvika misstag.

bash-3.00$ ls -l /boot/
total 13132
lrwxrwxrwx  1 root root      37 2005-10-16 11:53 README.initrd -> /usr/doc/mkinitrd-1.0.1/README.initrd
lrwxrwxrwx  1 root root      21 2005-10-16 11:53 System.map -> System.map-ide-2.4.31
-rw-r--r--  1 root root  608033 2005-06-06 05:37 System.map-ide-2.4.31
-rw-r--r--  1 root root     512 2005-10-16 12:02 boot.0800
lrwxrwxrwx  1 root root      17 2005-10-16 11:53 config -> config-ide-2.4.31
-rw-r--r--  1 root root   41760 2005-06-06 05:37 config-ide-2.4.31
-rw-r--r--  1 root root   57186 2005-10-22 09:44 config-sata-2.6.13.4
-rw-r--r--  1 root root   58945 2005-10-31 15:50 config-sata-2.6.14
-rw-r--r--  1 root root    5032 2004-05-21 09:19 diag1.img
-rw-------  1 root root   97280 2005-11-15 19:11 map
lrwxrwxrwx  1 root root      21 2005-10-17 09:07 vmlinux -> vmlinuz-sata-2.6.13.4
-r--------  1 root root 1281910 2005-10-16 12:01 vmlinuz
-rw-r--r--  1 root root 1256566 2005-06-06 05:37 vmlinuz-ide-2.4.31
-rw-r--r--  1 root root 3352206 2005-10-22 09:44 vmlinuz-sata-2.6.13.4
-rw-r--r--  1 root root 3294520 2005-10-31 15:49 vmlinuz-sata-2.6.14
bash-3.00$
bash-3.00# make modules_install 
bash-3.00# cp arch/i386/boot/bzImage /boot/vmlinuz-sata-2.6.14.2
bash-3.00# cp System.map /boot/System.map-sata-2.6.14.2
bash-3.00# cp .config /boot/config-sata-2.6.14.2
bash-3.00$ ls -l /boot/
total 13132
lrwxrwxrwx  1 root root      37 2005-10-16 11:53 README.initrd -> /usr/doc/mkinitrd-1.0.1/README.initrd
lrwxrwxrwx  1 root root      21 2005-10-16 11:53 System.map -> System.map-ide-2.4.31
-rw-r--r--  1 root root   57186 2005-10-22 09:44 System.map-sata-2.6.14.2
-rw-r--r--  1 root root  608033 2005-06-06 05:37 System.map-ide-2.4.31
-rw-r--r--  1 root root     512 2005-10-16 12:02 boot.0800
lrwxrwxrwx  1 root root      17 2005-10-16 11:53 config -> config-ide-2.4.31
-rw-r--r--  1 root root   41760 2005-06-06 05:37 config-ide-2.4.31
-rw-r--r--  1 root root   57186 2005-10-22 09:44 config-sata-2.6.13.4
-rw-r--r--  1 root root   58945 2005-10-31 15:50 config-sata-2.6.14
-rw-r--r--  1 root root   58947 2005-11-15 19:08 config-sata-2.6.14.2
-rw-r--r--  1 root root    5032 2004-05-21 09:19 diag1.img
-rw-------  1 root root   97280 2005-11-15 19:11 map
lrwxrwxrwx  1 root root      21 2005-10-17 09:07 vmlinux -> vmlinuz-sata-2.6.13.4
-r--------  1 root root 1281910 2005-10-16 12:01 vmlinuz
-rw-r--r--  1 root root 1256566 2005-06-06 05:37 vmlinuz-ide-2.4.31
-rw-r--r--  1 root root 3352206 2005-10-22 09:44 vmlinuz-sata-2.6.13.4
-rw-r--r--  1 root root 3294520 2005-10-31 15:49 vmlinuz-sata-2.6.14
-rw-r--r--  1 root root 3294661 2005-11-15 19:09 vmlinuz-sata-2.6.14.2
bash-3.00$ 

Konfigurering av LILO. Dubbel boot med Windows XP/SP2

bash-3.00# vim /etc/lilo.conf
# Linux bootable partition config begins
image = /boot/vmlinuz
  root = /dev/sda2
  label = Amilo
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
image = /boot/vmlinuz-sata-2.6.14
  root = /dev/sda2
  label = Linux
  read-only
image = /boot/vmlinuz-sata-2.6.14.2
  root = /dev/sda2
  label = Stabil
  read-only
# Linux bootable partition config ends
# Windows bootable partition config begins
other = /dev/sda1
  label = Windows
#  map-drive = 0x80
#   to = 0x81
#  map-drive = 0x81
#   to = 0x80
  table = /dev/sda
# Windows bootable partition config ends

Spara och kör /sbin/lilo -v. För att skriva till mbr (master boot record).

Lägg märke till eventuella felmeddelanden, korrigera om det behövs

Beroende på hur kärnan är byggd. Moduler eller inbyggt. Se till att de rätta modulerna laddas. För det används rc.modules och modprobe.conf.

För den hårdvara och konfiguration som föreligger. Boota sedan om, upp i den nya kärnan.

bash-3.00$ vim /etc/rc.d/rc.modules
/sbin/modprobe agpgart
/sbin/modprobe radeon
## ACPI ## laptop battery, ac
/sbin/modprobe processor
/sbin/modprobe thermal
/sbin/modprobe container
/sbin/modprobe battery 
/sbin/modprobe ac
## don't forget mouse support, with a touch pad
/sbin/modprobe psmouse
## and some module for sound
/sbin/modprobe snd_rtctimer
## if you want to attach PCMCIA- or PC-cards to your Linux box                                                                                                                                        x  
/sbin/modprobe pcmcia_core
## common linux security
/sbin/modprobe commoncap

Har haft problem med att ipw2200, tar eth0 i stället för r8169. Av den anledningen, är det bra med ett alias

bash-3.00$ vim /etc/modprobe.conf
alias eth0 r8169
alias eth1 ipw2200

Är det fortfarande problem. Kommentera ut nethelper i /etc/udev/rules.d/udev.rules.

# network devices
KERNEL=="tun", NAME="net/%k"
#SUBSYSTEM=="net", ACTION=="add", RUN+="/lib/udev/nethelper.sh $env{INTERFACE} start"
#SUBSYSTEM=="net", ACTION=="remove", RUN+="/lib/udev/nethelper.sh $env{INTERFACE} stop"

Genereras av alsaconf

# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF version 1.0.9a ---
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
# --- END: Generated by ALSACONF, do not edit. ---

Observera en del kommande förändringar. Alsa kommer att placeras i /etc/modprobe.d/, likaså /etc/hotplug/blacklist.

Anledningen till det, är att hotplug kommer att utgå. För att ersättas helt med udev.

bash-3.00$ vim /etc/modprobe.d/sound
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel

Moduler för trådlös kommunikation.


## Wireless ##
/sbin/modprobe michael_mic
/sbin/modprobe aes
/sbin/modprobe crc32c
/sbin/modprobe arc4

Dessa laddas förmodligen automatiskt.

ipw2200
ieee80211
ieee80211_crypt
ieee80211

Tillbaka

Hem


copyleft   Valid XHTML 1.0!

Slackware® Linux is a Registered Trademark of Patrick J. Volkerding (Slackware inc.).
Linux® i a Registered Trademark of Linus Torvalds.
Copyright© 2005 GNU/fdl Jens Odsvall
(Legal Notice)