Jádro: Kompilace/Ubuntu - Kompilace jádra v Ubuntu:
Odkazy
editovatVerze
editovat2.6.27
editovat2008-03-12
editovatKompilace jádra pro Ubuntu z balíku linux-source-2.6.27-11.27: Linux kernel source for version 2.6.27 with Ubuntu patches (Intrepid Updates)
Rozbalení
editovatPo instalaci balíku:
cd /usr/src ls -Gl -rw-r--r-- 1 root 52026782 2009-01-29 22:10 linux-source-2.6.27.tar.bz2 tar xjf linux-source-2.6.27.tar.bz2
Vygeneroval jsem si defaultní konfiguraci jádra .config.000-default a zkopíroval jsem rovněž konfiguraci generického jádra, abych si je mohl případně porovnat (rozdíl ve velikosti, jak vidno, značný). Pak jsem kompiloval dle konfigurace generického jádra.
Konfigurace
editovatcd /usr/src/linux-source-2.6.27 make defconfig mv .config .config.000-default cp -p /bin/config-2.6.27-11-generic .config-2.6.27-11-generic cp -p .config-2.6.27-11-generic .config ls -Glah .con* -rw-r--r-- 1 root 90K 2009-03-12 22:21 .config -rw-r--r-- 1 root 57K 2009-03-12 22:13 .config.000-default -rw-r--r-- 1 root 90K 2009-03-12 22:21 .config-2.6.27-11-generic head -4 .config.000-default # # Automatically generated make config: don't edit # Linux kernel version: 2.6.27.10 # Thu Mar 12 22:13:02 2009
Zajímavé je, že ačkoliv ubuntí balík má verzi linux-source-2.6.27-11.27, tak ta verze kernelu je 2.6.27.10.
Kompilace
editovatmake ls -Gl /boot/vmlinuz-2.6.27-11-generic -rw-r--r-- 1 root 2248912 2009-01-29 22:11 /boot/vmlinuz-2.6.27-11-generic find -iname bzimage -exec ls -Gl {} \; -rw-r--r-- 1 root 2237264 2009-03-13 01:12 ./arch/x86/boot/bzImage lrwxrwxrwx 1 root 22 2009-03-13 01:12 ./arch/i386/boot/bzImage -> ../../x86/boot/bzImage ls -Gl System.map -rw-r--r-- 1 root 1008631 2009-03-13 01:12 System.map ls -Gl /boot/System.map-2.6.27-11-generic -rw-r--r-- 1 root 1031799 2009-01-29 22:11 /boot/System.map-2.6.27-11-generic wc /boot/System.map-2.6.27-11-generic System.map 31752 95256 1031799 /boot/System.map-2.6.27-11-generic 30921 92763 1008631 System.map
Z toho je vidět, že i když zkompilované jádro je přibližně stejně velké jako generické z distribuce, jeho velikost není přesně identická.
Instalace jádra
editovatmake install sh /usr/src/linux-source-2.6.27/arch/x86/boot/install.sh 2.6.27.10 arch/x86/boot/bzImage System.map "/boot" ls -Glt /boot -rw-r--r-- 1 root 91358 2009-03-13 09:06 config-2.6.27.10 -rw-r--r-- 1 root 1008631 2009-03-13 09:06 System.map-2.6.27.10 -rw-r--r-- 1 root 2237264 2009-03-13 09:06 vmlinuz-2.6.27.10
Instalace modulů
editovatmake modules_install cd /lib/modules du --max-depth=2 -h 2.6.27-11-generic 2.6.27.10 2,0M 2.6.27-11-generic/volatile 28K 2.6.27-11-generic/initrd 7,5M 2.6.27-11-generic/kernel/sound 8,3M 2.6.27-11-generic/kernel/net 8,2M 2.6.27-11-generic/kernel/fs 56M 2.6.27-11-generic/kernel/drivers 3,5M 2.6.27-11-generic/kernel/ubuntu 204K 2.6.27-11-generic/kernel/lib 1,2M 2.6.27-11-generic/kernel/crypto 828K 2.6.27-11-generic/kernel/arch 86M 2.6.27-11-generic/kernel 90M 2.6.27-11-generic 54M 2.6.27.10/kernel/sound 98M 2.6.27.10/kernel/net 85M 2.6.27.10/kernel/fs 408M 2.6.27.10/kernel/drivers 33M 2.6.27.10/kernel/ubuntu 1,1M 2.6.27.10/kernel/lib 6,2M 2.6.27.10/kernel/crypto 5,0M 2.6.27.10/kernel/arch 689M 2.6.27.10/kernel 691M 2.6.27.10 find 2.6.27-11-generic > 2.6.27-11-generic.lst find 2.6.27.10 > 2.6.27.10.lst wc 2.6.27-11-generic.lst 2.6.27.10.lst 2776 2776 143969 2.6.27-11-generic.lst 2759 2759 121219 2.6.27.10.lst
I když v generických modulech v.11 je o 17 modulů více, naše moduly v.10 jsou více než 5x větší - asi defaultně obsahují spoustu všelijakých symbolů pro debugging nebo co navíc, zatím to moc nechápu.
Ještě si porovnáme názvy zkompilovaných modulů (odstraníme název adresáře s číslem verze na začátku - mohli jsme si to ušetřit při findu):
perl -pe -i.bak 's|^.*?/||' 2.6.27-11-generic.lst perl -pe -i.bak 's|^.*?/||' 2.6.27.10.lst diff 2.6.27-11-generic.lst 2.6.27.10.lst 1c1 < 2.6.27-11-generic --- > 2.6.27.10 5,23c5 < volatile < volatile/wlan_xauth.ko < volatile/wlan_wep.ko < volatile/wlan_tkip.ko < volatile/wlan_scan_sta.ko < volatile/wlan_scan_ap.ko < volatile/wlan_ccmp.ko < volatile/wlan_acl.ko < volatile/wlan.ko < volatile/wl.ko < volatile/ath_rate_sample.ko < volatile/ath_rate_onoe.ko < volatile/ath_rate_minstrel.ko < volatile/ath_rate_amrr.ko < volatile/ath_pci.ko < volatile/ath_hal.ko < volatile/.mounted < initrd < initrd/vesafb.ko --- > modules.order 2769a2752 > source
Tak je vidět, které moduly má subverze 11 navíc.
Info o balíku
editovatdpkg -s linux-source-2.6.27 Package: linux-source-2.6.27 Status: install ok installed Priority: optional Section: devel Installed-Size: 50944 Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com> Architecture: all Source: linux Version: 2.6.27-11.27 Provides: linux-source, linux-source-2.6 Depends: binutils, bzip2, coreutils | fileutils (>= 4.0) Recommends: libc-dev, gcc, make Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev Description: Linux kernel source for version 2.6.27 with Ubuntu patches This package provides the source code for the Linux kernel version 2.6.27. . This package is mainly meant for other packages to use, in order to build custom flavours. . If you wish to use this package to create a custom Linux kernel, then it is suggested that you investigate the package kernel-package, which has been designed to ease the task of creating kernel image packages. . If you are simply trying to build third-party modules for your kernel, you do not want this package. Install the appropriate linux-headers package instead.
kernel-package
editovatPodle rady si tedy ještě nainstaluji kernel-package (pro další experimenty).
grub
editovatDo /boot/grub/menu.lst přidám např:
title sda4 new Ubuntu 8.10 Ibex, 2.6.27.10 compiled root (hd0,3) kernel /boot/vmlinuz-2.6.27.10 root=/dev/sda4 ro title sda4 new Ubuntu 8.10 Ibex, 2.6.27.10 compiled (recovery mode) root (hd0,3) kernel /boot/vmlinuz-2.6.27.10 root=/dev/sda4 ro single