LPS:Linux/kernel

Z HelpDesk
Verze k tisku již není podporovaná a může obsahovat chyby s vykreslováním. Aktualizujte si prosím záložky ve svém prohlížeči a použijte prosím zabudovanou funkci prohlížeče pro tisknutí.

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