LPS:Linux/kernel

Z HelpDesk

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 &

Odkazy