LPS:Linux/kernel
Tato stránka se zabývá konfigurací kernelu pro servery. Je rozdil, zda se konfiguruje jadro standardni (zde tato stránka) nebo jádro pro virtuální servery. Vzhledem k dynamičnosti vývoje jádra je tato stránka pouze orientační.
Podporujeme
General setup
- BSD accounting verze 3
- vypnout Disable heap randomization (tedy zapnout randomizaci)
Enable the block layer
- bloková zařízení a soubory větší než 2TB
Executable file formats / Emulations
- vypnout Kernel support for MISC binaries
Processor type and features
- podporu SMP (tato volba způsobí vypnutí APM) s počtem až 32 procesorů
- podpora až 64GB RAM: High Memory Support (64GB)
- Timer frequency (100 HZ)
- vypnout
- Support for extended (non-PC) x86 platforms
- Additional support for AMD specific MCE features such as the DRAM Error Threshold.
Power management options
- ACPI processor přímo do jádra
- CPU Frequency scaling (default ondemand + ostatní)
- ACPI Processor P-States driver
Networking options
- IPsec
- multicasty
- syncookies
- virtual server
- IPv6 včetně IPsec
- advanced router (CONFIG_IP_ADVANCED_ROUTER)
- multiple tables (CONFIG_IP_MULTIPLE_TABLES)
Device driver
Block devices
- podpora crypto zařízení na loopbacku: Cryptoloop Support
- paketový zápis na CD/DVD: Packet writing on CD/DVD media
SCSI device support
- Verbose SCSI error reporting
- SCSI logging facility
- CONFIG_SCSI_OSD_DPRINT_SENSE=2
SCSI device support -> SCSI low-level drivers
- Adaptec AACRAID support
- Adaptec AIC7xxx Fast -> U160 support
- Adaptec AIC79xx U320 support
- Adaptec AIC94xx SAS/SATA support
- LSI Logic New Generation RAID Device Drivers
- LSI Logic Legacy MegaRAID Driver
- LSI Logic MegaRAID SAS RAID Module
- Initio 9100U(W) support
- Initio INI-A100U2W support
- Qlogic QLA 1240/1x80/1x160 SCSI support
- QLogic QLA2XXX Fibre Channel Support
- QLogic ISP4XXX host adapter family support
Multiple devices driver support (RAID and LVM)
- RAID support (vse mimo EXPERIENTAL, primo do jadra)
- Device mapper support/Crypt target support
- Device mapper support/Multipath target support
Fusion MPT device support
- vše okolo driverů (ScsiHost), hlavně SPI a SAS (pozor na patch mpt0059 níže)
Network device support
Ovladače síťových karet dáváme přímo do jádra, neplatí pro 100Mbit.
- TUN/TAP zařízení
- 3Com (3c509 - vortex), Intel, BroadCom (Tigon)
Multimedia devices
- BT848 videocard, nutne Enable Video For Linux API 1 (DEPRECATED)
- Philips SAA7134 suppor
HID devices
USB klávesnice a myš přímo do jádra, nutné mít v kernelu přímo USB support, zvláště drivery pro UHCI/EHCI/OHCI
- <*> USB Human Interface Device (full HID) support
USB support
- podpora driveru USB přímo do jádra: UHCI, OHCI, EHCI
- serial adaptery
- Prolific PL2303 USB to serial adaptor driver
Character devices
- vypnout /dev/kmem virtual device support
File systems
Nevkladat automounter.
- ext2, ext3, reiserfs, xfs, jfs: přímo do jádra s podporou extended attributes a POSIX ACL
- zapnout quota xfs
- OCFS2 file system support
- Filesystem in Userspace support
- Inotify: CONFIG_INOTIFY_USER=y (nutné pro squeeze)
Security options
- zapnout CONFIG_KEYS Enable access key retention support (od 2.6.20 jej pouziva openafs k ulozeni PAGu)
- a co dalsi volby podle debianskeho jadra ?
Vypínáme
- Pro Squeeze (nový udev) musí být vypnutá volba CONFIG_SYSFS_DEPRECATED
K vyřazení
Tyto položky je třeba zvážit:
- SCSI AACRAID
- SCSI Initio driver
- 100Mbit ethernet síťové karty, pouziva ji theia.fek a nektere starsi stroje
- paralelní porty a tiskárny
- ram disk, k cemu nam vubec je
Patche
Řadič serveru paskos: mpt0059
V souboru drivers/message/fusion/lsi/mpi_cnfg.h upravit identifikaci řadiče:
-#define MPI_MANUFACTPAGE_DEVID_SAS1068E (0x0058) +#define MPI_MANUFACTPAGE_DEVID_SAS1068E (0x0059)
Kompilace Xen dom0 jádra z patchovaných zdrojáků
Možnosti získání kódů:
Podmínky:
- nejnovější kernel-package
- link /usr/src/linux ukazuje na aktuální rozbalený strom
Postup: Proměnná EXTRAVERSION vznikla z patch-level hodnoty jádra (2.6.31.8) a volby --append-to-version zcu-xen-amd64
cd /usr/src/linux make menuconfig make -j15 EXTRAVERSION=.8zcu-xen-amd64 ARCH=x86_64 vmlinuz cp arch/x86/boot/vmlinuz arch/x86/boot/bzImage CONCURRENCY_LEVEL=15 make-kpkg --append-to-version zcu-xen-amd64 --initrd --revision 0.3suse kernel_image modules_image kernel_headers kernel_source kernel_doc kernel_manual cd .. dpkg -i *.deb update-initramfs -c -k 2.6.31.8zcu-xen-amd64-0.1-xen update-grub
Kompilace z vanilla stromu
Stáhnout a rozbalit zdrojáky:
cd /usr/src tar xjvf linux-2.6.26.tar.bz2 cd linux-2.6.26/
Provést konfiguraci:
make menuconfig
Zkompilovat, zde včetně nainstalovaných modulů (nejčastěji openafs); CONCURRENCY_LEVEL určuje počet jader pro kompilaci, obdoba parametru -j u make:
make-kpkg clean CONCURRENCY_LEVEL=8 make-kpkg --us --uc --append-to-version serv+mpt0059 kernel_image kernel_headers modules_image
Zkontrolovat, že balíky jsou aktuálně vyrobené
ls -l /usr/src/*.deb
Kompilace z debian stromu
Tento návod vychází z http://wiki.debian.org/HowToRebuildAnOfficialDebianKernelPackage
aptitude install fakeroot build-essential devscripts aptitude build-dep linux-2.6 aptitude install linux-source-2.6.26 cd /usr/src tar xjvf linux-source-2.6.26.tar.bz2 cd linux-source-2.6.26/ svn export svn://svn.debian.org/svn/kernel/dists/lenny/linux-2.6/debian dch --local serv+mpt0059.
Přidat patche, které jsou potřeba.
Přidání stejného řetězce serv+mpt0059 do položky abi_name. Je třeba přidat kompletní řetězec, který se objevil v zahlavi u příkazu dch (tedy i debian revizi, zde číslo 14)
vim debian/config/defines
Výsledek vypadá následovně:
head -l 2 debian/config/defines [abi] abiname: 14serv+mpt0059.1
Nyní patchujeme jádro změnami od debianu (prvni spuštění může vyvolat chybovou hlášku):
make -f debian/rules source-all make -f debian/rules.gen setup_i386_none_686
Konfigurace jednotlivých buildů (stačí nastavit jeden, provést okopírování a pak úpravu CPU a pamětí):
cd debian/build/build_i386_none_686 make menuconfig cd ../build_i386_none_686-bigmem make menuconfig cd ../build_i386_none_486 make menuconfig cd ../build_i386_none_amd64 make menuconfig cd ../../..
Vlastní kompilace (poslední parametr určuje počet procesorů, které budou užity ke kompilaci):
time make -f debian/rules.gen binary-arch_i386_none_686 binary-indep binary-arch_i386 DEBIAN_KERNEL_JOBS=2 ls /usr/src/*.deb
Pokud je potřeba provést rebuil, napřed smaž značky:
rm debian/stamps/build_i386_none*
OpenAFS modul zkompilovat standarní debianní cestou:
m-a a-i openafs /etc/init.d/openafs-client start
Testování
Pro xen jádra je vhodné vyzkoušet v domU funkci, pro 1024MB RAM virtuálu lze použít:
stress --cpu 1 --io 1 --vm 1 --vm-bytes 128M --hdd 1 &